Ansteuerung einer LED
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
Last modified: Tuesday, 2 February 2021, 2:45 PM