ESP32 - Potentiometer Activeert Relay

Deze tutorial legt uit hoe u de ESP32 gebruikt in combinatie met een potentiometer om een relay te besturen. In detail:

We leren ook hoe we de analoge waarde omzetten naar spanning en daarna een spanningsdrempel gebruiken om de relay te besturen:

We kunnen deze tutorial uitbreiden door een knop te gebruiken om bijvoorbeeld een LED-strip, sirene, lamp of motor aan te sturen… door deze aan te sluiten op de relay.

Over Relay en Potentiometer

We hebben specifieke tutorials over relay en potentiometer. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, bedrading naar ESP32, ESP32 code… Leer er meer over via de volgende links:

Bedradingsschema

ESP32 Potentiometer Relay 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-relay */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to Relay's pin #define ANALOG_THRESHOLD 1000 void setup() { // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); pinMode(RELAY_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(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay }

Snelle Stappen

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

Regel-voor-Regel Code Uitleg

De hierboven getoonde ESP32 code bevat commentaarregel-voor-regel. Lees daarom de opmerkingen in de code goed!

ESP32 Code - Spanningsdrempel

De analoge waarde die uit de potentiometer wordt gelezen, wordt omgezet naar spanning en daarna wordt deze spanning vergeleken met een spanningsdrempel. Als deze spanningswaarde de drempel overschrijdt, activeert dit de relay.

/* * 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-relay */ #define POTENTIOMETER_PIN 36 // ESP32 pin GPIO36 (ADC0) connected to Potentiometer pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to Relay'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(RELAY_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(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay } 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:

Deze tutorial gebruikt de functie analogRead() om waarden te lezen van een ADC (Analog-to-Digital Converter) die is aangesloten op een potentiometer. De ADC van de ESP32 is geschikt voor projecten die GEEN hoge nauwkeurigheid vereisen. Voor projecten waarbij precieze metingen nodig zijn, houdt u rekening met het volgende:

  • De ADC van de ESP32 is niet perfect accuraat en heeft mogelijk kalibratie nodig voor correcte resultaten. Elke ESP32 kan iets anders zijn, dus u moet per bord de ADC kalibreren.
  • Kalibreren kan lastig zijn, vooral voor beginners, en levert mogelijk niet altijd de exacte gewenste resultaten op.

Voor projecten die hoge precisie verlangen kunt u overwegen om een externe ADC te gebruiken (bijv. ADS1115) in combinatie met ESP32 of een Arduino, die een betrouwbaardere ADC heeft. Indien u toch de ESP32 ADC wil kalibreren, bekijk dan ESP32 ADC Kalibratie 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.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video geeft extra inzichten en helpt u het concept nog beter te begrijpen.

Opmerkingen

※ 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!