ESP32 - Capteur tactile
Ce tutoriel vous explique comment utiliser l'ESP32 avec le capteur tactile (également connu sous le nom d'interrupteur tactile ou bouton tactile).
Préparation du matériel
1 | × | ESP-WROOM-32 Dev Module | |
1 | × | USB Cable Type-C | |
1 | × | Touch Sensor | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Optional) DC Power Jack | |
1 | × | (Recommended) ESP32 Screw Terminal Adapter |
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 du capteur tactile
Le capteur tactile possède 3 broches :
- Broche GND : connectez cette broche à GND (0V)
- Broche VCC : connectez cette broche à VCC (5V ou 3.3V)
- Broche SIGNAL : c'est une broche de sortie : BASSE quand elle n'est PAS touchée, HAUTE quand elle est touchée. Cette broche doit être connectée à la broche d'entrée de l'ESP32.
Comment fonctionne un capteur tactile
- L'état de la broche SIGNAL est BAS lorsque le capteur tactile n'est pas touché.
- L'état de la broche SIGNAL est HAUT lorsque le capteur tactile est touché.
ESP32 - Capteur tactile
Nous pouvons connecter la broche SIGNAL du capteur tactile à une broche d'entrée de l'ESP32 et utiliser le code ESP32 pour lire l'état du capteur tactile.
Schéma de câblage entre le capteur tactile et l'ESP32
This image is created using Fritzing. Click to enlarge image
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.
Comment programmer un capteur tactile
- Initialise la broche ESP32 en mode entrée numérique en utilisant la fonction pinMode(). Par exemple, la broche GPIO18.
pinMode(18, INPUT_PULLUP);
- Lit l'état de la broche ESP32 en utilisant la fonction digitalRead().
int inputState = digitalRead(18);
Capteur tactile - Code ESP32
Le code ci-dessous lit l'état du capteur tactile et l'affiche sur le moniteur série.
/*
* Ce code ESP32 a été développé par newbiely.fr
* Ce code ESP32 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/esp32/esp32-touch-sensor
*/
#define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the sensor's SIGNAL pin of touch sensor
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// initialize the ESP32's pin as aninput
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// read the state of the the input pin:
int state = digitalRead(SENSOR_PIN);
// print state to Serial Monitor
Serial.println(state);
}
Étapes rapides
- Si c'est la première fois que vous utilisez ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
- Copiez le code ci-dessus et collez-le dans Arduino IDE.
- Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans Arduino IDE
- Touchez le capteur avec votre doigt puis relâchez.
- Consultez le résultat sur le moniteur série. Il ressemble à ce qui suit :
COM6
0
0
0
1
1
1
1
1
1
0
0
Autoscroll
Clear output
9600 baud
Newline
Comment détecter le changement d'état de BAS à HAUT
/*
* Ce code ESP32 a été développé par newbiely.fr
* Ce code ESP32 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/esp32/esp32-touch-sensor
*/
#define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the sensor's SIGNAL pin of touch sensor
// Variables will change:
int lastState = LOW; // the previous state from the input pin
int currentState; // the current reading from the input pin
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
// initialize the ESP32's pin as aninput
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// read the state of the the input pin:
currentState = digitalRead(SENSOR_PIN);
if (lastState == LOW && currentState == HIGH)
Serial.println("The sensor is touched");
// save the the last state
lastState = currentState;
}