ESP32 - Potentiometer schakelt LED aan

Deze tutorial geeft uitleg over hoe u de ESP32 gebruikt met een potentiometer om een LED te bedienen. In detail:

We leren ook hoe we de analoge waarde kunnen omzetten naar spanning (voltage) en vervolgens deze spanningsdrempel gebruiken om de LED te bedienen:

Wilt u de helderheid van de LED regelen met een potentiometer? Zie dan de tutorial ESP32 - potentiometer fades LED.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Potentiometer
1×(Alternatief) Potentiometer Kit
1×(Alternatief) Potentiometer Module met Knop
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Optioneel) DC Power Jack
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over LED en Potentiometer

We hebben specifieke tutorials over LED en potentiometer. Elke tutorial bevat gedetailleerde informatie en stap-voor-stap instructies over hardware pinout, werkingsprincipe, bedrading met ESP32, ESP32 code enzovoort. Lees meer over deze componenten via de volgende links:

Bedradingsschema

ESP32 Potentiometer LED Bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code - Analoge Drempelwaarde

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-potentiometer-triggers-led */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define LED_PIN 21 // ESP32 pin GPIO21 connected to LED's pin #define ANALOG_THRESHOLD 1000 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin if (analogValue > ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }

Snelle Stappen

  • Als u voor het eerst met ESP32 werkt, zie hoe u de omgeving instelt voor ESP32 op Arduino IDE.
  • Maak de bedrading zoals weergegeven in bovenstaande afbeelding.
  • Verbind de ESP32 bord met uw PC via een micro USB-kabel.
  • Open Arduino IDE op uw PC.
  • Selecteer het juiste ESP32 bord (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar het ESP32 bord door op de Upload knop te klikken in Arduino IDE.
Arduino IDE Upload Code
  • Draai aan de potentiometer.
  • Observeer de verandering in de status van de LED.

Regel-voor-regel Code Uitleg

De bovenstaande ESP32 code bevat regel-voor-regel toelichting. Lees alstublieft de commentaarregels in de code!

ESP32 Code - Spanningsdrempel

De analoge waarde gemeten van de potentiometer wordt omgezet naar spanning (voltage), en deze spanning wordt vervolgens vergeleken met een spanningsdrempel. Overschrijdt de spanning deze drempel, dan wordt de LED getriggerd.

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-potentiometer-triggers-led */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define LED_PIN 21 // ESP32 pin GPIO21 connected to LED's pin #define VOLTAGE_THRESHOLD 2.5 // Voltages void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin float voltage = floatMap(analogValue, 0, 1023, 0, 5); // Rescale to potentiometer's voltage if (voltage > VOLTAGE_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED } 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; }

※ Notiz:

In deze tutorial wordt de functie analogRead() gebruikt om waarden te lezen van een ADC (Analog-to-Digital Converter) die verbonden is met een potentiometer. De ESP32 ADC is zeer geschikt voor projecten die geen hoge nauwkeurigheid vereisen. Echter, voor projecten die precieze metingen nodig hebben, geldt het volgende:

  • De ESP32 ADC is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elke ESP32 bord kan iets anders zijn, dus u moet de ADC kalibreren per individueel bord.
  • Kalibratie kan lastig zijn, vooral voor beginners, en geeft mogelijk niet altijd precies de gewenste resultaten.

Voor projecten die hoge precisie vereisen, overweeg het gebruik van een externe ADC (bijv. ADS1115) in combinatie met de ESP32, of gebruik een Arduino, die een betrouwbaardere ADC heeft. Als u toch de ESP32 ADC wilt kalibreren, raadpleeg dan ESP32 ADC Calibration Driver.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!