Arduino 1. Knopfdruck LED an, 2. Knopfdruck LED aus?

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.

Woher ich das weiß:Berufserfahrung – Jahrzehnte IT Erfahrung, Experte für Kryptowährungen, 🐱

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


TheFragenerTyp  03.01.2020, 15:30

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?

RareDevil  03.01.2020, 15:34
@TheFragenerTyp

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

Nube4618  03.01.2020, 19:58
@TheFragenerTyp

Das entprellen ist tatsächlich ein Problem, das noch behandelt werde müsste, aber für erste Gehversuche kann man das auch weglassen.