Abend, vor ein paar Monaten hab ich versucht, eine analoge Uhr mit sieben Segment Anzeigen aufzubauen. Das ist mir allerdings nicht vollständig gelungen... (Dazu gibt es auch hier einen Beitrag) Hatte für das Ding aber irgendwann keine Zeit mehr und hatte es wohl erfolgreich verdrängt;)(Habe da einige Abende für die erfolglose Fehlversuche investiert). Als ich es eben da rum liegen sah und ich immer noch keine Lösung dafür habe dachte ich mir, dass ich das ja auch digital realisieren könnte. Also nun zum neuen Projekt womit ich hoffentlich mehr Erfolg haben werde: Ich würde gerne mit einem Atmega8 und sechs sieben Segment Anzeigen eine digitale Uhr bauen. Dazu gibt es hier im Forum und bei Google sehr viele Einträge, ich finde aber leider nichts passendes. Deswegen hier die Frage ob jemand Code + Schaltplan für so ein Projekt hätte. Schon einmal Danke Lukas
Lukas H. schrieb: > eine analoge Uhr mit sieben > Segment Anzeigen aufzubauen Interessanter Ansatz :-)
Profi am Werk.. Ist ja klar was gemeint ist? Zum MAX7219 finde ich auch keine Schaltpläne (ist aber ein tolles Teil, wird die Sache auf jedenfall vereinfachen).
Lukas H. schrieb: > keine Schaltpläne Wie du den anschließen musst steht im Datenblatt des Bauteils. Stichwort: SPI schau mal in beiden Datenblättern (ATMEGA 8 und MAX 7219 nach) Und du hast recht, damit wirds einfacher, der nimmt dir fast die ganze Arbeit ab ;)
Eigentlich steht hier http://www.seeedstudio.com/wiki/Grove_-_4-Digit_Display schon alles drin. Programmierst du mit der Arduino IDE? Ob ATMega8 oder Arduino (welcher auch immer) sollte für dein Vorhaben egal sein. Du musst nur die beiden Pins anpassen. Hier ist der von meiner Schreibtischuhr:
1 | #include <TimerOne.h> |
2 | #include "TM1637.h" |
3 | #define ON 1 |
4 | #define OFF 0 |
5 | |
6 | int8_t TimeDisp[] = {0x00,0x00,0x00,0x00}; |
7 | unsigned char ClockPoint = 1; |
8 | unsigned char Update; |
9 | unsigned char halfsecond = 0; |
10 | unsigned char second; |
11 | unsigned char minute = 44; |
12 | unsigned char hour = 18; |
13 | |
14 | |
15 | #define CLK 9//pins definitions for TM1637 and can be changed to other ports |
16 | #define DIO 8 |
17 | TM1637 tm1637(CLK,DIO); |
18 | |
19 | void setup() |
20 | { |
21 | tm1637.set(); |
22 | tm1637.init(); |
23 | Timer1.initialize(500000);//timing for 500ms |
24 | Timer1.attachInterrupt(TimingISR);//declare the interrupt serve routine:TimingISR |
25 | } |
26 | void loop() |
27 | { |
28 | if(Update == ON) |
29 | { |
30 | TimeUpdate(); |
31 | tm1637.display(TimeDisp); |
32 | } |
33 | |
34 | } |
35 | void TimingISR() |
36 | { |
37 | halfsecond ++; |
38 | Update = ON; |
39 | if(halfsecond == 2){ |
40 | second ++; |
41 | if(second == 60) |
42 | { |
43 | minute ++; |
44 | if(minute == 60) |
45 | { |
46 | hour ++; |
47 | if(hour == 24)hour = 0; |
48 | minute = 0; |
49 | } |
50 | second = 0; |
51 | } |
52 | halfsecond = 0; |
53 | } |
54 | // Serial.println(second); |
55 | ClockPoint = (~ClockPoint) & 0x01; |
56 | } |
57 | void TimeUpdate(void) |
58 | { |
59 | if(ClockPoint)tm1637.point(POINT_ON); |
60 | else tm1637.point(POINT_OFF); |
61 | TimeDisp[0] = hour / 10; |
62 | TimeDisp[1] = hour % 10; |
63 | TimeDisp[2] = minute / 10; |
64 | TimeDisp[3] = minute % 10; |
65 | Update = OFF; |
66 | } |
Und nicht vergessen die Librarys installieren!
Das hier wäre doch m.E. das, was Du suchst: http://www.banggood.com/DIY-AT89S52-Rotation-LED-Electronic-Clock-Kit-51-SCM-Learning-Board-p-965849.html Gruß
Lukas H. schrieb: > Zum MAX7219 finde ich auch keine Schaltpläne (ist aber ein tolles Teil, > wird die Sache auf jedenfall vereinfachen). Hallo Lukas, dieses "Tolle Teil" nimmt dir nur die Ansteuerung der 7-Segment Anzeigen ab. Das kann man auch selbst lösen ähnlich dem Prinzip für die LED-Cubes. Dafür 5 EUR zu spendieren macht nur Sinn wenn Du mit das Multiplexen nicht verstehen kannst oder möchtest. Dann nimm dem. Ansonsten reichen dafür 8 Transistoren plus n für die Anzahl der Digits. rgds
Multiplexen verstehe ich schon. Die Anzeigen mit Transistoren an den ATMega8 wäre auch kein Problem. Aber der Code dazu (benutze Bascom und Ardruino IDE) wäre mit MAX7219 einfacher oder liege ich da falsch?
Habe gerade diesen Schaltplan + Code gefunden: http://www.elektronik-radio.de/41323.html Verstehe dort alles außer die dort sogenannte LED Spannung. Wäre die in meinem Fall einfach die Spannung einer Led in der sieben Segment Anzeige? Und wenn ja, wie würde ich diese "erzeugen" würde ein passend dimensionierter Wiederstand reichen?
prinzipiell kann das so passen wenn man wüsste welche 7Segmenter du verwendest: gem. Anode oder Katode Je nach vorhandener Versorgungsspannung 3.3 oder 5V eben den Vorwiderstand für die gewünschte Helligkeit und je nach Datenblatt der 7Segmentanzeige anpassen.
Meine sieben Segment anzeigen haben eine gemeinsame Katode. Wenn ich das richtig sehe haben die im Schaltpan eine gemeinsame Anode oder? Kann man das irgendwie passend umbauen? Oder ist es einfacher sieben Segment Anzeigen mit einer gem. Anode zu kaufen?
Den Anzeigen ist es herzlich egal, ob Du die Digits oder die Segmente multiplext. Man kann die Schaltung oder die Software umbauen.
Wie könnte man denn die Schaltung umbauen (wäre mir lieber als was am Code zu ändern)? Oder wäre es um einiges einfach etwas am Code zu ändern?
bei den modernen (hoch)effizienten LEDs die mit 2mA schon gut wahrnehmbar leuchten könnte man sogar ganz ohne die Transistoren auskommen. die gem Katoden auf 4 I/Os eines Ports, die Segmente der 4 Anzeigen jeweils parallel und über passende Vorwiderstände auf 7 I/Os eines anderen Ports (Port Trennung nur zur Vereinfachung der Programmierung) das wären dann max. 14mA die ein Port sinken muß bzw. 2mA sourcen. Das ist laut Datenblatt bei 5V ok. Mit diesem "einfachen" Aufbau läßt sich das Grundprinzip schon mal umsetzen, testen und danach ggfs. erweitern.
Lukas H. schrieb: > Meine sieben Segment anzeigen haben eine gemeinsame Katode. Wenn ich das > richtig sehe haben die im Schaltpan eine gemeinsame Anode oder? dann nimm doch den 7221. Codebeispiele sind hier zu finden.
Lukas H. schrieb: > Habe gerade diesen Schaltplan + Code gefunden: Die AVR UHR dort, mit grossen Segmenten aus mehreren LEDs. Ja, es ist etwas doof, so was im Netz zu finden. Entweder es sind Prinzipaufbauten aus den AppNotes der Hersteller, die zwar Ziffern zeigen aber nicht in voller Helligkeit, weil man sich zur Demonstration lieber die Stromverstärker spart, (http://ww1.microchip.com/downloads/en/AppNotes/00615b.pdf, man redet dann von low power design, denn mehr schafft sie nicht) oder es sind besondere Uhren: Nixies, Grossziffern, Numitrons, Wordclocks, Oszilloskopuhren, es gibt alles, bloss (scheinbar) keine grundsolide normale Uhr (mit Datum und DCF ? Nun ja, zumindest optional). Das liegt natürlich daran, daß so was so supersimpel ist, dass es gleich nach der blinkenden LED kommt (aber für die gibt es Beispiele) aber LED-Uhren nicht verkaufsfähig sind - man will dann wenigstens ein batteriesparendes Flüssigkristalldisplay. Mir persönlich gefällt https://www.sparkfun.com/tutorials/47 und http://arvin.schnell-web.net/dcf77/ und http://www.electro-labs.com/diy-digital-desk-clock-with-temperature-display-part-1-hardware-design/ am Besten, die sind aber mit Microchip PIC Prozessoren gebaut. Eine Uhr muss, finde ich, einen blinkenden Doppelpunkt haben, und darf nicht so schummrig sein wie http://i.ebayimg.com/t/Red-LED-Clock-Display-7-Segment-2-Pcs-For-Atmel-PIC-Arduino-Application-/00/s/Nzg0WDE2MDA=/z/srUAAMXQBwlRJLBc/$T2eC16FHJGIE9nnWprOPBRJLBbzCk!~~60_57.JPG Uhren ohne Ende http://kevinrye.net/files/category-arduino.php aber ich kann dir auch keinen Bauvorschlag zeigen, an dem ich nichts auszusetzen hätte.
Hier eine interessante Seite: http://www.stefan-buchgeher.info/elektronik/dcf2/dcf.html Aber da wirst du dich mit PICs anfreunden müssen oder den Code adaptieren.
Lukas H. schrieb: > Habe gerade diesen Schaltplan + Code gefunden: > http://www.elektronik-radio.de/41323.html Warum aber schliesst der Schöpfer AVCC nicht an? Wird wohl hoffentlich nur im Schaltplan fehlen... Lukas H. schrieb: > Verstehe dort alles außer die dort sogenannte LED Spannung. Wäre die in > meinem Fall einfach die Spannung einer Led in der sieben Segment > Anzeige? Das hat er so gemacht, damit die LEDs nicht unbedingt von den geregelten 5V des MC versorgt werden müssen. Hat Vorteile, denn der Regler muss nicht noch Verlustleistung für die LED verbraten und man kann die LED Spannung auch helligkeitsabhängig steuern. Der Schaltungsteil fehlt, wäre aber recht einfach dazu zu basteln. Eine Helligkeitssteuerung fehlt mir bei vielen dieser Projekte. Kann man aber z.B. mit ADC und Multiplexstrategie auch allein in Software giessen.
MaWin schrieb: > Uhren ohne Ende > http://kevinrye.net/files/category-arduino.php > aber ich kann dir auch keinen Bauvorschlag zeigen, an dem ich nichts > auszusetzen hätte. Ich hätte ja auch gesagt, das wichtigste wäre jetzt erst einmal, dass er überhaupt irgendetwas selber macht. So eine Uhr mit 7-Segment Anzeige ist (wenn MaWin ein Auge ein bischen zudrücken kann) keine Raketentechnik. Das sollte eigentlich jeder alleine hinkriegen, der sich für µC interessiert. Er kann gerne die eine oder andere Anregung aus dem Web benutzen, da hab ich keinen Einwand. Aber nach fertiger Hardware suchen, nach fertiger Software suchen, keine einzige Eigenleistung erbringen, das ist mit dann schon zu wenig.
Vielleicht zur Orientierung für eine etwas andere Hardware (statische Anzeige) samt Software (frei laufender Zähler): Beitrag "7-Segm.-LED-Anzeige, 6-stellig, statische Ansteuerung mit (74HC)4094" Das ganze als Anzeige für eine Uhr zu verwenden, kann man an anderer Stelle im Netz finden ;-)
Erst einmal Danke für die vielen Antworten. Ich habe mir gerade einmal alle Links angeschaut. Müsste damit machbar sein. Habe aber noch eine Frage: Viele Uhren sind mit DCF77 ausgestattet und es sieht nicht so kompliziert aus. Hat jemand von euch mit so einem DCF77 Modul schon Erfahrung und könnte mit eins empfehlen? Würde es gerne mal mit einem ausprobieren.
Habe gerade noch das hier gefunden: https://elektronik-kompendium.de/public/arnerossius/schaltungen/avr/dcfclk-big.htm Dort gibt es auch Schaltplan und Code und es ist mit DCF77+Uhrzeit+Datum+Wochentag. wäre also für mich mehr als Perfekt auch wenn ich dann nichts wirklich selber gemacht habe... Habe zu diesem Schaltplan (https://elektronik-kompendium.de/public/arnerossius/schaltungen/avr/dcfclk-big-matrix.png) noch zwei Fragen: Heißt das unten links das Pin 8 und Pin 16 von IC3 und IC4 einfach an + und - angeschlossen werden? sehe ich das richtig, dass die sieben Segment Anzeigen mit gem. Anode sind?
Ich weiß es ist schon was her, ich habe aber letztes Wochenende mal eine Uhr aufgebaut nach diesem Schaltplan: https://elektronik-kompendium.de/public/arnerossius/schaltungen/avr/dcfclk-big.htm Ich habe die "ursprüngliche Version" aufgebaut. Um erst nichts groß an den Einstellungen zu ändern, habe ich die fertige .hex Datei benutzt und um die Datumseinstellung DDMMYYYY zu bekommen einfach die Sieben-Segment Anzeigen anders angeschloßen. Jetzt zu meinem Problem(wäre auch ja zu einfach gewesen hätte alles gleich funktioniert): Ich habe den Attiny2313 programmiert, in die Schaltung eingesteckt und obwohl ich eigentlich das Display aus hatte(Pin 7 nicht mit GND verbunden) leuchteten alle Sieben-Segment anzeigen und nach kurzer Zeit(ca. 1min) entschloss sich der Attiny dazu, heiß zu werden und ehe ich den Stecker ziehen konnte kaputt zu gehen. Anschließend habe ich noch einmal alles überprüft, jedoch keinen Fehler gefunden und das Programm mal auf einen Attiny2313A gezogen und diesen benutzt. Zu dem Zeitpunkt hatte ich mir dann auch mal die Schritte bevor die Uhrzeit angezeigt wird angeschaut(Bild auf der Seite). Allerdings zeigt meine Anzeige, da wo der erste Strich in der Mitte sein sollte eine 0 an(direkt nach dem Start), sie wechselst jedoch nach kurzer Zeit zu einem L und unten wechselt die Anzeige hin und her (Eingang 0/1). Sie zählt aber nur selten die Empfangenen Bits hoch und wenn nur bis maximal 3 bevor sie wieder oben auf das L schaltet. Könnte das an dem Attiny 2313A liegen oder ist etwas anderes falsch? Und hat einer eine Idee warum der Attiny2313 "abgeraucht" ist(der steckte vorher lange mit dem falschen Quarz und zwei Angeschlossenen Leds in meinem Programmierboard/das war der einzige Unterscheid zum Attiny2313A; könnte das daran liegen)?
Äh, auf der Seite sehe ich aber nichts von einem Attiny. Dir ist schon klar, dass das HEX File nicht kompatibel ist? Grüsse, René
H.Joachim S. schrieb: >> eine analoge Uhr mit sieben >> Segment Anzeigen aufzubauen > > Interessanter Ansatz :-) Ja, passt nur, wenn wir demnächst einen sieben Stunden Tag einführen.
Ich habe gerade einmal eine andere Version probiert(0.8.1), da wird der "Bildschirm" direkt nach dem einschalten richtig angezeigt, es werden aber maximal wieder drei Bits empfangen bis er wieder auf das"L" wechselt.
Abend, ich bin mal wieder ein bisschen weiter gekommen, ich habe einen dcf77 Simulator gebaut und diesen angeschlossen. Mit dem gehts:) Also jetzt meine nächste Frage: Kann man den dcf77 Empfang irgendwie verbessern? (Ich habe das Empfangsmodul von Conrad)
Lukas H. schrieb: > Also jetzt meine nächste Frage: > Kann man den dcf77 Empfang irgendwie verbessern? Normalerweise haben selbst einfache Empfänger einen Empfangsbereichvon mindestens 1000kmrund um Main- flingen. Das Problem sind Fremdstörungen innerhalb von Gebäuden. Dagegen hilft manchmal das raussetzen der Antenne ins Freie.
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.