Hallooo Allerseits, ich wollte mal mein Projekt hier vorstellen und mich bei allen bedanken die hier so kräftig posten...hier werden sie geholfen!!! Ich hatte mir schon immer mal überlegt so eine Rotor-Uhr zu bauen. Das ist aber doch schon ein etwas komplizierteres Unterfangen weshalb ich mir andere Gedanken gemacht habe und dabei kam folgendes heraus: Eine Pseudoanalog-Funkuhr bei der die Minuten im Fading-Betrieb angezeigt werden. Soll heißen es sind 4 LEDs für die Viertelstunden angeordnet wobei die LED auf deren Viertelstunde es zugeht immer heller und die vorige immer dunkler mit jeder Minute wird. Also lassen sich die Minuten so ungefähr abschätzen. Zusätzlich gibt es noch die 12 Stunden LEDs deren Funktion ich glaube nicht näher erläutern muss. Angesteuert werden die Stunden-LEDs einfach par Schieberegister und die Minuten-LEDs per Multiplexing mit der PWM des Mega8 den ich verwendet habe. Außerdem dachte ich noch an etliche Zusatzfunktionen so sind noch 3 verschiedene Lauflichtfunktion mit implementiert sowie ein kleiner Equalizer. Zu den einzelnen Funktionen. Einstellen lässt sich alles über 2 Taster. Einer zum Modus verstellen und einer um in den Modi Einstellungen zu machen, wie die Uhrverstellung oder Geschwindigkeitsänderung. Die ersten beiden Modi sind die Stunden- und Minutenverstellung. Wenn hier 5 Sekunden gewartet wird springt die Uhr automatisch zurück in den Normalbetrieb. Dabei lassen sich die Stunden und Minuten verstellen. Achtung es wird zwischen Vor- und Nachmittag unterschieden. Beim Start ist die Uhrzeit auf 0:00 Uhr. Die nächsten 3 Modi sind 3 Lauflichtfunktionen: 1.) Stunden LED läuft im Kreis 2.) 2 Stunden LEDs laufen im Kreis 3.) Stunden LED läuft im Kreis, Minuten laufen in entgegengesetzter Richtung In diesen verharrt das Programm. Nach 5 Sekunden in den Funktionen springt man durch den Modus-Taster zurück in den Normalbetrieb. In den Funktionen lässt sich die Geschwindigkeit mit der Set-Taste ändern Der Nächste Modus ist der Equalizer Modus. Hier leuchten die Minuten LEDs mit der Lautstärke der Umgebung mit. Der Rücksprung und die Einstellungen funktioniert genauso wie bei den Lauflichtern. Danach kann man die Uhr noch ausschalten bzw. die LEDs. Besonderheit daran ist noch ein einstellbarer Spannungsteiler mit LDR, damit die Uhr in der Nacht automatisch ausgeht, da es doch recht hell sein kann. Voreingestellt ist dieser Automodus erst ausgeschaltet. Dieser lässt sich dann im Dunkelmodus mit der Set-Taste de-/aktivieren egal ob man in den Dunkelmodus von Hand oder automatisch kommt. Angezeigt wird dies mit 2 unterschiedlichen Minuten-LEDs und nach der Einstellung springt die Uhr sofort in den Normalbetrieb. Will man in der Nacht jedoch die Uhrzeit trotzdem sehen, wird diese mit einem kurzen Druck auf die Modus-Taste angezeigt und erlischt wieder vorausgesetzt die Uhr befindet sich im Automodus im Dunkeln ansonsten gelangt man in den DCF Modus (siehe nächster Absatz). Ist die Uhr im Automodus und es ist hell lassen sich die Funktionen ganz normal aufrufen. Nur mit jedem Verlassen und Aufrufen des Dunkelmodus mit der Modus-Taste wird jedoch auch der Automodus verlassen. Wenn die Modus-Taste im Dunkelmodus (nicht im Automodus!) gedrückt wird springt das Programm in den DCF Betrieb. Dieser muss mit einem Tastendruck der Set-Taste bestätigt werden, dann kann die Funkuhr-Zeit von Hand erfasst werden. Die Uhrzeit wird auch jede Nacht ab 4 Uhr neu geholt vorausgesetzt die Uhr ist im Dunkelmodus egal ob im Auto- oder Normalmodus. Das mal so im groben kann man damit alles machen. Der Speicher ist dadurch ziemlich ausgenutzt was vielleicht auch an meiner noch recht frischen Programmiererfahrung liegt. Aber irgendwann fängt jeder mal an. Ich wollte so viel wie möglich selbst machen. So ist die gesamte DCF Routine selbst geschrieben. Geht bestimmt auch einfacher und kleiner aber ich denke sie ist sehr sicher ( hatte glaube noch nicht eine falsche Uhrzeit dadurch). Ein paar Bugs hat es noch die ich aus zeitlichen Gründen noch nicht komplett ausgemerzt habe aber sie läuft doch schon relativ stabil (einige Wochen hat es schon im Autobetrieb wunderbar geklappt) und zur Not gibt’s ja noch die Reset-Taste. Hier habe ich mal noch 2 Bilder von 2 Uhren eins ist etwas verschwommen. Und natürlich auch den Quellcode für alle Interessierten. Um den ersten Schock vorweg zu nehmen, alle Funktionen stehen komplett in einem File, also das gesamte Programm. Irgendwie wollte das nicht so recht werden mit verschiedenen Headern und C Files deswegen Tschuldigung dafür aber ich habe so alles etwas kommentiert, was hoffentlich den Einstieg klarer macht. Aber wie gesagt ist halt schon nen größeres Hobby-Projekt wenn man den Code so anguckt. Hier ist auch noch das Layout in Eagle keine Ahnung ob daraus grad so eine Platine gemacht werden kann, ist nur zum abgucken gedacht! Falls das nicht klar ist, schicke ich die Datie gerne zu. Dann wünsche ich viel Spaß beim Nachbauen, Ändern oder noch Erweitern und freue mich über Kommentare! Viele Grüße Flo
Die Minuten-Anzeige klingt einfach toll (super-turbo-oberaffengeil würden Kindergartenkinder sagen)! Endlich jemand, der diesen Pseudogenauigkeitsfetischismus nicht mitmacht! Viel Erfolg bei den nächsten Projekten! Bernhard
Danke! wobei die Uhrzeit die wirklich läuft schon sehr exakt berechnet wird (siehe die ganzen Registerwerte) aus dem Grund, dass die Uhr eben auch ohne Funk lange stabil laufen soll. Habe nun noch ein paar Fehler im Schaltplan entdeckt. Vor allem die Reset-Eingänge der Schieberegister...sind ja in dem Fall low-activ also Vcc mit GND ersetzen!!! Und die Ansteuerung der Multiplexer war so nicht ganz korrekt. Ich gehe jetzt davon aus, dass der X Eingang dem Enable Entspricht und die PWM Spannung selbstverständlich an den Eingang des Mux muss. Außerdem ist noch die Versorgung der Chips mit drauf...Hoffe das stimmt jetzt dann alles so. Grüße Flo
@ Flo H. (mr-jones) > Fading_Layout_2.gif Das ist aber ein Schaltplan und kein Layout ;-) >Mux muss. Außerdem ist noch die Versorgung der Chips mit drauf...Hoffe >das stimmt jetzt dann alles so. Naja, mehr oder weniger - die Tastenentprellung in Hardware ist überflüssig, kann man viel einfacher in Software machen - dein 4 Bit Schieberegister sind nur bedingt OK. Ersten zu schwach (weil HEF4000 Serie, 75HC ist deutlich leistuingsfähiger) und zweitens eher unüblich. EIn 74HC595 oder 74HC165 sind hier das Mittel der Wahl -Deine Multiplexer sind überflüssiger Balast, das kann man besser direkt per AVR steuern. - auch alle anderen Digital-ICs brauchen 100nF an VCC/GND dicht am IC. - Solche Sprüche wie ""ISP ist denke ich klar, den male ich nicht noch zusätzlich rein" kannst du dir sparen. Mach es ordentlich oder lass es. Wo sind die LEDs und Vorwiderstände? Das ist keine guter Schaltplan, nur ein Fragment. Wie sie es zu tausenden im Internet gibt und die keiner wirklich braucht. Mach es richtig oder gar nicht. Lies mal was über das Thema LED-Matrix und LED-Fading, dann siehst du vielleicht, wie man es besser macht. MFG Falk
Hi, > - die Tastenentprellung in Hardware ist überflüssig, kann man viel > einfacher in Software machen ja Tastenentprellung kann man mit Software machen. Da gibts ja auch ein schönes Beispiel, wofür man aber Timer braucht, wenn ich das richtig gesehen habe. Den einen wollte ich eben elegant dazu nutzen um mit der ISR die Modi auszuwählen um da das Programm kompakt zu halten und den 2. Taster mache ich ja per Software wofür ich aber für meine Variante (einfach Flanke prüfen und warten) ein sauberes Signal brauche... > - dein 4 Bit Schieberegister sind nur bedingt OK. Ersten zu schwach > (weil HEF4000 Serie, 75HC ist deutlich leistuingsfähiger) und zweitens > eher unüblich. EIn 74HC595 oder 74HC165 sind hier das Mittel der Wahl Jepp das stimmt, allerdings hatte ich die geschenkt bekommen und gerade da. Ich habs einfach mal versucht und das klappt erstaunlicherweise ganz gut. Wenn es nicht funktioniert eben stärkere verwenden. > -Deine Multiplexer sind überflüssiger Balast, das kann man besser direkt > per AVR steuern. Wie? Die Idee war, dass ich die PWM einfach auf jede beliebige LED schalten kann und ich fand das so sehr gut gelöst. Und auch hier ist klar, dass für stärkere LEDs noch Transistoren oder sowas gebraucht werden mit Vorwiderständen. Das mit den Widerständen würdest du aber wissen, wenn du den Text über den Schieberegistern gelesen hättest! Das was da fehlt ist vielleicht die Info, dass die LEDs nach GND geschaltet werden müssen. > - auch alle anderen Digital-ICs brauchen 100nF an VCC/GND dicht am IC. Naja ich hab bei mir vllt 5mV Rauschen selbst bei etwas längeren Drähten Und wie gesagt jeder kann die Schaltung ändern oder anpassen wie er es will und wenn was nicht klappt kann man ja fragen... Grüße Flo p.s. die Themen habe ich durchgelesen und mich trotzdem für diese Form entschieden
Diese umständliche Muxerei kannst Du Dir sparen. Führe einfach die 2 PWMs über Vorwiderstände auf je 2 LED-Anoden und die 4 Kathoden an den MC zur Auswahl. Spart obendrein noch nen Pin. Ich würds allerdings mit SW-PWM und nur 4 Pins machen. Peter
@ Flo H. (mr-jones) >gesehen habe. Den einen wollte ich eben elegant dazu nutzen um mit der >ISR die Modi auszuwählen um da das Programm kompakt zu halten und den 2. >Taster mache ich ja per Software wofür ich aber für meine Variante >(einfach Flanke prüfen und warten) ein sauberes Signal brauche... Alles faule Ausreden. >was da fehlt ist vielleicht die Info, dass die LEDs nach GND geschaltet >werden müssen. Das ist kein Schaltplan. >> - auch alle anderen Digital-ICs brauchen 100nF an VCC/GND dicht am IC. >Naja ich hab bei mir vllt 5mV Rauschen selbst bei etwas längeren Drähten [ ] DU hast den Sin der 100nF verstanden. Die MÜSSEN hin. Punkt. >Und wie gesagt jeder kann die Schaltung ändern oder anpassen wie er es >will und wenn was nicht klappt kann man ja fragen... Der übliche Bastelmurks eben. Erwarte besser keinen Applaus. >p.s. die Themen habe ich durchgelesen und mich trotzdem für diese Form >entschieden Lernresistenz ist ein Grundrecht. MFG Falk
Hi Peter, ja das mit der Software PWM hatte ich auch im Hinterkopf. Ich wollte wahrscheinlich damals einfach noch was mit Hardware machen... > Führe einfach die 2 PWMs über Vorwiderstände auf je 2 LED-Anoden und die > 4 Kathoden an den MC zur Auswahl. Joa aber dann habe ich doch trotzdem das Problem, dass die 2 LEDs die von einem Pin bedient werden nicht getrennt angesprochen werden können. Das geht mit den Mux aber klar auch mit SW. Flo
Flo H. schrieb: > Joa aber dann habe ich doch trotzdem das Problem, dass die 2 LEDs die > von einem Pin bedient werden nicht getrennt angesprochen werden können. Ich habe Dich so verstanden, daß immer nur 2 benachbarte LEDs verschieden hell an sein sollen. Also kannst Du jeweils 2 gegenüberliegende an eine PWM anschließen. Peter
"von einem Pin bedient werden nicht getrennt angesprochen werden können." Nöööööt! Auswahl über MC (Kathoden). Siehe oben!!! Ich finds gut, denn es läuft und sieht bestimmt gut aus - nur wäre mir die Anzeige viel zu klein - das wäre was auf nem Steckbrett, ok...aber so? Man kann die LEDs kaum unterscheiden -> Pappe, Fädeldraht, Anzeige vergrößern... Klaus.
> Ich habe Dich so verstanden, daß immer nur 2 benachbarte LEDs > verschieden hell an sein sollen. ja für den Uhrenbetrieb schon. Für diese Grundschaltung stimmt das, keine Frage. Aber für weitere Funktionen dachte ich eben, lasse ich mir das noch frei, dass die LEDs auch einzeln ansteuerbar sind. @Klaus: aber ich kann doch selbst mit der Kathoden-Ansteuerung nicht die LEDs die an einer PWM hängen verschieden ansteuern, es sei denn der Pin für die Kathode wird noch zusätzlich getriggert. Die erste Uhr ist schwerer zu lesen von weitem das stimmt. Die Blau/Orange jedoch ist schön auseinander gezogen. Fehlt nur noch ein schönes Gehäuse. Flo
ahhhh! das total dunkel-verwackelte bild habe ich nicht erkennen können, auf anhieb. aber jetzt ist es klar, ok. ja, die kathoden müssten natürlich zudem einzeln gesteuert werden. Klaus.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.