ESP8266 - Potentiomètre
Ce tutoriel vous explique comment utiliser l'ESP8266 avec un potentiomètre, également connu sous les noms de pot, trimmer, résistance variable, rhéostat ou capteur d'angle rotatif. En détail, nous apprendrons :
- Fonctionnement du potentiomètre.
- Comment connecter un potentiomètre à un ESP8266.
- Comment programmer l'ESP8266 pour lire la valeur du potentiomètre.
- Comment convertir la valeur lue en une autre valeur telle que la tension, l'angle du moteur servo, la vitesse du moteur, la luminosité d'une LED...
Préparation du matériel
1 | × | ESP8266 NodeMCU | |
1 | × | Micro USB Cable | |
1 | × | Potentiometer | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Optional) 5V Power Adapter for ESP8266 | |
1 | × | (Optional) ESP8266 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
Un potentiomètre rotatif est également connu sous le nom de potentiomètre, trimmer, résistance variable, rhéostat ou capteur d'angle rotatif. Il est utilisé pour ajuster manuellement la valeur de quelque chose. Les exemples incluent le volume d'une stéréo, la luminosité d'une lampe et le niveau de zoom d'un oscilloscope.
Le brochage du potentiomètre
Un potentiomètre a généralement trois broches :
- La broche GND doit être connectée à la terre (0V).
- La broche VCC doit être connectée à la source de tension (5V ou 3,3V).
- La broche de sortie envoie la tension à la broche d'entrée de l'Arduino.
※ NOTE THAT:
Les broches GND et VCC peuvent être inversées.
Comment ça fonctionne
La rotation de l'axe du potentiomètre peut aller de 0°, qui est le plus proche de GND, à un angle maximal, qui est le plus proche de la broche VCC, appelé ANGLE_MAX.
※ NOTE THAT:
La valeur de ANGLE_MAX est déterminée par le fabricant. En général, nous n'avons pas besoin de considérer cette valeur à moins que nous ne calculions un angle rotatif (voir la section des cas d'utilisation).
Le principe de fonctionnement :
- Un utilisateur tourne l'arbre du potentiomètre
- ⇒ L'angle du potentiomètre est modifié
- ⇒ La résistance du potentiomètre est modifiée
- ⇒ La tension dans la broche de sortie du potentiomètre est modifiée
- ⇒ La valeur analogique lue par l'ESP8266 est modifiée
ESP8266 - Potentiomètre rotatif
Certaines broches de l'ESP8266 sont capables de fonctionner comme entrée analogique. Ces broches d'entrée analogique convertissent la tension (allant de 0V à VCC) en valeurs entières (de 0 à 1023), appelées valeur ADC ou valeur analogique.
Nous pouvons connecter une broche de sortie du potentiomètre à une broche d'entrée analogique. Cela nous permet de lire la valeur analogique de la broche et de la convertir en une valeur significative.
La valeur que l'ESP8266 reçoit n'est ni un angle ni une tension ; il s'agit plutôt d'une valeur entière allant de 0 à 1023.
Une fois que nous avons obtenu la valeur entière de la broche d'entrée analogique, nous pouvons recalibrer cette valeur à une autre. Considérons les applications.
Cas d'utilisation
- Recaler à l'angle du potentiomètre.
- Recaler à la tension du potentiomètre.
- Recaler à une valeur contrôlable, telle que le volume d'une stéréo, la luminosité ou la vitesse d'un moteur à courant continu - ceci est le cas d'utilisation le plus courant.
Rééchelonner la Plage
FROM | TO | |||
---|---|---|---|---|
Angle | rotated by user | 0° | → | ANGLE_MAX |
Voltage | from potentiometer's pin | 0V | → | VCC |
ADC value | read by Arduino | 0 | → | 1023 |
Other value | converted by Arduino | VALUE_MIN | → | VALUE_MAX |
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.
Comment programmer pour un potentiomètre
- Accédez à la broche de sortie du potentiomètre avec analogRead() et lisez la valeur depuis la broche d'entrée.
- Utilisez la fonction map() pour ajuster l'angle du potentiomètre.
- Ajustez la tension au niveau du potentiomètre.
- Redimensionnez la valeur à quelque chose qui peut être contrôlé, comme le volume d'un stéréo, la luminosité ou la vitesse d'un moteur à courant continu.
- Par exemple, nous pouvons ajuster la luminosité d'une LED en la redimensionnant. Comme indiqué dans le [], la luminosité de la LED peut être régulée avec une valeur PWM allant de 0 (complètement éteinte) à 255 (totalement allumée). Ainsi, nous pouvons mapper la valeur analogique à la luminosité de la LED (de éteint à la plus brillante) de cette manière :
Si vous souhaitez régler la LED d'une veilleuse tamisée à sa luminosité maximale,
※ NOTE THAT:
La fonction map() est limitée à la mise à l'échelle d'une valeur analogique vers le type int ou long. Si la valeur contrôlable est du type float, la fonction floatMap() doit être utilisée à la place de map().
Code ESP8266
Étapes rapides
Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :
- Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est la première fois que vous utilisez un ESP8266.
- Connectez les composants comme indiqué dans le schéma.
- Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
- Ouvrez Arduino IDE sur votre ordinateur.
- Choisissez la bonne carte ESP8266, par exemple (ex. NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
- Copiez le code et ouvrez-le dans Arduino IDE.
- Une fois ouvert, appuyez sur le bouton Upload pour transférer le code vers l'ESP8266.
- Ouvrez le moniteur série.
- Tournez le potentiomètre.
- Vérifiez le résultat sur le moniteur série.
Vidéo
Lancez-vous un défi
Utilisez le potentiomètre pour accomplir l'une des tâches suivantes :
- Ajustez la position du moteur servo. Conseil : Consultez arduino - Moteur Servo.
- Modifiez la luminosité de la LED. Conseil : Consultez ESP8266 - Estomper Led.
Connaissances supplémentaires
- Les broches GND et VCC peuvent être inversées sans convention spécifique. Tout ce dont vous devez vous soucier est que la valeur de tension sur la broche de sortie sera inversée lorsque ces broches sont échangées.