Lösung: Toggle-Taster
Sketch: Quelltext
/*
Toggle-Taster
Interne LED an Pin 13 ein- und ausschalten.
*/
// ***** SETUP *****
void setup() {
pinMode(9, INPUT_PULLUP); // Pin 9 als Input mit Pullup
pinMode(13, OUTPUT); // Pin 13 als Output
digitalWrite(13,LOW); // LED ausschalten
}
// ***** LOOP *****
void loop() {
// Solange Pin 9 == HIGH ist ...
while(digitalRead(9)==HIGH){} // ...passiert nichts
// Sobald Pin 9 == LOW ist wird geschaltet
if(digitalRead(13)==LOW){
digitalWrite(13,HIGH);
}
else {
digitalWrite(13,LOW);
}
delay(200); // Taste entprellen
}
Sketch: Erklärung
Setup
Pin 9 wird als INPUT_PULLUP definiert, Pin 13 (interne LED) als OUTPUT .
Die interne LED am Pin 13 wird zu Beginn des Sketches ausgeschaltet.
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 wird in einer if() Verzweigung die interne LED abgefragt. Leuchtet sie nicht, wird sie eingeschaltet. Andernfalls wird sie ausgeschaltet.
Der Taster wird mit einem delay() Befehl entprellt.
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.
|