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
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
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?
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:> 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.
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.
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.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.