Lösung: Abfrage eines Tasters

Sketch: Quelltext

/*
  Taster als Eingang auswerten

  Interne LED an Pin 13 blinkt 2 x sobald der Taster gedrückt wird
 */

// ***** SETUP *****
void setup() {
  pinMode(9, INPUT_PULLUP); // Pin 9 als Input mit Pullup
  pinMode(13, OUTPUT);      // Pin 13 als Output
}

// ***** LOOP *****
void loop() {
  // Solange Pin 9 == HIGH ist ...
  while(digitalRead(9)==HIGH){}  // ...passiert nichts
  // Sobald Pin 9 == LOW ist blinkt die LED 2x
  digitalWrite(13, HIGH); // LED an
  delay(1000);            // eine Sekunde warten
  digitalWrite(13, LOW);  // LED aus
  delay(1000);            // eine Sekunde warten
  digitalWrite(13, HIGH); // LED an
  delay(1000);            // eine Sekunde warten
  digitalWrite(13, LOW);  // LED aus
}

Sketch: Erklärung

Setup

Pin 9 wird als INPUT_PULLUP definiert, Pin 13 (interne LED) als OUTPUT.

Loop

Im Loop-Teil wird der Taster an Pin 9 mit digtalRead() in einer while()-Schleife abgefragt.
Sobald am Pin 9 ein logisches LOW anliegt blinkt die LED an Pin 13 zwei Mal.

Schaltplan / Layout

Schaltplan

Elektronik / Hardware

Man muss darauf achten, den Taster richtig anzuschließen, ggf. muss man vorher mit einem Durchgangsprüfer die Pinbelegung des Tasters prüfen.

Da der Pin 9 low-active ist, muss der Taster mit GND (und natürlich mit dem Pin 9) verbunden werden.