Code zoeken

ESP32-zelfstudie 23/55 - Spanning van potentiometer lezen met ESP32 | SunFounder's ESP32 IoT-kit

ESP32-zelfstudie 23/55 - Spanning van potentiometer lezen met ESP32 | SunFounder's ESP32 IoT-kit

In deze tutorial leren we hoe we de gelijkspanning van een potentiometer kunnen meten met behulp van de ESP32-module van SunFounder. Het project zal ook demonstreren hoe een LED kan dimmen op basis van de positie van de potentiometer. Wanneer je de potentiometer tegen de klok in draait, neemt de spanningswaarde af en dimt de LED dienovereenkomstig. Deze oefening biedt een praktisch begrip van het gebruik van de analoog-naar-digitaal-omzetter (ADC) in de ESP32.

potentiometer
Potentiometer of variabele weerstand
Potentiometer of variabele weerstand

De ESP32 is een krachtige microcontroller met ingebouwde Wi-Fi- en Bluetooth-mogelijkheden, waardoor deze ideaal is voor IoT-projecten. In deze tutorial gebruiken we de analoge ingangsfuncties om spanningsniveaus van een potentiometer te lezen, terwijl we ook de helderheid van een LED regelen op basis van deze metingen. Het resultaat is een responsieve LED die van intensiteit varieert terwijl je de potentiometer aanpast.

Hardware uitgelegd

Voor dit project hebben we de volgende componenten nodig:

  • ESP32-module: De belangrijkste microcontroller die de spanning van de potentiometer leest en de LED aanstuurt.
  • Potentiometer: Een variabele weerstand die wordt gebruikt om de spanning aan te passen. Deze heeft drie pinnen: twee voor vaste weerstanden en één die varieert.
  • LED: Een lichtgevende diode waarvan de helderheid wordt geregeld op basis van de positie van de potentiometer.
  • Weerstand: Een weerstand van 220 ohm om de stroom door de LED te beperken.

De potentiometer werkt door de weerstand tussen de pinnen te variëren, waardoor deze een spanning genereert die de ESP32 via zijn ADC kan lezen. De helderheid van de LED wordt geregeld met behulp van pulsbreedtemodulatie (PWM) om het vermogen dat eraan wordt geleverd aan te passen op basis van de analoge meting.

Datasheetdetails

Bedradingsinstructies

ESP32-23-fading-LED_pot-wiring

Om de componenten te bedraden, begin je met het aansluiten van de potentiometer. Verbind een van de buitenste pinnen met de 3.3V-voeding op de ESP32. Verbind de andere buitenste pin met de grond (GND). De middelste pin van de potentiometer wordt verbonden met pin 35 op de ESP32, die wordt gebruikt voor het lezen van de analoge spanning.

Sluit vervolgens voor de LED de langere pin (anode) aan op pin 26 van de ESP32 via een weerstand van 220 ohm. Verbind de kortere pin (kathode) van de LED met de grond. Zorg ervoor dat alle verbindingen stevig zijn en controleer de oriëntatie van de LED dubbel om schade te voorkomen.

Potentiometer or variable resistor

Codevoorbeelden & uitleg

Het volgende codefragment laat zien hoe je de ESP32 instelt om de potentiometer te lezen en de LED aan te sturen:

const int potPin = 35; // Potentiometer verbonden met
const int ledPin = 26; // LED verbonden met

// PWM-instellingen
const int freq = 5000; // PWM-frequentie
const int resolution = 12; // PWM-resolutie (bits)

In dit fragment definiëren we de pinnen voor de potentiometer en de LED. De PWM-frequentie en -resolutie worden ook ingesteld, die de helderheidsniveaus van de LED bepalen.

Vervolgens initialiseren we de setup:

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

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

In de setup-functie initialiseren we de seriële communicatie en configureren we de PWM-instellingen voor de LED. Deze setup wordt eenmalig uitgevoerd wanneer het programma start.

Tot slot leest de loop-functie continu de potentiometerwaarde en past de helderheid van de LED aan:

void loop() {
  int potValue = analogRead(potPin); // lees de waarde van de potentiometer
  uint32_t voltage_mV = analogReadMilliVolts(potPin); // Lees de spanning in millivolt

  ledcWrite(ledPin, potValue);
  // Seriële uitvoer weggelaten voor beknoptheid
}

In de loop lezen we de analoge waarde van de potentiometer en vertalen deze om de helderheid van de LED te regelen. De seriële uitvoer toont de potentiometerwaarde en spanning, wat helpt om de metingen te verifiëren.

Demonstratie / Wat te verwachten

Wanneer het circuit correct is opgebouwd en de code is geüpload, zou het draaien aan de potentiometer moeten resulteren in een overeenkomstige verandering in de spanningswaarde die in de seriële monitor wordt weergegeven. De LED zou soepel in en uit moeten dimmen terwijl de potentiometer wordt aangepast. Als de LED niet reageert zoals verwacht, controleer dan de bedradingsverbindingen en zorg ervoor dat de potentiometer correct functioneert (in video op 11:30).

Videotijdstempels

  • 00:00 Start
  • 2:02 Wat is een pot
  • 4:15 Weerstand van de pot meten
  • 6:59 Documentatiepagina
  • 8:56 Bedrading uitgelegd
  • 12:28 Arduino-code uitgelegd
  • 15:58 ESP32-board en COM-poort selecteren in Arduino IDE
  • 17:40 Demonstratie van het lezen van de potwaarde met ESP32

Afbeeldingen

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
Taal: C++
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)

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

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

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.print("Potentiometer Value: ");
  Serial.print(potValue);
  Serial.print(", Voltage: ");
  Serial.print(voltage_mV / 1000.0); // Convert millivolts to volts
  Serial.println(" V");

  delay(100);
}

Hulpmiddelen en referenties

Bestanden📁

Geen bestanden beschikbaar.