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 :

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

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

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

※ 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
0v
ANGLE_MAX°VCC
angle°angle° × VCC / ANGLE_MAX°

※ NOTE THAT:

La valeur ANGLE_MAX dépend des fabricants.

Comment fonctionne un potentiomètre

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
Anglerotated by userANGLE_MAX°
Voltagefrom potentiometer's pin 0V3.3V
ADC valueread by ESP32 04095
Setting valueconverted by ESP32 VALUE_MINVALUE_MAX

Schéma de câblage entre le potentiomètre et Arduino Nano ESP32

Schéma de câblage du potentiomètre 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().
analog_value = analogRead(A5); // A5
  • Redimensionnez à l'angle du potentiomètre en utilisant la fonction map().
angle = map(analog_value, 0, 4095, 0, ANGLE_MAX);
  • Redimensionner à la tension du potentiomètre :
voltage = map(analog_value, 0, 4095, 0, 3.3);
  • Redimensionner à la valeur contrôlable (par exemple volume de la stéréo, luminosité, vitesse du moteur à courant continu...)
value = map(analog_value, 0, 4095, VALUE_MIN, VALUE_MAX);
  • 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 :
brightness = map(analog_value, 0, 4095, 0, 255);

Si vous souhaitez atténuer une LED de la veilleuse à la plus brillante,

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

※ 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() :

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 ESP32

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-esp32/arduino-nano-esp32-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; } // la routine de configuration s'exécute une fois lorsque vous appuyez sur réinitialiser: void setup() { // Initialiser le Serial pour communiquer avec le moniteur série. Serial.begin(9600); } // la routine de boucle s'exécute encore et encore indéfiniment: void loop() { // lire l'entrée sur la broche analogique A5: int analog_value = analogRead(A5); // Redimensionner à la tension du potentiomètre (de 0V à 3.3V): float voltage = floatMap(analog_value, 0, 4095, 0, 3.3); // imprimer la valeur que vous avez lue: Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Voltage: "); Serial.println(voltage); delay(1000); }

Étapes rapides

Téléversement de code Arduino IDE
  • Ouvrez le moniteur série sur Arduino IDE
Comment ouvrir 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 :
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.2 Analog: 4095, Voltage: 3.30 Analog: 4095, Voltage: 3.30
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

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