Arduino Nano - Potentiomètre
Ce tutoriel vous explique comment utiliser un Arduino Nano avec un potentiomètre, également connu sous le nom de pot, trimmer, résistance variable, rhéostat ou capteur d'angle rotatif. En détail, nous apprendrons :
- Fonctionnement du potentiomètre.
- Connexion d'un potentiomètre à un Arduino Nano.
- Programmation de l'Arduino Nano pour lire la valeur du potentiomètre et la convertir en une valeur contrôlable.
Préparation du matériel
1 | × | Arduino Nano | |
1 | × | USB A to Mini-B USB cable | |
1 | × | Potentiometer | |
1 | × | Breadboard | |
1 | × | Jumper Wires | |
1 | × | (Optional) 9V Power Adapter for Arduino Nano | |
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
Un potentiomètre rotatif, également connu sous le nom de capteur d'angle rotatif, est utilisé pour modifier manuellement la valeur de quelque chose. Par exemple, 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 reliée à la masse (0V).
- La broche VCC doit être connectée à VCC (5V ou 3.3V).
- La broche de sortie fournit la tension à la broche d'entrée de l'Arduino.
※ NOTE THAT:
Les broches GND et VCC peuvent être inversées.
Comment ça fonctionne
L'arbre rotatif du potentiomètre a une plage allant de 0° (le plus proche de GND) à l'angle maximum (le plus proche de la broche VCC), appelé ANGLE_MAX.
※ NOTE THAT:
La valeur de ANGLE_MAX est déterminée par le fabricant. Généralement, nous n'avons pas besoin de considérer cette valeur à moins que nous calculions l'angle de rotation (voir la section des cas d'utilisation).
Le principe de fonctionnement :
- Un utilisateur tourne l'axe 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'Arduino Nano est modifiée
Arduino Nano - Potentiomètre rotatif
Les broches A0 à A7 de l'Arduino Nano peuvent fonctionner comme entrées analogiques. Ces broches d'entrée analogique convertissent la tension (allant de 0 volts à 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 reçue par l'Arduino Nano 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 la redimensionner à une valeur différente. Considérons les applications de cela.
Cas d'utilisation
- Réajuster selon l'angle du potentiomètre.
- Réajuster selon la tension du potentiomètre.
- Réajuster à une valeur contrôlable, telle que le volume d'une stéréo, la luminosité ou la vitesse d'un moteur à courant continu - c'est l'utilisation la plus fréquente.
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
Comment programmer pour un potentiomètre
- Récupérez la valeur d'une broche d'entrée, reliée à la broche de sortie du potentiomètre, en utilisant la fonction analogRead().
- Utilisez la fonction map() pour ajuster l'angle du potentiomètre.
- Ajustez la tension au niveau du potentiomètre.
- Redimensionner la valeur à quelque chose qui peut être géré ou ajusté (par exemple, le volume d'une chaîne stéréo, la luminosité, la vitesse d'un moteur à courant continu...)
- Par exemple, ajuster la luminosité d'une LED. Comme mentionné dans ce tutoriel, la luminosité d'une LED peut être régulée en utilisant une valeur de MLI allant de 0 (toujours ÉTEINTE) à 255 (toujours ALLUMÉE). Ainsi, nous pouvons mapper la valeur analogique à la luminosité de la LED (de ÉTEINTE à la plus brillante) de cette manière :
Si vous souhaitez régler la LED d'une veilleuse tamisée à son niveau le plus lumineux,
※ NOTE THAT:
La fonction map() n'est applicable que pour redimensionner une valeur analogique soit au type int soit long. Si la valeur contrôlable est du type float, floatMap() devrait être utilisée à la place de map().
La fonction floatMap(): C'est une fonction qui prend une liste de nombres à virgule flottante en argument et renvoie une nouvelle liste contenant le même nombre d'éléments, où chaque élément est le résultat de l'application de la fonction donnée à l'élément correspondant de la liste originale.
Code Arduino Nano
Étapes rapides
- Copiez le code et ouvrez-le avec l'IDE Arduino.
- Cliquez sur le bouton Upload dans l'IDE Arduino pour envoyer le code au Arduino Nano.
- Ouvrez le moniteur série.
- Tournez le potentiomètre.
- Consultez le résultat sur le moniteur série.
Vidéo
Défiez-vous
Utilisez le potentiomètre pour réaliser l'un de ces projets :
- Manipulez la position du moteur servo. Conseil : Consultez Arduino Nano - Moteur Servo.
- Modifiez la luminosité de la LED. Conseil : Regardez Arduino Nano - Estomper Led.
Connaissances supplémentaires
- Les broches GND et VCC peuvent être échangées sans aucune convention spécifique. Cependant, il faut garder à l'esprit que la valeur de tension à la broche de sortie sera inversée lorsque ces broches sont interverties.