ESP32 S3 - Potentiomètre

Ce tutoriel vous explique comment utiliser l'ESP32 S3 avec un potentiomètre. Le potentiomètre est l'un des dispositifs d'entrée les plus polyvalents, vous permettant de traduire une rotation physique en une valeur numérique que votre ESP32 S3 peut lire et exploiter.

ESP32 S3 - Potentiometer

Ce que vous allez construire :

  1. Un circuit reliant un potentiomètre à l'ESP32 S3
  2. Un code qui lit la valeur analogique brute du potentiomètre
  3. Une conversion de tension qui transforme la lecture ADC en volts réels
  4. Une sortie Serial Monitor qui affiche les lectures analogiques et de tension en direct

À propos du potentiomètre

Le potentiomètre (aussi appelé capteur d'angle rotatif) est une résistance variable à trois bornes utilisée pour contrôler des réglages tels que le volume d'un haut-parleur, la température d'une pièce, ou la luminosité d'une lampe. En faisant tourner son axe, vous faites varier la résistance entre la broche de sortie et chaque rail d'alimentation, produisant une tension de sortie proportionnelle que votre microcontrôleur peut lire.

Potentiometer Pinout

Spécifications clés

Brochage du potentiomètre

Un potentiomètre a généralement 3 broches :

  1. Broche VCC : connectez cette broche à VCC (5V ou 3,3V)
  2. Broche GND : connectez cette broche à GND (0V)
  3. Broche de sortie : délivre la tension vers la broche d'entrée analogique de l'ESP32 S3
Potentiometer Pinout

※ Note:

Les broches GND et VCC sont interchangeables

Comment fonctionne le potentiomètre

L'axe du potentiomètre peut tourner de 0° (le plus proche de la broche GND) jusqu'à un angle (le plus proche de la broche VCC), appelé ANGLE_MAX.

La tension sur la broche de sortie est directement proportionnelle à l'angle de l'axe, variant de 0 V à VCC. Le tableau ci-dessous montre la relation entre l'angle et la tension de sortie :

Angle Tension
0°0v
ANGLE_MAX°VCC
angle°angle° × VCC / ANGLE_MAX°

※ Note:

La valeur ANGLE_MAX dépend du fabricant.

How Potentiometer Works

ESP32 S3 - Potentiomètre rotatif

La broche d'entrée analogique de l'ESP32 S3 convertit une tension (entre 0 V et 3,3 V) en une valeur entière (entre 0 et 4095), appelée valeur ADC ou valeur analogique.

Vous pouvez connecter la broche de sortie du potentiomètre à une broche d'entrée analogique de l'ESP32 S3, puis lire la valeur analogique de cette broche. La valeur analogique peut être remise à l'échelle en d'autres valeurs utiles :

  • Remettre à l'échelle la valeur analogique en l'angle du potentiomètre.
  • Remettre à l'échelle la valeur analogique en la tension du potentiomètre.
  • Remettre à l'échelle la valeur analogique en un réglage contrôlable (par exemple, volume du haut-parleur, température de la pièce, ou luminosité de la lampe).

Plage de remise à l'échelle

DE À
Anglepivoté par l'utilisateur 0° → ANGLE_MAX°
Tensiondepuis la broche du potentiomètre 0V → 3.3V
Valeur ADClue par l'ESP32 S3 0 → 4095
Valeur de réglageconvertie par l'ESP32 S3 VALUE_MIN → VALUE_MAX

Schéma de câblage entre le potentiomètre et l'ESP32 S3

Connectez le potentiomètre à votre ESP32 S3 à l'aide d'une breadboard et de fils de connexion comme indiqué dans le schéma ci-dessous. Assurez-vous que la broche de sortie du potentiomètre est connectée à un GPIO compatible ADC de l'ESP32 S3.

  • Comment connecter l'ESP32 S3 et le potentiomètre à l'aide d'une breadboard
ESP32 S3 Potentiometer Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Consignes de sécurité

Alimentez toujours le potentiomètre depuis le rail 3,3 V de l'ESP32 S3 plutôt qu'en 5 V, car l'entrée ADC de l'ESP32 S3 est prévue pour un maximum de 3,3 V. Vérifiez bien votre câblage avant la mise sous tension pour éviter d'appliquer une surtension à la broche analogique.

Broche du potentiomètreBroche ESP32 S3
VCC3.3V
GNDGND
OutputGPIO5 (ou tout GPIO compatible ADC)

Comment programmer le potentiomètre

Lire un potentiomètre avec l'ESP32 S3 ne nécessite que quelques lignes de code Arduino. Les extraits de code suivants montrent chaque étape - de la lecture de la valeur ADC brute à sa conversion en unités significatives.

  • Lisez la valeur d'une broche d'entrée connectée à la broche de sortie du potentiomètre à l'aide de la fonction analogRead().
analogValue = analogRead(5); // GPIO5
  • Remettez à l'échelle en l'angle du potentiomètre à l'aide de la fonction map().
angle = map(analogValue, 0, 4095, 0, ANGLE_MAX);
  • Remettez à l'échelle en la tension du potentiomètre :
voltage = map(analogValue, 0, 4095, 0, 3.3);
  • Remettez à l'échelle en une valeur contrôlable (par exemple, volume, luminosité, ou vitesse de moteur) :
value = map(analogValue, 0, 4095, VALUE_MIN, VALUE_MAX);
  • Par exemple, remise à l'échelle vers la luminosité d'une LED. Comme mentionné dans le tutoriel PWM, la luminosité d'une LED peut être contrôlée avec une valeur PWM de 0 (toujours éteinte) à 255 (toujours allumée). Vous pouvez faire correspondre la valeur analogique à la luminosité de la LED comme ceci :
brightness = map(analogValue, 0, 4095, 0, 255);

Si vous voulez faire varier la LED d'un niveau de veilleuse jusqu'au maximum de luminosité :

nightlight = 100; // depending on your desired brightness brightness = map(analogValue, 0, 4095, nightlight, 255);

※ Note:

La fonction map() ne peut remettre à l'échelle la valeur analogique que vers un type int ou long. Si la valeur contrôlable est de type float, utilisez plutôt la fonction floatMap().

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 ESP32 S3

Le code suivant lit la valeur ADC brute et la tension correspondante du potentiomètre, puis affiche les deux dans le Serial Monitor toutes les 500 ms. Téléversez le sketch sur votre ESP32 S3 et ouvrez le Serial Monitor pour voir les lectures en direct pendant que vous tournez le bouton.

/* * Ce code ESP32 S3 a été développé par newbiely.fr * Ce code ESP32 S3 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/esp32-s3/esp32-s3-potentiometer */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-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 routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin GPIO5: int analogValue = analogRead(5); // Rescale to potentiometer's voltage (from 0V to 3.3V): float voltage = floatMap(analogValue, 0, 4095, 0, 3.3); // print out the value you read: Serial.print("Analog: "); Serial.print(analogValue); Serial.print(", Voltage: "); Serial.println(voltage); delay(1000); }

Étapes rapides

  1. Nouveau sur l'ESP32 S3 ? Suivez d'abord notre guide ESP32 S3 - Premiers pas.
  2. Copiez le code ci-dessus et collez-le dans l'Arduino IDE.
  3. Compilez et téléversez le code sur la carte ESP32 S3 en cliquant sur le bouton Upload dans l'Arduino IDE.
Arduino IDE Upload Code
  1. Ouvrez le Serial Monitor dans l'Arduino IDE.
How to open serial monitor on Arduino IDE
  1. Tournez lentement le bouton du potentiomètre d'une extrémité à l'autre.
  2. Observez les lectures en direct dans le Serial Monitor.
  3. Astuce : essayez de faire correspondre la valeur analogique à la luminosité d'une LED via PWM pour voir un effet physique du potentiomètre en temps réel.

Serial Monitor

Après le téléversement, le Serial Monitor affichera la valeur analogique brute accompagnée de la tension calculée. Tournez le potentiomètre pour voir les valeurs changer en temps réel. Les lectures suivantes ont été capturées en 2026 :

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:00:01] Analog: 0, Voltage: 0.00 [2026-06-16 10:00:02] Analog: 312, Voltage: 0.25 [2026-06-16 10:00:03] Analog: 2048, Voltage: 1.65 [2026-06-16 10:00:04] Analog: 4095, Voltage: 3.30
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

