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 :

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)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À 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.

Brochage de potentiomètre

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.
Brochage du potentiomètre

※ 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).

Comment fonctionne un potentiomètre

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
Anglerotated by userANGLE_MAX
Voltagefrom potentiometer's pin 0VVCC
ADC valueread by Arduino 01023
Other valueconverted by Arduino VALUE_MINVALUE_MAX

Diagramme de câblage

Schéma de câblage du potentiomètre Arduino Nano

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().
analog_value = analogRead(A5);
  • Utilisez la fonction map() pour ajuster l'angle du potentiomètre.
angle = map(analog_value, 0, 1023, 0, ANGLE_MAX);
  • Ajustez la tension au niveau du potentiomètre.
voltage = map(analog_value, 0, 1023, 0, VCC);
  • 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...)
value = map(analog_value, 0, 1023, VALUE_MIN, VALUE_MAX);
  • 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 :
brightness = map(analog_value, 0, 1023, 0, 255);

Si vous souhaitez régler la LED d'une veilleuse tamisée à son niveau le plus lumineux,

nightlight = 100; // en fonction de la luminosité souhaitée brightness = map(analog_value, 0, 1023, nightlight , 255);

※ 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.

float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

Code Arduino Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-nano/arduino-nano-potentiometer */ float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } // The setup function runs once on reset or power-up void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); } // The loop function repeats indefinitely. void loop() { // read the input on analog pin A5: int analog_value = analogRead(A5); // Rescale to potentiometer's voltage (from 0V to 5V): float voltage = floatMap(analog_value, 0, 1023, 0, 5); // print out the value you read: Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Voltage: "); Serial.println(voltage); delay(1000); }

É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.
Téléversement de code Arduino IDE
  • Ouvrez le moniteur série.
  • Tournez le potentiomètre.
  • Consultez le résultat sur le moniteur série.
COM6
Send
Analog: 0, Voltage: 0.00 Analog: 0, Voltage: 0.00 Analog: 126, Voltage: 0.62 Analog: 281, Voltage: 1.37 Analog: 517, Voltage: 2.53 Analog: 754, Voltage: 3.69 Analog: 906, Voltage: 4.43 Analog: 1023, Voltage: 5.00 Analog: 1023, Voltage: 5.00
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

Défiez-vous

Utilisez le potentiomètre pour réaliser l'un de ces projets :

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.

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!