Hallo Leute,
Ich möchte, dass wenn der Taster gedrückt wird, die LED eingeschaltet wird, und wenn ich den Taster noch einmal drücke, dass sie dann ausgeht.
Wenn ich den Code auf mein Arduino lade, bleibt die LED solange aus, bis ich den Taster drücke - dann geht sie, und bleibt, an. Nach wiederholten drücken, geht sie aber nicht aus.
Ich habe mal was von Taster entprellen gelesen, ist das hier notwendig ? und wenn ja, wie ?
Hier mein Code:
int taster = 2;
int led = 13;
int merker; // Zustandsspeicherung des Tasters
void setup() {
pinMode(led, OUTPUT);
pinMode(taster, INPUT);
}
void loop(){
if (digitalRead(taster) == HIGH) {
if (merker == 0){ // wenn der Taster gedrückt ist, und der Merker=0 ist, wird die LED eingeschaltet, und der Merker wird auf 1 gesetzt
digitalWrite(led,HIGH);
merker == 1;
}
else {
digitalWrite(led,LOW); // wenn der Taster gedrückt ist, und der Merker=1 ist, wird die LED ausgeschaltet, und der Merker wird auf 0 gesetzt
merker == 0;
}
}
}
Gruß,
Marco
und schonmal danke ! 
Hallo Marco,
wie hast du du den Taster angeschlossen? Entprellen ist bei jeden Hardware Taster notwendig (ausser entsprechende Hardware Entprellung ist bereits gemacht).
+5V an den Taster angeschlossen, und den Ausgang an Pin2 und zusätzlich über nen Wiederstand auf Ground ....
In der Tat, Entprellen ist wichtig. Aber ich habe noch einen Fehler im Code entdeckt:
merker == 1; bzw. merker == 0; speichert dir den Wert nicht. Das doppelte "Istgleich" ist ein Operator um den Wert abzufragen, zum Speichern nimmt man nur das einfache "=". Bestimmt nur ein Flüchtigkeitsfehler, passiert leicht und der Kompiler meckert nicht, weil es ja legaler C-Code ist 
Gruß,
Marv
Mit den von MGOS angemerkten Änderungen
merker = 1; anstelle merker == 1; bzw.
merker = 0; anstelle merker == 0; sollte es funktionieren.
Zum Entprellen reicht hier ein delay(100); in der Loop.
Danke für die Antworten, Leute - jetzt geht es, nachdem ich das mit der "delay" geändert habe - die Delay ist ausschlaggebend zum schluss habe ich gerade festgestellt.
Was 2 falsche Vorzeichen ausmachen können - vielen dank ! - ich werde wahrscheinlich in Zukunft öfters mich mal melden ! :))
Das delay darf, muss aber nicht, auch kleiner sein. Sinnvoll evtl. 20 - 50ms. Schöner aber direkt mit BlinkWithOutDelay. Spielt hier aber eher eine untergeordnete Rolle, da ´scheinbar sonst nicht viel gemacht wird, was Performance braucht.