//konstanten die nicht mehr ihren Wert wechseln const int buttonPin = 2; // Pin andem der button abgeschlossen ist const int ledPin = 13; // Pin andem die LED angeschlossen ist // Variablen die wechseln int buttonPushCounter = 0; // zählt die Tastendrücke int buttonState = 0; // Wert für den Button int lastButtonState = 0; // liest den vorherigen wert vom Button void setup() { // setzt den Tastenpin auf Input pinMode(buttonPin, INPUT); // setzt den LEDpin auf Output: pinMode(ledPin, OUTPUT); // stellt eine verbindung mit dem Computer her. Die Zahl in der Klammer ist die geschwindigkeit zwischen pc und arduiono. Serial.begin(9600); } void loop() { // liest den Status des Button buttonState = digitalRead(buttonPin); // vergleicht den Buttonstatus mit seinem vorherigem Status if (buttonState != lastButtonState) { // wenn sich der status verändert hat, dann den tastendruckzähler erhöhen if (buttonState == HIGH) { // wenn der aktuelle Status HIGH(an) ist dann denn Knopf auf an stellen buttonPushCounter++; Serial.println("on"); Serial.print("number of button pushes: "); Serial.println(buttonPushCounter); } else { // wenn der aktuelle Status LOW(aus) ist dann denn Knopf auf aus stellen Serial.println("off"); } } // speichert den buttonstatus als letzten buttonstatus // damit es in der nächsten schleife wieder verglichen werden kann lastButtonState = buttonState; // Macht die LED bei einem Tasten druck an oder aus, indem er die die Zahl der Tastendrücke durch 2 teilt //und überprüft ob der rest der Division gleich null ist. //(Also zb 10 geteilt durch 2 macht 5. Rest:0. 11 geteilt durch 2 ist 5. Rest:0,5) // Wenn es so ist dann schaltet der die LED ein. //Wenn es nicht so ist schlatet er die LED aus. if (buttonPushCounter % 2 == 0) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }