Mit diesem Beispiel kann man, eine LED durch drücken eines Tasters blinken lassen. 

Material:

  • LED
  • ESP32
  • 220 Ω Widerstand
  • 10 kΩ Widerstand
  • Taster


Aufbau:


Abbildungen: LED mit Widerstand und Taster - Steckplatine
Quelle: BBS 2 Wolfsburg


Steckplan:


Abbildungen: LED mit Widerstand und Taster am ESP32 - Steckplatine
Quelle: BBS 2 Wolfsburg


Source Code:

const int LED = 23;      //Initialisiert die Integer-Variable LED konstant auf den Wert 23, die LED soll an den GPIO-Pin 23 angeschlossen werden
const int Taster = 35;         //Initialisiert die Integer-Variable Taster konstant auf den Wert 35, der Taster soll an den GPIO-Pin 35 angeschlossen werden
boolean ButtonPressed;      //Initialisiert die Boolean-Variable ButtonPressed, damit soll der Taster zu einem Schalter umfunktioniert werden

void setup() {                    //Wird nur bei Programmstart zur Initialisierung der Hardware aufgerufen
  pinMode(Taster, INPUT);         //Setzt den GPIO-Pin 35 als Input (Eingang)
  pinMode(LED, OUTPUT);           //Setzt den GPIO-Pin 23 als Output (Ausgang)
  Serial.begin(9600);             //Öffnet die serielle Schnittstelle und stellt die Datenrate auf 9600 Bit/s ein
}

void loop() {               //Endlosschleife wird immer wieder neu aufgerufen, das Hauptprogramm
  
  if (digitalRead(Taster) == HIGH) {        //Wird ausgeführt, wenn der Taster gedrückt wird
    if(!ButtonPressed){                     //Wird ausgeführt, wenn ButtonPressed false ist
      ButtonPressed = true;                 //Setzt ButtonPressed auf true
      Serial.write("Abfrage1");             //Ausgabe im seriellen Monitor. Dient zum Debuggen und Testen(nicht notwendig für Beispiel)
    }
  }
  if(ButtonPressed){                          //Wird ausgeführt, wenn ButtonPressed true ist
    digitalWrite(LED, HIGH);                  //Setzt den Wert der LED auf HIGH -> LED leuchtet
    delay(100);                               //Verzoegerung von 100ms
    digitalWrite(LED, LOW);                   //Setzt den Wert der LED auf LOW -> LED leuchtet nicht mehr
    delay(100);                               //Verzoegerung von 100ms
    if (digitalRead(Taster) == HIGH) {            //Wird ausgeführt, wenn der Taster gedrückt wird
      digitalWrite(LED, LOW);                     //Setzt den Wert der LED auf LOW -> LED leuchtet nicht mehr
      ButtonPressed = false;                      //Setzt ButtonPressed auf false
      Serial.write("Abfrage2");                   //Ausgabe im seriellen Monitor. Dient zum Debuggen und Testen(nicht notwendig für Beispiel)
      delay(500);                                 //Verzoegerung von 500ms
    }
  }
}     //Beenden des Hauptprogramms 
Zuletzt geändert: Dienstag, 2. Februar 2021, 14:45