ESP32 - Potentiomètre
Ce tutoriel vous explique comment utiliser l'ESP32 avec le potentiomètre. En détail, nous allons apprendre :
- Fonctionnement du potentiomètre
- Comment interfacer un ESP32 avec un potentiomètre
- Comment programmer l'ESP32 pour lire la valeur d'un potentiomètre
- Comment convertir la valeur lue d'un potentiomètre en une valeur utile
Préparation du matériel
1 | × | ESP-WROOM-32 Dev Module | |
1 | × | USB Cable Type-C | |
1 | × | Potentiometer | |
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) |
À propos du potentiomètre
Le potentiomètre (également connu sous le nom de capteur angulaire rotatif) est utilisé pour modifier les réglages (par exemple le volume du haut-parleur, la température de la pièce, la luminosité de la lampe...)
Brochage du potentiomètre
Un potentiomètre a généralement 3 broches :
- Broche VCC : connectez cette broche à VCC (5V ou 3,3V)
- Broche GND : connectez cette broche à GND (0V)
- Broche de sortie : renvoie la tension vers la broche d'entrée de l'ESP32.
※ NOTE THAT:
La broche GND et la broche VCC sont interchangeables.
Fonctionnement du potentiomètre
L'arbre du potentiomètre peut être tourné de 0° (le plus proche de la broche GND) jusqu'à un angle (le plus proche de la broche VCC), appelé ANGLE_MAX.
La tension dans la broche de sortie est directement proportionnelle à la position angulaire de l'arbre, variant de 0 à VCC. Le tableau ci-dessous montre la relation entre l'angle et la tension sur la broche de sortie :
Angle | Voltage |
---|---|
0° | 0v |
ANGLE_MAX° | VCC |
angle° | angle° × VCC / ANGLE_MAX° |
※ NOTE THAT:
La valeur ANGLE_MAX dépend des fabricants.
ESP32 - Potentiomètre rotatif
La broche d'entrée analogique de l'ESP32 convertit la tension (entre 0v et 3,3V) en valeurs entières (entre 0 et 4095), appelée valeur ADC ou valeur analogique.
Nous pouvons connecter la broche de sortie du potentiomètre à une broche d'entrée analogique de l'ESP32, puis lire la valeur analogique à partir de cette broche.
La valeur analogique de la broche d'entrée peut être recalibrée en une autre valeur. Voyons les cas d'utilisation :
- Convertissez la valeur analogique en angle du potentiomètre.
- Convertissez la valeur analogique en tension du potentiomètre.
- Convertissez la valeur analogique en valeur de réglage (par exemple, le volume du haut-parleur, la température de la pièce, la luminosité de la lampe...).
Redimensionner la plage
FROM | TO | |||
---|---|---|---|---|
Angle | rotated by user | 0° | → | ANGLE_MAX° |
Voltage | from potentiometer's pin | 0V | → | 3.3V |
ADC value | read by ESP32 | 0 | → | 4095 |
Setting value | converted by ESP32 | VALUE_MIN | → | VALUE_MAX |
Schéma de câblage entre le potentiomètre 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 potentiomètre
- Lisez la valeur à partir d'une broche d'entrée, qui est connectée à la broche de sortie du potentiomètre en utilisant la fonction analogRead().
- Redimensionnez selon l'angle du potentiomètre en utilisant la fonction map().
- Mettre à l'échelle par rapport à la tension du potentiomètre :
- Redimensionner à la valeur contrôlable (par exemple, volume de la stéréo, luminosité, vitesse du moteur à courant continu...).
- Par exemple, recalibrer à la luminosité des LED. Comme mentionné dans ce tutoriel, la luminosité des LED peut être contrôlée en utilisant la valeur PWM de 0 (toujours ÉTEINT) à 255 (toujours ALLUMÉ). Par conséquent, nous pouvons mapper la valeur analogique à la luminosité des LED (de ÉTEINT à la plus brillante) comme suit :
Si vous voulez atténuer la LED de la veilleuse à la plus brillante,
※ NOTE THAT:
La fonction map() ne peut être utilisée que pour recalibrer la valeur analogique en valeur de type int ou long. Si la valeur contrôlable est de type float, vous devez utiliser la fonction floatMap() au lieu de la fonction map().
fonction floatMap()
Code ESP32
É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.
- Ouvrez le moniteur série sur Arduino IDE
- Tournez le potentiomètre
- Regardez le résultat sur le moniteur série. Cela ressemble à ce qui suit :