ESP32 C3 Super Mini - Potentiomètre

Un potentiomètre est le moyen le plus simple d'ajouter un bouton de réglage à votre projet ESP32 C3 Super Mini. Tournez le bouton, et la carte lit un nombre que vous pouvez utiliser pour le volume, la luminosité, la vitesse ou tout autre réglage. C'est un excellent premier projet analogique pour les débutants.

Dans ce tutoriel, vous apprendrez :

ESP32 C3 Super Mini - Potentiomètre

Matériel Requis

1×ESP32 C3 Super Mini
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Potentiometer
1×Alternativement: 10k Ohm Trimmer Potentiometer
1×Alternativement: Potentiometer Kit
1×Alternativement: Potentiometer Module with Knob
1×Plaque d'essai
1×Fils de connexion
1×Optionnel: Connecteur d'alimentation DC

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
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 (aussi appelé capteur d'angle rotatif) est un bouton qui modifie un réglage, comme le volume d'un haut-parleur, la température d'une pièce ou la luminosité d'une lampe.

Caractéristiques Principales :

  • Simple : Seulement 3 broches, aucune bibliothèque nécessaire.
  • Bon marché : L'un des composants les moins chers que vous puissiez acheter.
  • Sortie analogique : Fournit une tension progressive, pas seulement ON/OFF.
  • Peu gourmand : Consomme presque aucun courant.

Spécifications Techniques :

  • Tension de fonctionnement : 3,3V ou 5V (utilisez 3,3V avec l'ESP32 C3 Super Mini)
  • Sortie : de 0V jusqu'à la tension présente sur la broche VCC
  • Rotation : de 0° à un angle maximal défini par le fabricant
  • Valeurs courantes : 10kΩ est la plus utilisée
Brochage du Potentiomètre

Brochage du Potentiomètre

Un potentiomètre possède généralement 3 broches.

  • Broche VCC : connectez cette broche à VCC (3,3V sur l'ESP32 C3 Super Mini)
  • Broche GND : connectez cette broche à GND (0V)
  • Broche de sortie : envoie la tension vers la broche d'entrée analogique de l'ESP32 C3 Super Mini
Brochage du Potentiomètre

※ Note:

La broche GND et la broche VCC sont interchangeables

WARNING

Alimentez toujours le potentiomètre en 3,3V, pas en 5V. Les broches GPIO de l'ESP32 C3 Super Mini fonctionnent uniquement en 3,3V, et du 5V sur la broche de sortie peut endommager la carte.

Comment Fonctionne le Potentiomètre

L'axe tourne de 0° (au plus près de la broche GND) jusqu'à un angle maximal (au plus près de la broche VCC), appelé ANGLE_MAX.

  • En bref : plus d'angle = plus de tension sur la broche de sortie.
  • La tension de sortie est directement proportionnelle à la position de l'axe, de 0 à VCC.

Le tableau ci-dessous montre la relation entre l'angle et la tension sur la broche de sortie :

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

※ Note:

La valeur ANGLE_MAX dépend des fabricants.

Comment Fonctionne le Potentiomètre

ESP32 C3 Super Mini - Potentiomètre Rotatif

La broche d'entrée analogique de l'ESP32 C3 Super Mini transforme une tension en nombre.

  • Plage d'entrée : 0V à 3,3V
  • Nombre en sortie : 0 à 4095 (c'est ce qu'on appelle la valeur ADC ou valeur analogique)
  • Résolution : 12 bits, soit 4096 pas au total
  • Broches analogiques sur cette carte : GPIO0 à GPIO4 uniquement. Ce tutoriel utilise GPIO4.

Connectez la broche de sortie du potentiomètre à une broche d'entrée analogique de l'ESP32 C3 Super Mini, puis lisez la valeur analogique sur cette broche.

La valeur analogique peut être convertie en une autre valeur. Voici les cas d'utilisation courants :

  • En angle : savoir de combien le bouton est tourné.
  • En tension : voir la tension réelle sur la broche de sortie.
  • En valeur de réglage : volume, température, luminosité, vitesse du moteur, etc.

Plage de Conversion

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

Schéma de Câblage entre le Potentiomètre et l'ESP32 C3 Super Mini

Le câblage est simple : deux fils d'alimentation et un fil de signal.

  • Remarque : Utilisez la broche 3,3V pour VCC. N'utilisez jamais le 5V.
  • Remarque : Le fil de signal va sur GPIO4, une broche compatible analogique.
  • Remarque : N'utilisez pas GPIO8 ou GPIO9. Ce sont des broches de configuration au démarrage (strapping) et elles peuvent empêcher la carte de démarrer.
  • Remarque : GPIO20 et GPIO21 sont l'UART du Moniteur Série. Laissez-les libres.
Broche du Potentiomètre Broche de l'ESP32 C3 Super Mini
VCC 3.3V
GND GND
Sortie GPIO4
Schéma de Câblage ESP32 C3 Super Mini Potentiomètre

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

Comment Programmer le Potentiomètre

Lire un potentiomètre ne demande qu'une seule fonction, puis un peu de calcul.

  • Lisez la valeur de la broche d'entrée analogique connectée à la broche de sortie du potentiomètre à l'aide de la fonction analogRead().
analog_value = analogRead(4); // GPIO4
  • Convertissez-la en angle du potentiomètre à l'aide de la fonction map().
angle = map(analog_value, 0, 4095, 0, ANGLE_MAX);
  • Convertissez-la en tension du potentiomètre :
voltage = map(analog_value, 0, 4095, 0, 3.3);
  • Convertissez-la en valeur contrôlable (par ex. volume d'une chaîne stéréo, luminosité, vitesse d'un moteur DC... )
value = map(analog_value, 0, 4095, VALUE_MIN, VALUE_MAX);
  • Par exemple, la conversion en luminosité d'une LED. Comme mentionné dans ce tutoriel, la luminosité d'une LED peut être contrôlée à l'aide d'une valeur PWM de 0 (toujours éteinte) à 255 (toujours allumée). Nous pouvons donc convertir la valeur analogique en luminosité de la LED (d'éteinte à la plus lumineuse) comme suit :
brightness = map(analog_value, 0, 4095, 0, 255);

Si vous voulez faire varier la LED d'un niveau veilleuse jusqu'à la luminosité maximale,

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

※ Note:

Utilisez toujours 4095 comme limite haute de la plage d'entrée, pas 1023. L'ESP32 C3 Super Mini possède un ADC 12 bits. Le code copié d'une ancienne carte 10 bits utilise souvent 1023 et donnera des résultats faux sur cette carte.

※ Note:

La fonction map() ne peut être utilisée que pour convertir 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 ESP32 C3 Super Mini

Le code ci-dessous lit le potentiomètre sur GPIO4 et affiche à la fois la valeur brute et la tension.

Ce que Fait ce Code :

  • Démarre le port série : ouvre le Moniteur Série à 115200 bauds.
  • Configure l'ADC : analogSetAttenuation(ADC_11db) permet à la broche de lire toute la plage de 0V à 3,3V.
  • Lit le bouton : analogRead() donne un nombre de 0 à 4095.
  • Convertit en volts : floatMap() transforme ce nombre en une tension avec décimales.
  • Affiche une fois par seconde : facile à suivre pendant que vous tournez le bouton.
/* * Ce code ESP32 C3 Super Mini a été développé par newbiely.fr * Ce code ESP32 C3 Super Mini 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-c3/esp32-c3-super-mini-potentiometer */ #define POTENTIOMETER_PIN 4 // The ESP32 C3 SuperMini pin connected to the potentiometer's output pin 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 the Serial to communicate with the Serial Monitor. Serial.begin(115200); // 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 GPIO4: int analog_value = analogRead(POTENTIOMETER_PIN); // Rescale to potentiometer's voltage (from 0V to 3.3V): float voltage = floatMap(analog_value, 0, 4095, 0, 3.3); // print out the value you read: Serial.print("Analog: "); Serial.print(analog_value); Serial.print(", Voltage: "); Serial.println(voltage); delay(1000); }

Étapes Rapides

  • Nouveau avec l'ESP32 C3 Super Mini ? Suivez d'abord notre tutoriel ESP32 C3 Super Mini - Premiers pas pour configurer votre environnement de développement.
  • Câblez le tout : Connectez le potentiomètre au 3,3V, à GND et à GPIO4 comme indiqué ci-dessus.
  • Connectez la carte : Branchez l'ESP32 C3 Super Mini à votre ordinateur avec un câble USB Type-C.
  • Ouvrez l'IDE : Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Sélectionnez la carte : Assurez-vous que l'ESP32 C3 Super Mini est sélectionné dans Outils > Carte.
  • Sélectionnez le port : Choisissez le port COM de votre carte dans Outils > Port.
  • Téléversez : Cliquez sur le bouton Téléverser dans Arduino IDE.
  • Ouvrez le Moniteur Série : Réglez le débit en bauds sur 115200.
  • Tournez le bouton : Faites tourner lentement le potentiomètre d'une extrémité à l'autre.
  • Vérifiez le résultat : Le Moniteur Série affiche la valeur qui change. Cela ressemble à ceci :
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Analog: 0, Voltage: 0.00 Analog: 128, Voltage: 0.10 Analog: 642, Voltage: 0.52 Analog: 1487, Voltage: 1.20 Analog: 2059, Voltage: 1.66 Analog: 3310, Voltage: 2.67 Analog: 4095, Voltage: 3.30 Analog: 4095, Voltage: 3.30
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2
  • Astuce de Pro : Si la valeur n'atteint jamais 0 ou 4095, vérifiez que VCC et GND sont bien connectés. Un fil mal branché est la cause la plus fréquente.

※ Note:

Ce tutoriel utilise la fonction analogRead() pour lire les valeurs d'un ADC (Convertisseur Analogique-Numérique) connecté à un capteur ou à un composant. L'ADC de l'ESP32 C3 Super Mini convient aux projets qui ne nécessitent pas une grande précision. Cependant, pour les projets qui demandent des mesures précises, gardez à l'esprit les points suivants :

  • L'ADC de l'ESP32 C3 Super Mini n'est pas parfaitement précis et peut nécessiter un étalonnage pour obtenir des résultats corrects. Chaque carte ESP32 C3 Super Mini peut varier légèrement, l'étalonnage est donc nécessaire pour chaque carte individuellement.
  • L'étalonnage peut être difficile, surtout pour les débutants, et ne donne pas toujours exactement les résultats souhaités.

Pour les projets nécessitant une grande précision, envisagez d'utiliser un ADC externe (par ex. ADS1115) avec l'ESP32 C3 Super Mini, ou d'utiliser une autre carte avec un ADC plus fiable. Si vous souhaitez tout de même étalonner l'ADC de l'ESP32 C3 Super Mini, consultez le ESP32 ADC Calibration Driver.

Idées de Projets

Une fois le bouton fonctionnel, essayez de l'utiliser pour contrôler quelque chose de concret.

  • Variateur de Lumière : Tournez le bouton pour changer la luminosité d'une LED.
  • Bouton de Volume : Réglez le niveau sonore d'un buzzer ou d'un haut-parleur.
  • Contrôleur de Servo : Déplacez un servomoteur à l'angle de votre choix.
  • Réglage de Vitesse du Moteur : Changez la vitesse d'un moteur DC ou d'un ventilateur.
  • Réglage de Seuil : Utilisez le bouton pour définir le niveau d'alarme d'un capteur sans modifier le code.
  • Sélecteur de Menu : Faites défiler des options sur un écran OLED ou LCD.

Mettez-vous au Défi

Essayez ces petites améliorations pour en apprendre davantage sur l'entrée analogique de l'ESP32 C3 Super Mini.

  • Facile : Affichez la valeur sous forme de pourcentage de 0% à 100% au lieu d'un nombre brut.
  • Facile : Modifiez le délai pour que la valeur se mette à jour 10 fois par seconde.
  • Moyen : Convertissez la valeur en angle de 0° à 270° et affichez-le.
  • Moyen : Faites la moyenne de 10 mesures avant d'afficher pour obtenir une valeur stable.
  • Avancé : Utilisez le bouton pour régler la luminosité d'une LED sur GPIO3 avec le PWM.
  • Avancé : Ajoutez un second potentiomètre sur GPIO2 et lisez les deux boutons en même temps.

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 !