Arduino 1. Knopfdruck LED an, 2. Knopfdruck LED aus?
Hallo, oben steht im Prinzip schon alles. Also ich bin Anfänger und würde gerne mithilfe eines Taster eine LED an UND aus machen können. Also beim ersten mal Taster betätigen soll die LED an gehen und beim zweiten betätigen eben wieder aus.
Bisher habe ich diesen Quelltext:
void setup() {
Serial.begin(9600);
pinMode(9, OUTPUT); //LED
pinMode(2, INPUT); //Taster
}
void loop() {
if(digitalRead(2) == HIGH) { //Wenn Taster betätigt wird, dann..
digitalWrite(9, HIGH); //Geht LED an
}
else{ //Ansonsten..
ditalWrite(9, LOW); //Ist LED aus
}
}
Kann mir jmd helfen?
LG
2 Antworten
Halt einfach den Zustand „LedIstEin“ speichern, dann weisst du was als Nächstes zu tun ist. Wenn LedIstEin=0, einschalten und die Variable auf 1 setzen, wenn sie bereits 1 ist auf 0 setzen und LED ausschalten.
Das lässt sich nur mit ein paar Zeilen mehr lösen... Einmal musst Du den Taster einlesen und mit einem Zwischenstatus vergleichen, um zu erkennen, dass der Taster gerade gedrückt wurde... Wenn das der Fall ist, musst Du den Ausgang entsprechend ein/ausschalten (am besten mit negation eine Variable umschalten) und den Zwischenstatus ändern, damit ein gedrückter Taster nicht permanent wechselt... Erst nach dem loslassen darf der Zwischenstatus wieder zurück gesetzt werden... Die Variable am Ende dem Ausgang zuweisen...
If (Taster gedrückt && Zwischenspeicher nicht) dann varAusgang = !varAusgang; Zwischenspcher ja;
If(Taster nicht) dann Zwischenspeicher nicht;
digitalWrite(Pin, varAusgang)
Wäre das Prinzip ohne alles vorzuschreiben... Also zwei Variablen, den Taster und den Ausgang, das ganze dann entsprechend dem Arduino-Syntax umsetzen...
Also die gewöhnlichen Taster, die nicht klicken, funktionieren so in der Regel... Hatte so noch keine wirklichen Probleme. Die Taster mit Federgeführtem Kontakt könnten in der Tat prellen, da der Kontakt schnell anschlägt und ggf zurück federt... Das stimmt schon... Dann müsste man noch ein paar ms Delay einbauen....
Das entprellen ist tatsächlich ein Problem, das noch behandelt werde müsste, aber für erste Gehversuche kann man das auch weglassen.
Macht bei der Methode nicht das Prellen vom Taster Probleme? Damit das so wirklich funktioniert sollte man den Taster irgendwie entprellen, sonst folgt ein undefiniertes Verhalten. Oder liege ich da gerade falsch?