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
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.
|