Hallo.
Ausgesendet klang nach Funk, vor allem bei morsen. Die LED klang nur
nach
Betriebskontrolle. Wenn es aber nur um "Licht senden geht", hey, kein
Thema.
Nen LiPo-Akku über Solarladeregler schön voll halten, damit er in der
Nacht leer gemacht werden kann. 5000 mAh sollten wohl reichen. Deine
vorhandene Autobatterie tut es aber ganz sicher auch.
Wie ich es machen würde ?
Zuerst die Akkuspannung mit z.B. LM2576 + Bauteile drum herum
runterbringen.
LED über Transistor ansteuern. Oder gar über Transistor und MOSFET, hat
den
Vorteil, das man auch ne 3W LED dranhängen kann, wenn man das Ding
später
mal pimpen will.
Morsecode soll ja hartkodiert sein, den würde ich also direkt
"optimiert"
speichern. Entweder im EEPROM (wenn vorhanden), ansonsten im Codespace.
Kleines Assemblerprogramm, hauptsächlich aus dem Timerinterrupt und ner
Hauptschleife, die die Arbeit macht.
Der Timer zählt brav vor sich hin. Setzt alle 60 Sekunden nen Flag,
damit
die Hauptschleife was zu tun kriegt.
Jetzt wird's spannend. Wenn über einen Eingang der Pegel passt (also der
Dämmerungsschalter mir sagt, das es dunkel ist), nur dann gehe ich in
die Hauptschleife, ansonsten springe ich wieder zur Prüfung, ob es
dunkel
ist.
In der Hauptschleife warte ich auf das Flag vom timer. Ich erhöhe einen
Zähler, und wenn der bei 15 ist, schalte ich die LED aus. Ist er bei 16,
schalte ich sie wieder ein.
Oh, ach ja, wenn ich die Aufgabe richtig verstehe, würde ich bei 16 auch
noch die Morse-Ausgabe anstossen. Wie schnell soll die eigentlich sein,
und ist sie evtl. zu lang für eine Minute? Wenn ja, sollte ich mir ein
Flag ausdenken, das ich gerade morse, um nicht evtl. die Leuchtdiode mit
einem "dauereinschalten" beim Morsen zu stören.
Wenn der Zähler von vorhin bei 20 ist, schalte ich wieder ein? Moment,
das Licht wurde doch in der 15. Minute für 1 Min. ausgeschaltet. Anders
gesagt AUS, 1 Min. warten, EIN .. ist also an ? .. ich vermute einen
Definitionsfehler. Ich gehe also davon aus, das in der 15. Minute die
LED aus gemacht wird, vielleicht noch einen Moment gewartet wird, und
dann 5 Minuten lang der Morsecode blinken soll ? Danach in der 20.
Minute
wieder statisch licht an und alles wieder von vorne? cool, dann würde
ich bei zähler = 20 einfach den zähler auf 0 setzen, dann geht ja alles
wieder von vorn los.
Damit ist die Hauptschleife praktisch durch, ich brauch nur noch ne
kleine
Routine, um meine morsenachricht auszugeben, je nach Speed würde ich
eine
zweite zählvariable im verwendeten timer zählen lassen und ein flag
setzen,
und in abhängigkeit meiner daten dann "led an" oder "led aus"
entscheiden.
die daten könnten z.B. "1" = "morse kurz", "2"="morse lang", "3"="pause"
sein. in der morseroutine würde ich also bei jedem flag schauen, ob mein
aktuelles zeichen 1,2,3 ist, morse kurz lasse ich 1 flag lang stehen,
morse lang zwei flags, und ne pause lasse ich 1 flag mit led aus stehen.
Wortende würde ich einfach mit 2 pausen versehen, um die pausenlänge zu
haben.
Das ganze in Assembler braucht nicht mehr Zeit als die, die ich nun in
Textform niedergeschrieben habe, lass es mal 30 Minuten sein ..
Konkrete Fragen bitte jetzt stellen ;)