Danke für Deine / Eure Zeit!!!
Viele Grüße,
p@
Druckbare Version
Danke für Deine / Eure Zeit!!!
Viele Grüße,
p@
Könntest Du nochmal erklären, wie Dein Programm arbeiten soll. Aus Deiner Beschreibung und Deinem Code hab ich mal Folgendes interpretiert:
Wenn die Schaltung mit µC und LEDs eingeschaltet wird, leuchtet keine LED !?
Wenn Taster kürzer zwei Sekunden (nach Einschalten) gedrückt wird, wird LED1 eingeschaltet. Nochmal kurz gedrückt schaltet sie wieder aus und so fort.
Wird der Taster zwei Sekunden und kürzer als vier Sekunden gedrückt wird, wird LED2 eingeschaltet und alles andere ausgeschaltet. Wird danach immer nur kürzer als zwei Sekunden gedrückt, wird LED2 aus-, eingeschaltet, also getoggelt.
Wird Taster vier Sekunden und kürzer als sechs Sekunden lang gedrückt, wird LED3 eingeschaltet und alles andere ausgeschaltet. Mit kurzen Tastendrücken wird die LED3 nun immer aus- und eingeschaltet.
Wird Taster sechs Sekunden und länger gedrückt, wird alles ausgeschaltet. Folgende kurze Tastendrücke schalten LED1 an und aus.
In Deinem zuletzt geposteten Programm kann ich nicht erkennen, wie Du die Sekunden mißt. Die Kommentare im Code sind nichtssagend und wiederholen eigentlich nur die Kommandos. Da sollten eigenlich kurze Erläuterungen stehen, warum etwas an der Stelle so gemacht wird.
Gruß
Searcher
Hi Searcher,
wird der µC bestromt passiert nix, richtig.
Wird der Taster kurz gedrückt auch nichts. Erst wenn er >=200ms gehalten wird , wird in die Unterprozedur gesprungen.
Da wird dann als erstes Led1 eingeschaltet und die Variable A = 1 eingestellt. Lasse ich den Taster jetzt los gehts wieder zurück in die Hauptschleife. Dort wird mit dem IF- Befehl abgefragt welchen Wert A und der Taster hat. In diesem Beispiel wäre bei A = 1 + Taster = 0 die
Led1 = 1. Sonst wenn A = 1 + Taster = 1 wird Led1 = 0
Die Led1 leuchtet also nur so lange wie der Taster gedrückt wird.
Wird nach dem Sprung in die Unterprozedur der Taster weiterhin gedrückt gehalten, werden die 3 Led´s erst einzeln und dann als Szenarien durchgeschaltet. Also erst Led1 dann Led2 dann Led3.
Wird der Taster jetzt noch weiter gehalten dann Led1 + Led2 dann Led1 + Led3 dann Led2 + Led3 dann als letztes Led1 + Led2 + Led3. Bei jeder Änderung des Schaltzustandes ändert sich auch die Variable A. Beim los lassen des Tasters wird zurück in´s Hauptprogramm gesprungen und der Wert der Variablen A mit übergeben und wieder mit IF abgefragt welcher Zustand vorliegt und entsprechend die Led´s geschaltet.
Hintergrund ist dieser:
In meinem langen Flur habe ich 18 Deckenspots verbaut. Jeweils 6 hängen zusammen an einem Trafo! Sprich 3 Trafos. (Led1, Led2, Led3)
Ich möchte mit nur einem Flurtaster alle 3 Tarfos unabhängig von einander aber auch gleichzeitig schalten können. Ich drücke also den Taster, suche mir gewünschtes Szenario aus, lasse den Taster los und kann mit erneutem kurzem betätigen des Tasters das ausgewählte Lichtszenario schalten. Die Trafos werden über Stromstoßschalter bestromt. Deshalb leuchten die Led´s auch nur wenn der Taster gedrückt ist.
Hoffe jetzt sind alle Klarheiten beseitigt! :)
Vielen dank für Dein Interesse!
Viele Grüße,
p@
Hey Searcher!
WOW! :shock:
Vielen Dank für Deine Mühe!!!
Genau so hatte ich mir das vorgestellet!!! =D>
Funktioniert großartig!!!
Macht eigentlich genau das was auch mein ellenlanger Code macht nur sehr viel kompakter! ;)
Echt klasse das Du das mal so hin gezaubert hast!!
Werde mir den Code morgen abend genauer anschauen und hoffe das wenn Fragen auftauchen (und das werden sie bestimmt :confused:)
ich Dich noch mal ansprechen darf?
Viele Dank nochmal und schönen Abend,
p@
Viele Grüße,
P@
Klasse das es nun funktioniert :)
Ich drück Dir die Daumen. Hört sich an, als wenn das Ding in den Sicherungskasten kommt. Hoffentlich fallen da keine Störungen ein, die den µC außer Tritt bringen. Da hab ich keine Erfahrung und würd ich ein halbes Jahr nach Inbetriebnahme noch argwöhnisch als Betarelease betrachten :-) :-) :-)
Da sollte aber auch ein viel kleinerer µC ausreichen. Hab nu nicht für den Tiny13 optimiert - der sollte aber auch gehen aber mindestens höchstens der Tiny25.
Gruß
Searcher
Danke!
Jepp, Beta ist wohl richtig!:) Werde den µC natürlich so weit wie möglich vom Trafo und den Relais entfernt platzieren. So "weit" wie eben möglich und hoffen das der mir nachts nicht die Spots durch schaltet das meine frau denkt wir hätten Poltergeister im Haus!! ;)
Tolle Idee eigentlich für Helloween ein Programm zu schreiben!! :rolleyes:
Denke auch das ein kleinerer µC ausreichen sollte aber unsere Code´s sind etwas über 1kB groß...
Hab´ hier auch noch 2 AtMega168 rum liegen....mal schauen ob alles in´s Leergehäuse passt. Wenn nicht dann Code-abspecken...
Ich geb´ bescheid wenn´s fertig ist. Dann aber in einem Projekt-Teil des Forums...
Viele Grüße,
p@