ESP32 - Potentiometer voor LED-dimming

Deze tutorial legt uit hoe u de ESP32 gebruikt in combinatie met een potentiometer om de helderheid van een LED te regelen.

Wilt u de LED activeren zodra de spanning van de potentiometer een bepaalde drempelwaarde bereikt? Bekijk dan de tutorial ESP32 - potentiometer triggers 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 draaiknop
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumperdraden
1×(Optioneel) DC voedingsconnector
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 stapsgewijze instructies over hardwarepinout, werkingsprincipe, aansluitingen op de ESP32 en ESP32-code. Lees er meer over via de volgende links:

Aansluitschema

ESP32 Rotary Potentiometer LED Aansluitschema

This image is created using Fritzing. Click to enlarge image

Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.

Hoe te programmeren

  • Leest de ingang op de analoge pin (waarde tussen 0 en 4095)
int analogValue = analogRead(36); // GPIO36 (ADC0)
  • Zet dit om naar helderheid (waarde tussen 0 en 255)
int brightness = map(analogValue, 0, 4095, 0, 255);
  • Stelt de helderheid van de LED in
analogWrite(LED_PIN, brightness);

ESP32 Code

/* * 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-fade-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 // 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); // declare LED pin to be an output: pinMode(LED_PIN, OUTPUT); } // the loop routine runs over and over again forever: void loop() { // reads the input on analog pin A0 (value between 0 and 4095) int analogValue = analogRead(POTENTIOMETER_PIN); // scales it to brightness (value between 0 and 255) int brightness = map(analogValue, 0, 4095, 0, 255); // sets the brightness LED that connects to pin 3 analogWrite(LED_PIN, brightness); // print out the value Serial.print("Analog value = "); Serial.print(analogValue); Serial.print(" => brightness = "); Serial.println(brightness); delay(100); }

Snelle stappen

Hoe seriële monitor openen in Arduino IDE
  • Draai aan de potentiometer
  • Kijk hoe de LED in helderheid verandert (fade effect)
  • Bekijk de output in de Seriële Monitor. Het ziet er ongeveer zo uit:
COM6
Send
Analog value = 6 => brightness = 1 Analog value = 34 => brightness = 8 Analog value = 89 => brightness = 22 Analog value = 149 => brightness = 37 Analog value = 214 => brightness = 53 Analog value = 297 => brightness = 74 Analog value = 365 => brightness = 90 Analog value = 431 => brightness = 107 Analog value = 510 => brightness = 127 Analog value = 589 => brightness = 146 Analog value = 695 => brightness = 173 Analog value = 790 => brightness = 196 Analog value = 970 => brightness = 241 Analog value = 996 => brightness = 248 Analog value = 1018 => brightness = 253 Analog value = 4095 => brightness = 255
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Deze tutorial maakt gebruik van de analoog-naar-digitaal functie analogRead() om waarden te lezen van een ADC (Analog-to-Digital Converter) die verbonden is met een potentiometer. De ADC van ESP32 is geschikt voor projecten waar geen hoge nauwkeurigheid vereist is. Houd echter rekening met het volgende voor projecten die preciezere metingen nodig hebben:

  • De ADC van ESP32 is niet perfect nauwkeurig en kan kalibratie vereisen voor correcte resultaten. Elke ESP32-module kan iets verschillen, dus kalibratie per individueel board is aan te raden.
  • Kalibreren kan lastig zijn, vooral voor beginners, en geeft niet altijd de exacte gewenste resultaten.

Voor projecten die hoge precisie vereisen, overweeg dan het gebruik van een externe ADC (zoals de ADS1115) met de ESP32, of het gebruik van een Arduino met een betrouwbaardere ADC. Wilt u toch de ESP32 ADC kalibreren, raadpleeg dan de 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!