Soll die Lampe brennen solange Taster 1 gedrückt is?
Oder soll mit einmal drücken von Taster 1 die Lampe angehen und solange anbleiben bis Taster 1 nochmal gedrückt wird?
Das erste ist Ok für ein paar Sekunden.
Wenn es aber darum geht, das es auch länger dauern soll, dann tut einem irgendwann der Finger weh und Variante zwei ist besser.
Wissen muß man, das Sisors Sketch die 20ms Delay nimmt damit ein Taster Prellen nicht sofort das wieder loslasen des Tasters vortäuscht.
Man kann also den Wert nicht einfach verkleiner falls einem 20ms Schritte zu lang wären.
http://www.scynd.de/tutorials/arduin...entprellt.html
In dem Fall müsste man anders entprellen (ggf. in Hardware).
http://www.elektronik-kompendium.de/...ig/0210223.htm
Was man auch beachten muß, ist, das man Sisors Code nicht einfach in ein größeres Scetch einfügen kann.
Da hier die Tasterabfrage per Polling erfolgt und dies von der Laufzeit der Hauptschleife abhängt.
Fügt man in die Hauptschleife einfach ein "Delay(500)" ein um eine längere Laufzeit zu simulieren, muß man im ungünstigsten Fall 521ms lang den Taster drücken bis das Programm dies erkennt.
In so einem Fall wäre ein Interrupt Eingang die bessere Wahl.
Auch würde dann die Inkrementierung von "pressed_ms" nicht mehr zur tatsächlich vergangenen Zeit passen und man müsste anders vorgehen.
Bleibt der Code unverändert, so ist er einfach, kurz und gut.
Lesezeichen