If – else + serial.print Frage

Hallo!

Um eventuelle, von mir, dumme Fragen "abzufedern", muss ich vorausschicken, dass ich "C" mit dem Arduino und Bücher über den Arduino lerne….

Warum kann ich in unterem Beispiel in Zeile 55 und 56 keine Ausgabe veranlassen?
(Weiter oben (Zeile 38 + 39) funktioniert´s ja auch...

Hier der Code: (Siehe: Warum geht hier kein "debug.print"??)

TIA
Wolfgang


// Buch Seite 354 (Taster entprellen)

int tasterPin = 2; // Taster-Pin 2 (Taster an Pin 2 angeschlossen)
int tasterWert = 0; // Variable zur Aufnahme des Tasterstatus
int vorherTasterWert = 0; // Variable zur Aufnahme des alten (vorherigen) Tasterstatus
int ledPin = 8; // LED-Pin 8 (angeschlossener Pin)
int zaeler = 0; // Zählervariable, die HIGH - Pegel des Tasterstatus speichert

void setup() {

Serial.begin(9600); // Startet Debug!! Achtung BAUD!!

pinMode(tasterPin, INPUT); // Taster-Pin als Eingang
pinMode(ledPin, OUTPUT); // LED-Pin als Ausgang

}

void loop () {

Serial.println("*****************"); // Debug Ausdruck + new Line

Serial.print("zaeler: "); // Debug Ausdruck
Serial.println(zaeler);

Serial.print("vorherTasterWert: ");
Serial.println(vorherTasterWert);

tasterWert = digitalRead(tasterPin); // Abfrage des Tasters
// Ist vorheriger Tastenwert ungleich mit dem aktuellem Tastenwert?

if(vorherTasterWert != tasterWert){
if (tasterWert == HIGH){
zaeler++; // Zähler inkrementieren (+1)

Serial.print("zaeler inkremiert?: "); // Debug Ausdruck
Serial.println(zaeler);

}
}
vorherTasterWert = tasterWert; // Speichern des aktuellen Zahlenwertes

Serial.print("Modulo zaeler%2"); // einen debugPrint darf man in keine if - else - Schleife stellen!!!
Serial.println(zaeler%2);

if(zaeler%2 ==0) // Division: Ist Zähler eine gerade Zahl?
/*
% Modulo. Zurückgegeben wird der Rest dieser Division. Also (int) 7 % (int) 3 ergibt 1, denn 7 geteilt durch 3 ergibt 2 Rest 1.
Der Modulo-Operator kann nur auf ganzzahlige Operanden angewendet werden.
*/

digitalWrite(ledPin, HIGH);
// Warum geht hier kein "debug.print"??// Serial.print("Modulo zaeler%2");
// Warum geht hier kein "debug.print"??// Serial.println(zaeler%2);
else
digitalWrite(ledPin, LOW);

delay(10); // 10 ms ("Testwert") warten, bevor eine erneute Abfrage des Tasters erfolgt

delay(1000); // damit ich den Serial Monitor in ruhe auslesen kann

}

Du weißt dass du mehrere Zeilen in einer if-Abfrage einen Code-Block mit { } setzen musst?

Danke - jetzt funktioniert´s