Code de recherche

Tutoriel ESP32 23/55 - Lecture de la tension d'un potentiomètre avec l'ESP32 | Kit IoT ESP32 de SunFounder

Tutoriel ESP32 23/55 - Lecture de la tension d'un potentiomètre avec l'ESP32 | Kit IoT ESP32 de SunFounder

Dans ce tutoriel, nous allons apprendre à mesurer la tension continue d'un potentiomètre en utilisant le module ESP32 de SunFounder. Le projet démontrera également comment atténuer une LED en fonction de la position du potentiomètre. Lorsque vous tournez le potentiomètre dans le sens inverse des aiguilles d'une montre, la lecture de la tension diminue et la LED s'atténue en conséquence. Cet exercice permettra de comprendre de manière pratique l'utilisation du convertisseur analogique-numérique (ADC) dans l'ESP32.

potentiomètre
Potentiomètre ou résistance variable
Potentiomètre ou résistance variable

L'ESP32 est un microcontrôleur puissant équipé de capacités Wi-Fi et Bluetooth intégrées, ce qui le rend idéal pour les projets IoT. Dans ce tutoriel, nous allons utiliser ses fonctionnalités d'entrée analogique pour lire les niveaux de tension d'un potentiomètre, tout en contrôlant la luminosité d'une LED en fonction de ces lectures. Le résultat sera une LED réactive qui varie son intensité au fur et à mesure que vous ajustez le potentiomètre.

Matériel expliqué

Pour ce projet, nous aurons besoin des composants suivants :

  • Module ESP32 :Le microcontrôleur principal qui lira la tension du potentiomètre et contrôlera la LED.
  • Potentiomètre :Un potentiomètre utilisé pour ajuster la tension. Il a trois broches : deux pour les résistances fixes et une qui varie.
  • LED:Une diode électroluminescente dont la luminosité sera contrôlée en fonction de la position du potentiomètre.
  • Résistance :Une résistance de 220 ohms pour limiter le courant à travers la LED.

Le potentiomètre fonctionne en faisant varier la résistance entre ses broches, ce qui lui permet de générer une tension que l'ESP32 peut lire via son ADC. La luminosité de la LED est contrôlée à l'aide de la modulation de largeur d'impulsion (PWM) pour ajuster la puissance délivrée en fonction de la lecture analogique.

Détails de la fiche technique

Instructions de câblage

ESP32-23-fading-LED_pot-wiring

Pour câbler les composants, commencez par connecter le potentiomètre. Connectez l'une de ses broches externes à l'alimentation 3,3 V de l'ESP32. Connectez l'autre broche externe à la terre (GND). La broche du milieu du potentiomètre sera connectée à la broche35sur l'ESP32, qui est utilisé pour lire la tension analogique.

Ensuite, pour la LED, connectez la broche la plus longue (anode) à la broche26sur l'ESP32 via une résistance de 220 ohms. Connectez la broche la plus courte (cathode) de la LED à la masse. Assurez-vous que toutes les connexions sont sécurisées et vérifiez l'orientation de la LED pour éviter tout dommage.

Potentiometer or variable resistor

Exemples de code et guide étape par étape

Le code suivant montre comment configurer l'ESP32 pour lire le potentiomètre et contrôler la LED :

const int potPin = 35; // Potentiometer connected to
const int ledPin = 26; // LED connected to

// PWM settings
const int freq = 5000; // PWM frequency
const int resolution = 12; // PWM resolution (bits)

Dans cet extrait, nous définissons les broches pour le potentiomètre et la LED. La fréquence et la résolution du PWM sont également définies, ce qui va déterminer les niveaux de luminosité de la LED.

Ensuite, nous allons initialiser la configuration :

void setup() {
  Serial.begin(115200);

  // Configure PWM
  ledcAttach(ledPin, freq, resolution);
}

Dans la fonction de configuration, nous initialisons la communication série et configurons les réglages PWM pour la LED. Cette configuration s'exécute une fois lorsque le programme démarre.

Enfin, la fonction boucle lit en continu la valeur du potentiomètre et ajuste la luminosité de la LED :

void loop() {
  int potValue = analogRead(potPin); // read the value of the potentiometer
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // Read the voltage in millivolts

  ledcWrite(ledPin, potValue);
  // Serial output omitted for brevity
}

Dans la boucle, nous lisons la valeur analogique du potentiomètre et la traduisons pour contrôler la luminosité de la LED. La sortie série montre la valeur du potentiomètre et la tension, aidant à vérifier les lectures.

Démonstration / À quoi s'attendre

Lorsque le circuit est correctement configuré et que le code est téléchargé, régler le potentiomètre devrait entraîner un changement correspondant dans la lecture de la tension affichée dans le moniteur série. La LED devrait s'estomper progressivement en s'allumant et en s'éteignant au fur et à mesure que le potentiomètre est ajusté. Si la LED ne réagit pas comme prévu, vérifiez les connexions de câblage et assurez-vous que le potentiomètre fonctionne correctement (dans la vidéo à 11:30).

Horodatage des vidéos

  • 00:00 Début
  • 2:02 Qu'est-ce que le pot
  • 4:15 Mesurer la résistance du potentiomètre
  • 6:59 Page de documentation
  • 8:56 Explication du câblage
  • 12:28 Explication du code Arduino
  • 15:58 Sélection de la carte ESP32 et du port COM dans l'IDE Arduino
  • 17:40 Démonstration de lecture de la valeur de pot avec ESP32

Images

Potentiometer or variable resistor
Potentiometer or variable resistor
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-schematic
ESP32-23-fading-LED_pot-wiring
ESP32-23-fading-LED_pot-wiring
potentiometer
potentiometer
822-ESP32 Tutorial 23/55- Arduino code for fading LED
Langue: C++
const int potPin = 35; // Potentiomètre connecté à
const int ledPin = 26; // LED connecté à

 // Paramètres PWM
const int freq = 5000; // fréquence PWM
const int resolution = 12; // Résolution PWM (bits)

void setup() {
  Serial.begin(115200);

 // Configurer le PWM
  ledcAttach(ledPin, freq, resolution);
}

void loop() {

  int potValue = analogRead(potPin); // lire la valeur du potentiomètre
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // Lisez la tension en millivolts

  ledcWrite(ledPin, potValue);

  Serial.print("Potentiometer Value: ");
  Serial.print(potValue);
  Serial.print(", Voltage: ");
  Serial.print(voltage_mV / 1000.0); // Convertir des millivolts en volts
  Serial.println(" V");

  delay(100);
}

Ressources et références

Fichiers📁

Aucun fichier disponible.