![]() |
[µC] Meine kleine Uhr...
Liste der Anhänge anzeigen (Anzahl: 4)
Warum in "Open-Source"? Naja, am Ende gibts den Quelltext und die HEX-Datei zum Brennen, und außerdem wurde die Software in Pascal geschrieben. ;)
Sodele, ich möchte euch heute mal eins meiner Projekte vorstellen, das schon länger in meinem Kopf herumspukte und in der Zeit entstand, als ich hier nicht so aktiv war. Letzte Woche hab ich es dann erfolgreich zu Ende gebracht. Es handelt sich dabei um eine Uhr, die ihre Zeit im sogenannten ![]() Realisiert wurde der Aufbau auf einer 100*160mm großen Lochrasterplatine für die Logik und einer 100*100mm große Platine für die Anzeige. Die ganze Schaltung wird von einem ![]() ![]() Die Tutorials auf mikrocontroller.net sind ebenfalls lesenswert, aber das nur am Rande. ;) Außerdem befindet sich auf dem Board noch ein ![]() Die Temperaturmessung übernimmt der DS1620, ebenfalls vom selben Hersteller. Die Uhr hat folgende Funktionen:
Außerdem soll die Uhr noch einen DCF77-Empfänger verpasst bekommen. Realisiert habe ich das Projekt mit dem PASCAL-Compiler von E-Lab Computers. Nein, die IDE ist nicht mit Delphi vergleichbar, aber die Sprache ist doch sehr gut an PASCAL angelehnt und war deshalb für mich recht schnell verständlich (ach...). Nun genug gesabbelt, jetzt gibt es Bilder & Videos: Entschuldigt die Qualität ![]() ![]() Und wenn ihr euch das alles angetan habt, dann hoffe ich, dass ihr den Ausflug in die Mikrocontroller-Welt mal genossen habt. Das war bestimmt nicht das letzte Projekt. ;) |
Re: [µC] Meine kleine Uhr...
Liste der Anhänge anzeigen (Anzahl: 1)
Und hier der versprochene Source & Schaltplan & das HEX-File...
|
Re: [µC] Meine kleine Uhr...
Oha, ein Microcontroller-Programmierer.
Da hätte ich gleich mal eine Frage: Was hast du als Entwicklungsplatine verwendet und wieviel kostet das Teil? Und wie viel Lötaufwand hat man bei so einem Projekt wie deinem und was sind so die Gesamtkosten, wenn man alles zusammenrechnet? |
Re: [µC] Meine kleine Uhr...
also bei BCD denk man eigentlich erstmal an einen 8-4-2-1-Code, aber das sieht mehr nach ... scheiße, mir fällt grad der Name nicht ein ... aber es ist mehr eine 1-aus-10-Variante und nicht das, was man im Allgemeinen als BCD ansieht.
was den Preis angeht ... vielleicht weniger als 15..20€ :gruebel: |
Re: [µC] Meine kleine Uhr...
Zitat:
Entwicklungsplatine? Was ist das? :mrgreen: Spaß beiseite. ;) Auf der Platine habe ich ja einen Anschluss für den ![]() Lötaufwand ist... naja, sagen wir mal, dass das Board und die Matrix doch schon etwas Aufwand bedeuten. Wenn man gut ist, alles vorbereitet hat und nichts mehr ändern will daran, dann denke ich mal, dass so 3-4 Abende realistisch sind. Gesamtkosten? Naja:
Insgesamt also so gut 20€, wobei ich den Programmierer ja schon hatte. Die liegen aber auch so in diesem Bereich, es sei denn, man baut sich sowas selbst. Dafür gibt es zahlreiche Anleitungen im Web. Gruß, Daniel //Edit: @Himitsu: Summencode. ;=) |
Re: [µC] Meine kleine Uhr...
[OT]
Nur so nebenbei: Wird eigenltich die Summencode-Methode für das Komprimieren von Daten verwendet?
Code:
Damit könnte man Filesize um den Faktor 2 halbieren!
000000000 0 0 0 0
000000001 0 0 0 1 000000011 0 0 1 0 000000111 0 0 1 1 000001111 0 1 0 0 000011111 0 1 0 1 000111111 0 1 1 0 001111111 0 1 1 1 011111111 1 0 0 0 [/OT] MfG |
Re: [µC] Meine kleine Uhr...
mr_emre_d:
Wäre aber sehr ineffizient. Denn du hast ja nicht immer diesen von dir genannten Aufbau. Also würde man den Faktor 2 seeeehr selten bis gar nicht erreichen... ;) |
Re: [µC] Meine kleine Uhr...
ähm ok .. hast recht ..
ich komme gerade drauf, dass das ne dumme Idee war :stupid: *never mind* MfG |
Re: [µC] Meine kleine Uhr...
Prima, dass Du dich geoutet hast, jetzt weiß ich ja, an wen ich mich hier wenden kann und muss nicht erst auswandern. :mrgreen:
Weißt Du, wie man ![]() |
Re: [µC] Meine kleine Uhr...
Waaah... easy! :shock:
Kann ich dir leider nicht sagen, aber das Ding hat eine USB-Schnittstelle. Vielleicht kann man da was machen. ;) Können wir jetzt vielleicht zurück zum Thema kommen? :mrgreen: Wer Fragen zum ATMega o.ä hat, kann mir gerne ne PN schicken. ;) Zitat:
|
Re: [µC] Meine kleine Uhr...
Zitat:
Zitat:
Aber deiner Verdrahtung ... mein lehrmeister würde mich dafür fast umbringen :angel2: |
Re: [µC] Meine kleine Uhr...
Zitat:
Klingeldraht-Freiluft-Verdrahtung. :mrgreen: Wie würde sowas denn nach Lehrbuch aussehen? (Platine ätzen geht nicht, und isolierte Litze tu' ich mir nie wieder an... ;) ) |
Re: [µC] Meine kleine Uhr...
nach Lehrbuch ... blanker Draht direkt auf den Lötpunkten verlaufend ... nicht frei in der Luft schwebend.
Aber dort mit Leitungskreuzungen "schön" umzugehn ist 'ne Kunst für sich :roll: |
Re: [µC] Meine kleine Uhr...
Zitat:
|
Re: [µC] Meine kleine Uhr...
Immer wieder gut sind Lochrasterplatinen mit streifenförmigen Leiterbahnen wie z.B.
![]() |
Re: [µC] Meine kleine Uhr...
Hi blawen,
Ja, für mein nächstes kleines Projekt das auf jeden Fall auf dem Zettel. Ich hatte nur leider schon Lochrasterplatinen, und wollte die nicht verkommen lassen. Vielleicht auch nochmal für 3_of_8: Ein sehr schönes Board zum fairen Preis ist auch das hier: ![]() Bekommst dort die Platine, Bauteile müsstest du selber kaufen und löten. Dafür bekommst du ne Buchsenleiste, mit der du an alle Ports kommst. Kann man n schönes Sandwichboard bauen. ;) |
Re: [µC] Meine kleine Uhr...
Hmm, ja, sieht ganz interessant aus, aber vorher sollte ich wohl noch etwas Löterfahrung sammeln und schauen, wo ich die Bauteile (jetzt nicht die Standards wie Kondensatoren, Oszillatoren, sondern eher sowas wie diese Pin-Dinger) herbekomme.
|
Re: [µC] Meine kleine Uhr...
Klar,
ein bisschen Erfahrung kann nicht schaden, aber die bekommst du eh mit der Zeit. Die Bauteile bekommst du alle sehr günstig bei reichelt.de, auf der Seite vom Board steht eine Bestellliste mit den Nummern. Das ist der Vorteil, wenn man in Wilhelmshaven wohnt: reichelt ist in 10 Km Luftlinie.. ;) |
Re: [µC] Meine kleine Uhr...
Hast du dir Gedanken über die Genauigkeit deine Uhr gemacht?
Wenn du den uC mit 8 MHZ taktest, entspricht das eine Zykluszeit von 0,000000125 Sekunden. Nun könntest du einen üblichen Teiler nehmen der im Timer eingebaut ist. Diese sind bei dem Mega8: 1,8,64,256,1024. Bei einen 1024 Teiler kommst du somit auf einen Interrupt alle 0,000128 Sekunden. Das müsste weiter runter skaliert werden um auf einen Sekundentakt zu kommen. Jetzt könntest du den 16 Bit Counter bemühen und diesen bis 7812,5 laufen lassen um auf eine Sekunde zu kommen. Allerdings das ,5 macht hier Probleme. Dann bleibt also nur 0,000128*7812=0,999936 oder 0,000128*7813=1,000064. Am Tag haben wir 86400 Sekunden (24*60*60) somit ergibt sich Differenz von ca. +/- 5,5 Sekunden am Tag. Mit einen Teiler von 256 bei einen 8MHz Quarz kommt das übrigens hin. Der Counter müsste dann aber bis 31250 laufen. Hast du das in deiner Zeitroutine berücksichtigt oder eine fertige Lib genommen welche das berücksichtigt? Benutzt du den Timer überhaupt oder hast du das anders gelöst? Hab ich mich verrechnet? |
Re: [µC] Meine kleine Uhr...
Zitat:
|
Re: [µC] Meine kleine Uhr...
Hi generic,
Ja, die Gedanken habe ich mir schon bei einer anderen Uhr gemacht, die für meine Freundin war. Allerdings bietet die IDE, so ähnlich wie Delphi mit der VCL/Units, vorgefertigte Lösungen, u.a. eine RTC. Da gibt es einen Parameter, den man 100 Schritte in die positive und 100 Schritte in die negative Richtung setzen kann. So kann man evtl. Abweichungen ausbalancieren und eine recht genaue Uhr mit Bordmitteln bekommen. Zitat:
![]() Kann man quasi mit'm Zug oder Bus hinfahren und muss dann halt ein Stückchen laufen. ;) Da ich n Semesterticket habe, ist das immer noch besser als fast 6 € für den Versand zu löhnen. |
Re: [µC] Meine kleine Uhr...
Hi,
zur Genauigkeit: Warum hast du da nicht einfach statt dem externen Quarz für den CPU-Takt den internen Clock und dafür nen Uhrenquarz mit 32768 Hz verwendet? Damit kommt man mit den Timern auf exakte 1 Hz ohne irgendwelche rechnereien =) Ansonsten: Nette Uhr. Auch die Idee den USB-Stecker für eigene Zwecke zu missbrauchen find ich lustig ;D Grüße, Chris |
Re: [µC] Meine kleine Uhr...
Zitat:
|
Re: [µC] Meine kleine Uhr...
Zitat:
Extern *nur* den 32 kHz Uhrenquartz, aber eben nur für den Timer2 (Asynchron-Betrieb). Der CPU-Takt kann auch aus dem internen Takt des uC genommen werden, beim Mega8 IIRC nur 1 MHz, aber das dürfte für ne Uhr bei weitem reichen (auch mit Multiplexing) ;) |
Re: [µC] Meine kleine Uhr...
Zitat:
![]() |
Re: [µC] Meine kleine Uhr...
Der Aufwand, den externen Uhrenquarz anzuschließen sollte nicht sehr hoch sein ...
Und ein ATMega hat einen eingebauten 8Mhz Takt, der aber ab Werk durch 8 geteilt wird. Aber da er sowieso einen DCF77-Empfänger einplant, sollte das ganze relativ egal sein, so ungenau ist kein Taktgeber ... mfG Markus |
Re: [µC] Meine kleine Uhr...
Notfalls hat DCF77 einen Sekundentakt (liefert ja pro Sekunde ein Bit ... also 59 Bits insgesamt :stupid: )
|
Re: [µC] Meine kleine Uhr...
Hi,
Das mit dem Uhrenquarz hatte ich mir auch schon gedacht. Allerdings weiß ich nicht, wie die Implementation der RTC damit umgehen würde, und zum Selberimplementieren war ich... zu faul. :stupid: Ich werde die Uhr mal einen Monat lang beobachten. Wenn die Abweichung mehr als 10 Sekunden beträgt, dann werde ich da nochmal was machen. Alle halbe Jahre muss die Uhr ja eh verstellt werden. :P @himi: :stupid: |
Re: [µC] Meine kleine Uhr...
verstellt? eines der Bits gibt Sommer-/Winterzeit an ... und sonst sie "richtige" Uhrzeit ^^
Zitat:
falls du die 59 meinst ... das Minutensignal (volle Minute) gibt es nicht, diese Sekunde wird kein Signal ausgestrahlt |
Re: [µC] Meine kleine Uhr...
Ach so, das war Ernst... :gruebel:
Himi, Schon als du nach dem Summencode gefragt hast, hatte ich den Eindruck du hast mein Eingangsposting nicht gelesen. :mrgreen: Zitat:
|
Re: [µC] Meine kleine Uhr...
nja, ich dachte, wenn du eh (eventuell) planst den anzubauen, dann könnte man den auch gleich mit in die Überlegungen einbeziehen :mrgreen:
|
Re: [µC] Meine kleine Uhr...
Zitat:
(AFAIR konnte man doch den AVRco-RTC auf Timergesteuert einstellen? Lang lang ists her, dass ich mit AVRco gearbeitet hab ;) ) |
Re: [µC] Meine kleine Uhr...
Hmm, hab ich auch. Mal sehen, erstmal gucken, wie sich die kleine Ticktack im Feldtest schlägt. ;)
@himi: Joar, stümmt. :stupid: |
Re: [µC] Meine kleine Uhr...
im Notfall gibt's ja auch noch derartige µP mit integrierter Uhr :angel2:
also sollten die schon recht genau arbeiten können? Aber... ich kenn mich mit dieser Sprahe nicht so aus, aber mir kommt es ast so vor, wenn du da (z.B. beim Senden an den MAX...) die Interputs kurz abschaltest? |
Re: [µC] Meine kleine Uhr...
Zitat:
![]() Zitat:
Ja, die Interrupts muss ich teilweise kurz abschalten. Der Interrupt wird von der RTC benutzt. Eigentlich dachte ich aber, ich würde nur beim Setzen der Zeit den Interrupt deaktivieren. Das ist vorgegeben vom Hersteller. Mal sehen... ;) |
Re: [µC] Meine kleine Uhr...
Da doch dort das Clock-Signal dabei ist, sollte eine ganz kurze unterbrechung doch nicht viel ausmachen?
Aber wenn du die Uhr über einen Interrupt weiterschaltest, dann könnte da doch eventuell mal einiges ausfallen :gruebel: Zitat:
hoffentlich vermißt mich hier keiner, aber bin samstags in Leipzig und dann fahr ich über Berlin heim :stupid: [add] hey, den kleinen Timer-Chip kenn ich doch :shock: ... jahre ist's her, aber dennoch wiedererkannt :angel: |
Re: [µC] Meine kleine Uhr...
Zitat:
Also, die RTC löst einen Interrupt aus, wenn eine Sekunde vergangen ist, um eine Variable zu setzen, die eben genau das signalisiert. Ohne Interrupt könnte ja theoretisch eine Sekunde verloren gehen, was bei mir aber eigentlich nie passiert. Es ist ja nur ein kleines Programm. Oder hab ich dich falsch verstanden? |
Re: [µC] Meine kleine Uhr...
neee, du schaltrest doch die Interrupts ab, wenn du was zu diesem MAXirgendwas sendest (glaub ich ... hab jetzt nicht nochmal reingeguckt).
dieserem dürfte es doch aber nichts ausmachen, wenn da mal ein Impuls etwas länger dauert, weil der Interrupt dazwischenkam. Aber die interne Programm-Uhr könnte immer mal wieder etwas Zeit übersehn, wenn wärend der Interrupt aus ist ein Impuls reinkam. |
Re: [µC] Meine kleine Uhr...
Hast recht,
Das fließt beim nächsten Update mit ein. Danke ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz