Arduino - Potentiomètre
Dans ce tutoriel, nous allons apprendre :
- Comment fonctionne un potentiomètre.
- Comment connecter le potentiomètre à Arduino.
- Comment programmer Arduino pour lire la valeur du potentiomètre et la convertir en d'autres valeurs contrôlables.
Préparation du matériel
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 rotatif (également appelé capteur d'angle rotatif) est utilisé pour ajuster manuellement la valeur de quelque chose (par exemple, le volume de la stéréo, la luminosité de la lampe, le niveau de zoom de l'oscilloscope...).
Brochage
Le potentiomètre a généralement trois broches :
- Broche GND : doit être connectée à GND (0V)
- Broche VCC : doit être connectée à VCC (5V ou 3,3V)
- Broche de sortie : délivre la tension à la broche d'entrée de l'Arduino.
※ NOTE THAT:
La broche GND et la broche VCC sont interchangeables.
Comment ça fonctionne
L'axe du potentiomètre est rotatif de 0° (le plus proche de GND) à un angle limite supérieur (le plus proche de la broche VCC), appelé ANGLE_MAX.
La tension à la broche de sortie varie de la tension de GND à celle de VCC. La tension de sortie est directement proportionnelle à l'angle de rotation de l'arbre.
- Si l'angle est de 0°, la tension de la broche de sortie est de 0v
- Si l'angle est ANGLE_MAX, la tension de la broche de sortie est la tension de VCC
- Si l'angle est compris entre 0° et ANGLE_MAX, tension_de_sortie = angle × VCC / ANGLE_MAX
※ NOTE THAT:
La valeur de ANGLE_MAX dépend des fabricants. En pratique, nous ne nous préoccupons généralement pas de la valeur de ANGLE_MAX, sauf lorsque nous devons calculer l'angle de rotation (voir la partie cas d'utilisation).
Arduino - Potentiomètre rotatif
Les broches A0 à A5 de l'Arduino peuvent fonctionner comme entrée analogique. La broche d'entrée analogique convertit la tension (entre 0v et VCC) en valeurs entières (entre 0 et 1023), appelées valeur ADC ou valeur analogique.
En connectant une broche de sortie du potentiomètre à une broche d'entrée analogique, nous pouvons lire la valeur analogique de la broche, puis la convertir en une valeur significative.
La valeur obtenue par Arduino n'est NI un angle, NI une tension. C'est une valeur entière allant de 0 à 1023.
Après avoir obtenu la valeur entière de la broche d'entrée analogique, nous recalibrons cette valeur en une autre valeur. Examinons les cas d'utilisation.
#### Cas d'utilisation
- Rééchelonner à l'angle du potentiomètre.
- Rééchelonner à la tension du potentiomètre :
- Rééchelonner à la valeur contrôlable (par exemple volume de la stéréo, luminosité, vitesse du moteur à courant continu...). C'est le cas le plus couramment utilisé.
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
- 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().
- Mettez à l'échelle selon l'angle du potentiomètre en utilisant la fonction map().
- Réajuster à 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é de la LED. Comme mentionné dans ce tutoriel, la luminosité de la 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é de la 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 redimensionner la valeur analogique aux valeurs 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
Étapes rapides
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur Arduino.
- Ouvrez le moniteur série
- Tournez le potentiomètre
- Observez le résultat sur le moniteur série
Vidéo
Défiez-vous
Utilisez le potentiomètre pour réaliser l'un des projets suivants :
- Contrôle de la position du moteur servo. Indice : Voir arduino - Moteur Servo.
- Modification de la luminosité d'une LED. Indice : Voir Arduino - Atténuation LED.
Connaissances supplémentaires
- La broche GND et la broche VCC sont interchangeables. Il n'y a aucune convention concernant ces deux broches. Si vous sélectionnez une broche comme broche GND, l'autre est la broche VCC. Il y a seulement une chose à laquelle vous devez faire attention. La valeur de la tension à la broche de sortie est inversée lorsque nous échangeons ces broches.