Arduino Nano ESP32 - Potentiomètre
Ce tutoriel fournit des instructions sur comment utiliser l'Arduino Nano ESP32 avec le potentiomètre. En détail, nous apprendrons :
- Comment fonctionne le potentiomètre
- Comment interfacer un Arduino Nano ESP32 avec un potentiomètre
- Comment programmer l'Arduino Nano ESP32 pour lire la valeur issue d'un potentiomètre
- Comment convertir la valeur lue d'un potentiomètre en une valeur utile
Préparation du matériel
1 | × | Arduino Nano ESP32 | |
1 | × | USB Cable Type-C | |
1 | × | Potentiometer | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Optional) DC Power Jack | |
1 | × | (Recommended) Screw Terminal Adapter for Arduino Nano |
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 appelé capteur d'angle 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 à la broche d'entrée de l'ESP32.
※ NOTE THAT:
La broche GND et la broche VCC sont interchangeables.
Fonctionnement du potentiomètre
L'axe 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.
Arduino Nano 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 redimensionnée en une autre valeur. Voyons les cas d'utilisation :
- Rééchelonner la valeur analogique à l'angle du potentiomètre.
- Rééchelonner la valeur analogique à la tension du potentiomètre.
- Rééchelonner la valeur analogique à la valeur de réglage (par exemple, le volume du haut-parleur, la température de la pièce, la luminosité de la lampe...)
Rééchelonner 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 Arduino Nano ESP32
This image is created using Fritzing. Click to enlarge image
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 à l'angle du potentiomètre en utilisant la fonction map().
- Redimensionner à 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, redimensionner à la luminosité du LED. Comme mentionné dans ce tutoriel, la luminosité du LED peut être contrôlée en utilisant une valeur PWM de 0 (toujours ÉTEINT) à 255 (toujours ALLUMÉ). Par conséquent, nous pouvons mapper la valeur analogique à la luminosité du LED (de ÉTEINT au plus lumineux) comme suit :
Si vous souhaitez atténuer une LED de la veilleuse à la plus brillante,
※ NOTE THAT:
La fonction map() ne peut être utilisée que pour remettre à l'échelle la valeur analogique en une 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 Arduino Nano ESP32
Étapes rapides
- Si c'est la première fois que vous utilisez Arduino Nano ESP32, consultez comment configurer l'environnement pour Arduino Nano ESP32 sur Arduino IDE.
- Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
- Compilez et téléchargez le code sur la carte Arduino Nano ESP32 en cliquant sur le bouton Upload dans l'Arduino IDE.
- Ouvrez le moniteur série sur Arduino IDE
- Tournez le potentiomètre
- Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :