Hallo liebe Tüftler und ESP32-Fans!
Heute betreten wir ein neues Kapitel unserer ESP32-Entdeckungsreise. In diesem Blog-Beitrag dreht sich alles um die Interaktion zwischen einem Button und zwei LEDs – und wir nutzen dabei den guten alten delay()-Befehl. Lasst uns gemeinsam erkunden, wie wir mit einfachen Mitteln spannende Effekte erzielen können.
Die Grundlagen: Button, LEDs und ESP32
Zunächst ein kurzer Rückblick: Der ESP32 ist ein leistungsfähiger Mikrocontroller, der sich ideal für DIY-Projekte eignet. In Kombination mit einem Button und ein paar LEDs eröffnen sich uns unzählige Möglichkeiten für kreative Experimente.
Unser Projekt: Ein einfaches Schaltspiel
Stell dir vor, du hast zwei blaue LEDs. Mit nur einem Button wollen wir durch Drücken die beiden LEDs abwechselnd blinken lassen. Drücken wir den Button erneut, soll der Prozess stoppen.
Der Code: Verwendung von delay()
Hier kommt ein einfaches Code-Beispiel, um unser Projekt zum Leben zu erwecken:
const int led_blau1 = 9;
const int led_blau2 = 7;
const int button1 = 2;
bool blinkenAktiviert = false;
void setup() {
Serial.begin(115200);
Serial.println("Hallo, ESP32-C3!");
pinMode(led_blau1, OUTPUT);
pinMode(led_blau2, OUTPUT);
pinMode(button1, INPUT_PULLUP);
}
void loop() {
if (digitalRead(button1) == LOW) {
blinkenAktiviert = !blinkenAktiviert; // Umschalten des Blinkmodus
delay(300); // Entprellen des Buttons
}
if (blinkenAktiviert) {
digitalWrite(led_blau1, HIGH);
digitalWrite(led_blau2, LOW);
delay(300);
digitalWrite(led_blau1, LOW);
digitalWrite(led_blau2, HIGH);
delay(300);
} else {
digitalWrite(led_blau1, LOW);
digitalWrite(led_blau2, LOW);
}
delay(200);
}
Die Herausforderung: Verzögerung und Reaktionszeit
Wie du siehst, verwenden wir den delay()-Befehl, um zwischen den LED-Aktionen zu pausieren. Doch diese Methode hat ihre Tücken: Während der Verzögerung kann der ESP32 keine anderen Aktionen ausführen – auch den Button-Status nicht prüfen. Das führt zu einer gewissen Trägheit in der Reaktion.
Lernen und Experimentieren
Dieses einfache Projekt zeigt uns die Grenzen und Möglichkeiten des delay()-Befehls. Es ist ein perfekter Ausgangspunkt, um zu lernen, wie Mikrocontroller arbeiten und wie Timing in unseren Projekten eine Rolle spielt.
Was kommt als Nächstes?
In meinem nächsten Beitrag werden wir untersuchen, wie wir mit alternativen Methoden wie millis() die Reaktionszeit verbessern können. Bleib dran, denn es gibt immer etwas Neues zu lernen und zu entdecken!
Pingback: ESP32 Revolution: Dein Einstieg in die Welt der Mikrocontroller Magie - Teil 1 - KISCANDO