Arduino - Capteur tactile

Le capteur tactile (également appelé bouton tactile ou interrupteur tactile) est largement utilisé pour contrôler des appareils (par exemple, une lampe tactile). Il a la même fonctionnalité qu'un bouton. Il est utilisé à la place du bouton sur de nombreux nouveaux appareils car cela donne au produit un aspect soigné.

Dans ce tutoriel, nous apprendrons à utiliser le capteur tactile avec Arduino.

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Touch Sensor
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur tactile

Brochage

Le capteur tactile a 3 broches :

  • Broche GND : doit être connectée à GND (0V)
  • Broche VCC : doit être connectée à VCC (5V ou 3.3V)
  • Broche SIGNAL : est une broche de sortie : BASSE lorsqu'elle n'est pas touchée, HAUTE lorsqu'elle est touchée. Cette broche doit être connectée à la broche d'entrée de l'Arduino.
Schéma de brochage du capteur tactile

Comment ça marche

  • Lorsque le capteur n'est pas touché, la broche SIGNAL du capteur est à l'état BAS
  • Lorsque le capteur est touché, la broche SIGNAL du capteur est à l'état HAUT

Arduino - Capteur tactile

La broche SIGNAL du capteur tactile est connectée à une broche d'entrée de l'Arduino.

En lisant l'état de la broche d'Arduino (configurée comme une broche d'entrée), nous pouvons détecter si le capteur tactile est touché ou non.

Diagramme de câblage

Schéma de câblage du capteur tactile Arduino

This image is created using Fritzing. Click to enlarge image

Comment programmer un capteur tactile

  • Initialise la broche Arduino en mode entrée numérique en utilisant la fonction pinMode(). Par exemple, la broche 7.
pinMode(7, INPUT_PULLUP);
  • Lit l'état de la broche Arduino en utilisant la fonction digitalRead().
int inputState = digitalRead(7);

※ NOTE THAT:

Il existe deux cas d'utilisation fréquemment utilisés :

  • Le premier : Si l'état d'entrée est HAUT, faire quelque chose. Si l'état d'entrée est BAS, faire autre chose en inverse.
  • Le second : Si l'état d'entrée change de BAS à HAUT (ou de HAUT à BAS), faire quelque chose.

Selon l'application, nous choisissons l'un d'eux. Par exemple, dans le cas de l'utilisation d'un capteur tactile pour contrôler une LED :

  • Si nous voulons que la LED soit ALLUMÉE lorsque le capteur est touché et ÉTEINTE lorsque le capteur n'est PAS touché, nous DEVONS utiliser le premier cas d'utilisation.
  • Si nous voulons que la LED bascule entre ALLUMÉ et ÉTEINT chaque fois que nous touchons le capteur, nous DEVONS utiliser le second cas d'utilisation.
  • Comment détecter le changement d'état de BAS à HAUT
// Les constantes ne changeront pas. Elles sont utilisées ici pour définir les numéros de broches : const int SENSOR_PIN = 7; // la broche d'entrée de l'Arduino qui se connecte à la broche SIGNAL du capteur // Les variables vont changer : int lastState = LOW; // l'état précédent de la broche d'entrée int currentState; // la lecture actuelle de la broche d'entrée void setup() { // initialiser la communication série à 9600 bits par seconde : Serial.begin(9600); // initialiser la broche de l'Arduino comme une entrée pinMode(SENSOR_PIN, INPUT); } void loop() { // lire l'état de la broche d'entrée : currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); // sauvegarder le dernier état lastState = currentState; }

Capteur tactile - Code Arduino

Nous exécuterons quatre exemples de code :

  • Lit la valeur du capteur tactile et l'affiche sur le moniteur série.
  • Contrôle la LED selon l'état du capteur.
  • Détecte si le capteur est touché ou relâché.
  • Bascule la LED lorsque le capteur est touché (c'est l'utilisation la plus courante).

Lit la valeur du capteur tactile et l’affiche sur le moniteur série.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-touch-sensor */ // les constantes ne changent pas. Elles sont utilisées ici pour définir les numéros de broche : const int SENSOR_PIN = 7; // la broche d'entrée de l'Arduino qui se connecte à la broche SIGNAL du capteur void setup() { // initialiser la communication série à 9600 bits par seconde : Serial.begin(9600); // initialiser la broche de l'Arduino comme une entrée pinMode(SENSOR_PIN, INPUT); } void loop() { // lire l'état de la broche d'entrée : int state = digitalRead(SENSOR_PIN); // imprimer l'état au moniteur série Serial.println(state); }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code dans l'Arduino
  • Touchez le capteur avec votre doigt puis relâchez.
  • Vérifiez le résultat sur le moniteur série.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Contrôle la LED selon l'état du capteur

Si le capteur est touché, allumez la LED. Si le capteur n'est pas touché, éteignez la LED.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-touch-sensor */ // Les constantes ne changent pas. Elles sont utilisées ici pour définir les numéros de broches : const int SENSOR_PIN = 7; // la broche d'entrée de l'Arduino qui se connecte à la broche SIGNAL du capteur void setup() { // initialiser la communication série à 9600 bits par seconde : Serial.begin(9600); // initialiser la broche de l'Arduino comme une entrée pinMode(SENSOR_PIN, INPUT); // initialiser la broche numérique LED_BUILTIN comme une sortie. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // lire l'état de la broche d'entrée : int state = digitalRead(SENSOR_PIN); // contrôler la LED selon l'état du capteur digitalWrite(LED_BUILTIN, state); }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur Arduino
  • Touchez le capteur avec votre doigt et continuez de toucher.
  • Observez l'état de la LED ⇒ La LED devrait être allumée.
  • Retirez votre doigt du capteur.
  • Observez l'état de la LED ⇒ La LED devrait être éteinte.

Détecte si le capteur est touché ou relâché.

// Les constantes ne changent pas. Elles sont utilisées ici pour définir les numéros des broches : const int SENSOR_PIN = 7; // la broche d'entrée de l'Arduino qui se connecte à la broche SIGNAL du capteur // Les variables vont changer : int lastState = LOW; // l'état précédent de la broche d'entrée int currentState; // la lecture actuelle de la broche d'entrée void setup() { // initialiser la communication série à 9600 bits par seconde : Serial.begin(9600); // initialiser la broche de l'Arduino comme une entrée pinMode(SENSOR_PIN, INPUT); } void loop() { // lire l'état de la broche d'entrée : currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); else if(lastState == HIGH && currentState == LOW) Serial.println("The sensor is is released"); // sauvegarder le dernier état lastState = currentState; }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur Arduino
  • Posez votre doigt sur le capteur et maintenez-le.
  • Consultez le résultat sur le moniteur série.
COM6
Send
The sensor is touched
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Relâchez votre doigt du capteur.
  • Consultez le résultat sur le moniteur série.
COM6
Send
The sensor is touched The sensor is is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Bascule la LED lorsque le capteur est touché.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-touch-sensor */ // les constantes ne changent pas. Elles sont utilisées ici pour définir les numéros de broche: const int SENSOR_PIN = 7; // la broche d'entrée de l'Arduino qui se connecte à la broche SIGNAL du capteur // Les variables vont changer: int lastState = LOW; // l'état précédent de la broche d'entrée int currentState; // la lecture actuelle de la broche d'entrée int ledState = LOW; // l'état actuel de la LED void setup() { // initialiser la communication série à 9600 bits par seconde: Serial.begin(9600); // initialiser la broche de l'Arduino comme une entrée pinMode(SENSOR_PIN, INPUT); // initialiser la broche numérique LED_BUILTIN comme une sortie. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // lire l'état de la broche d'entrée : currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH){ // basculer l'état de la LED if(ledState == LOW) ledState = HIGH; else if(ledState == HIGH) ledState = LOW; // contrôler la LED digitalWrite(LED_BUILTIN, ledState); } // sauvegarder le dernier état lastState = currentState; }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour charger le code sur Arduino
  • Touchez le capteur avec votre doigt puis relâchez.
  • Observez l'état de la LED ⇒ La LED devrait être allumée.
  • Touchez le capteur avec votre doigt puis relâchez.
  • Observez l'état de la LED ⇒ La LED devrait être éteinte.
  • Touchez le capteur avec votre doigt puis relâchez.
  • Observez l'état de la LED ⇒ La LED devrait être allumée.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!