Hier mal der ursprüngliche Code:
Code:
// +++ QUELLCODE FÜR DEN DRUCKTASTER MIT PERMA-LED-LAUFLICHT +++ //
// Definition von Variablen für den Taster + LEDs
const int LED_PINS[] = {2, 3, 4, 5};
const int PUSH_BUTTON = 6;
int buttonStateOld = 0;
bool buttonFlag = false;
void setup() {
// Initialisiere digitale Pins als Ausgang in einer For-Schleife
for (int a = 0; a < 4; a++) {
pinMode(LED_PINS[a], OUTPUT);
}
// Initialisiere den Drucktaster als Eingang
pinMode(PUSH_BUTTON, INPUT);
}
void loop() {
if (buttonState != buttonStateOld) {
// Ändere das Flag nur, wenn der Taster gedrück wird
if (buttonState == HIGH) {
if (buttonFlag == false) {
buttonFlag = true;
} else {
buttonFlag = false;
}
}
// Speichere den aktuellen Wert des Tasters
buttonStateOld = buttonState;
}
if (buttonFlag == true) {
for (int a = 0; a < 4; a++) {
// Schalte eine LED an
digitalWrite(LED_PINS[a], HIGH);
// Sende eine Nachricht an den seriellen Monitor
Serial.print("LED Status: LED ");
Serial.print(LED_PINS[a]);
Serial.println(" is ON");
// Warte 50 Millisekunden
delay(50);
}
for (int a = 0; a < 4; a++) {
// Schalte eine LED aus
digitalWrite(LED_PINS[a], LOW);
// Sende eine Nachricht an den seriellen Monitor
Serial.print("LED Status: LED ");
Serial.print(LED_PINS[a]);
Serial.println(" is OFF");
// Warte 50 Millisekunden
delay(50);
}
}
}
In Thread #1 hatte ich die Kommentare gelöscht. Ebenfalls den seriellen Monitor. Und die Delays von 50 auf 200 geändert.
Ob der Code "...nicht mal in die Nähe dessen (kommt), was er tun sollte...", kann ich nicht beurteilen. Möglicherweise verfolgt der Autor ein späteres Ziel und man könnte speziell diesen Code zwar anders schreiben, aber evt. damit das spätere Ziel nicht schon im Blick haben. Wie gesagt, das kann ich mit meinem Kenntnisstand nicht einschätzen, hoffe aber darauf, dass (trotz der enthaltenen Fehler im aktuellen Code) der Autor den Leser an einem "roten Faden" konsequent durchs Buch führt.
Andi
Lesezeichen