※ Note:

Ce tutoriel utilise la fonction analogRead() pour lire les valeurs de l'ADC connecté au potentiomètre. L'ADC de l'ESP32 S3 convient aux projets qui ne nécessitent PAS une grande précision. Pour les projets nécessitant des mesures précises, notez :

  • L'ADC de l'ESP32 S3 n'est pas parfaitement précis et peut nécessiter un étalonnage. Chaque carte peut se comporter légèrement différemment.
  • L'étalonnage peut être difficile pour les débutants et peut ne pas toujours donner des résultats exacts.

Pour les projets à haute précision, envisagez d'utiliser un ADC externe (par exemple ADS1115) avec l'ESP32 S3. Si vous souhaitez tout de même étalonner l'ADC, consultez le ESP32 ADC Calibration Driver.

Applications

Les potentiomètres sont couramment utilisés partout où un utilisateur doit ajuster un réglage de manière interactive. Voici quelques applications pratiques pour vos projets ESP32 S3 :

  1. Contrôle de volume : ajustez le niveau de sortie audio dans un système de haut-parleurs Bluetooth ou filaire.
  2. Gradateur de luminosité : contrôlez l'intensité de LED ou du rétroéclairage d'un LCD.
  3. Contrôle de vitesse de moteur : définissez le régime cible d'un moteur CC via une correspondance PWM.
  4. Consigne de température : permettez aux utilisateurs de régler une température de pièce désirée pour un thermostat.
  5. Position de servomoteur : faites tourner un servomoteur vers un angle sélectionné par l'utilisateur dans un bras robotique.

Vidéo

Regardez le tutoriel vidéo étape par étape pour ce projet ESP32 S3 ci-dessous.

Défis

Maintenant que vous avez un circuit de potentiomètre fonctionnel sur l'ESP32 S3, essayez d'étendre le projet avec ces exercices pour approfondir votre compréhension.

  1. Débutant : changez le GPIO utilisé pour le potentiomètre et mettez à jour le code en conséquence, puis vérifiez que les lectures fonctionnent toujours correctement.
  2. Intermédiaire : utilisez la valeur du potentiomètre pour contrôler la luminosité d'une LED connectée à une broche compatible PWM de l'ESP32 S3.
  3. Avancé : construisez une interface simple sur un écran OLED qui affiche une barre de progression représentant la position actuelle du potentiomètre en pourcentage.

Commentaires

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !