ESP32 - Knop schakelt LED aan/uit

Deze handleiding legt uit hoe u de ESP32 gebruikt om de status van een LED te schakelen tussen AAN en UIT wanneer een knop wordt ingedrukt. Meer specifiek:

De ESP32-code bevat een implementatie van een knop die een LED schakelt, zowel zonder als met debouncing.

Hardware benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Breadboard-knop met kapje
1×Breadboard-knopset
1×Paneel-knop (Push Button)
1×Drukknopmodule
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumper draadjes
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 knop

We hebben specifieke tutorials over LED en knop. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, bekabelingsverbindingen met de ESP32, ESP32 code... Leer er meer over via de volgende links:

Bekabelingsschema

ESP32 Knop LED Bekabelingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code - Knop schakelt LED zonder debouncing

/* * 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-button-toggle-led */ #define BUTTON_PIN 18 // ESP32 pin GPIO18, which connected to button #define LED_PIN 21 // ESP32 pin GPIO21, which connected to led // variables will change: int led_state = LOW; // the current state of LED int button_state; // the current state of button int last_button_state; // the previous state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode button_state = digitalRead(BUTTON_PIN); } void loop() { last_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if (last_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggled state digitalWrite(LED_PIN, led_state); } }

Snel aan de slag

  • Is dit uw eerste keer dat u een ESP32 gebruikt? Bekijk dan hoe u de omgeving voor ESP32 instelt in Arduino IDE.
  • Maak de bekabeling zoals getoond in de afbeelding hierboven.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en poort (COM).
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar de ESP32 door op de Upload-knop in Arduino IDE te klikken.
  • Houd de knop enkele seconden ingedrukt en laat hem los.
  • Bekijk de verandering in de status van de LED.

Regel-voor-regel code-uitleg

De bovenstaande ESP32-code bevat een regel-voor-regel uitleg in de comments. Lees deze goed door!

In de code is led_state = !led_state gelijkwaardig aan de volgende code:

if(led_state == LOW) led_state = HIGH; else led_state = LOW;

※ Notiz:

De bovenstaande code bevat geen debounce-logica voor de knop. Zonder debouncing kunnen onverwachte gedragingen optreden. Zie Waarom debouncing nodig is voor knoppen. Debouncing voor knoppen kan ingewikkeld zijn voor beginners. Gelukkig verzorgt de ezButton library deze debounce automatisch.

ESP32 Code - Knop schakelt LED met debouncing

/* * 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-button-toggle-led */ #include <ezButton.h> #define BUTTON_PIN 18 // ESP32 pin GPIO18, which connected to button #define LED_PIN 21 // ESP32 pin GPIO21, which connected to led ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; // variables will change: int led_state = LOW; // the current state of LED void setup() { Serial.begin(9600); // initialize serial pinMode(LED_PIN, OUTPUT); // set ESP32 pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggleed sate digitalWrite(LED_PIN, led_state); } }

Snel aan de slag

  • Is dit uw eerste keer dat u een ESP32 gebruikt? Bekijk dan hoe u de omgeving voor ESP32 instelt in Arduino IDE.
  • Installeer de ezButton library. Bekijk Hoe
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar de ESP32 door op de Upload-knop in Arduino IDE te klikken.
  • Druk meerdere keren op de knop.
  • Bekijk de verandering in de status van de LED.

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!