Forum: Mikrocontroller und Digitale Elektronik Uhr-Schaltung


von LukasZ (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe geplant mir eine eigene Funk-Uhr zu bauen. Habe mir die 
verschiedensten Beiträge durchgelesen.
Aus all diesen Informationen habe ich die im Anhang beigelegte Schaltung 
zusammengestellt.
Meine Frage ist nun, ob das so funktionieren würde oder ich eventuell 
denktechnische Fehler eingebaut habe oder so. Wo ich mir nicht ganz 
sicher bin ist das mit den Widerständen vor den Transistoren (an der 
Basis) ob die nicht zu klein oder so sind.
Der OSZI soll ein Oszillator mit 1 MHz werden, den ich dann bei Reichelt 
kaufen würde. Leider konnte ich kein passendes Schaltsymbol in Eagle 
dazu finden, deshalb der "Kasten". Auch ist der DCF77-Empfänger nicht 
eingezeichnet. Es fehlen auch noch die Verbindungen zum Programmieren 
des µC, die ich aber mit Absicht nicht eingezeichnet habe.
Hoffe ist alles soweit richtig und könnte dann quasi direkt einen 
Schritt weiter gehen und es programmieren versuchen.
Bei Verständnisfragen etc. bitte Fragen ;)
mfg
LukasZ

von Stefan P. (form)


Lesenswert?

- 2 Linearregler schaltet man niemals parallel! Sonst gibts ein 
Wettrennen wer am schnellsten Schwingen kann...

- Verwende lieber GND+VCC Symbole im Schaltplan, dann ist es nicht so 
unübersichtlich

- Versorgungsspannung von den Logik-ICs fehlt (per Invoke-Befehl in 
Eagle)

- Bei Q69 fehlt am Emitter eine Junction - warscheinlich kein Kontakt 
dort

- Die Basiswiderstände können ruhig 10k sein. Das reicht dicke aus.

- AREF gehört nicht an VCC wenn man man den Pin nicht als Eingang 
konfiguriert. Der 100n C gegen GND ist allerdings richtig.

- Die PullUp-Widerstände an den Tastern kannst Du weglassen wenn Du die 
internen PullUps des AVR verwendest.

- LED67-70 brauchen je einen eigenen Vorwiderstand. Oder schalte je 2 
von ihnen in Reihe. (Dann sparst Du 2 Widerstände)

Setz dich dringend mal mit dem "Bus" Befehl auseinander,  um das ganze 
etwas übersichtlicher zu gestalten. Immer dran denken das ein Schaltplan 
kein Platinenlayout darstellt :-)

von Otto (Gast)


Lesenswert?

- die Gleichrichterdioden sind verkehrt geschaltet
- multiplexe die 7-Segment-Anzeigen

von Rene H. (Gast)


Lesenswert?

Guck da mal rein:

AVR-Tutorial: 7-Segment-Anzeige

Da sparst Du Dir eine Menge Vogelfutter (PNP statt NPN etc.)

von Peter D. (peda)


Lesenswert?

Willst Du mit den LEDs heizen?
Bei 56 Ohm fließen da 52mA, also über das doppelte der erlaubten max 
25mA.

Nimm einfach einige 74HC595 mit 330 Ohm je Ausgang und treibe damit die 
LEDs direkt (auch die Sekunden-LEDs).
Helligkeit per PWM über den Enable-Eingang.
Das macht dann insgesamt 4 IO-Pins zum MC.

Die Zähler, Dekoder und Transistoren brauchst Du nicht.
Zählen und Dekodieren kann der MC ja selber.


Peter

von LukasZ (Gast)


Angehängte Dateien:

Lesenswert?

Ja besten Dank an alle;
Meine Hochachtung das ihr in so kurzer Zeit auch so winzige Fehler 
findet und noch Lösungs- bzw. Verbesserungsvorschläge habt.
Habe mir Gedanken über eure Kommentare gemacht und die eine Idee oder 
andere aufgegriffen und bin zum Ergebnis gekommen.
Als Stromversorgung werde ich micht denke ich für ein fertiges Netzteil 
entscheiden welches mir stabilisierte 5V mit ca. 2500mA liefert und 
unter 10€ kostet. Da kostet der PrintTrafo bei Reichelt alleine fast 
genauso viel.
Danke für den Invoke-Befehl, wunderte mich schon dass die ICs keine 
Poweranschlüsse hatten. Stimmt schon mit dem "Bus" Befehl werde ich mich 
noch auseinander setzen müssen.
Hatte schon vorher nachgedacht die Anzeigen zu multiplexen, fand ich 
aber nicht so geeignet, da die ganzen Anzeigen noch dimmbar sein 
sollten. In dem geschickten Link, stand auch dass das manchmal flimmern 
könnte und wenn ich dass dann auch noch dimme... Deshalb verwende ich 
die Decoder da diese ich mit PWM ansteuern kann, was meiner Meinung nach 
sogar die beste und einfachste Lösung ist.
Habe die Widerstände der Anzeigen korrigiert (jede Anzeige hat: 3,3V mit 
30mA pro Segment).
Ich muss zugeben, dass ich das mit dem 74HC595 nicht wirklich verstanden 
habe. Werde es mir noch irgendwann mal genauer anschauen müssen, aber 
werde denke ich mal vorerst diese Methode beibehalten und eventuell in 
der nächsten Version optimieren.

Jedoch bleiben mir noch Fragen über:
Können die 1K-Ohm vor den Transistoren, die bei den Anzeigen bzw. auch 
bei den Sekunden-LEDs sind, so bleiben oder sollte ich sie auf 10K 
erhöhen?
Mir ist grad so spontan ne Idee eingefallen, ich könnte doch bestimmt 
auch die Anzeige auch anders ansteuern. Indem ich einfach nach dem 
Decoder einen Inverter(74LS04) einbaue und danach den ULN2803 verwende, 
oder nicht??
Bzw. gibt es eventuell schon so einen ähnlichen ULN mit invertierten 
Eingängen?
Denn dann könnte ich ja auf die Widerstände vor den Transistoren(vor der 
Basis) und auf die Transistoren selbst verzichten.

mfg
LukasZ

von Zeitlicher (Gast)


Lesenswert?

Du hast nicht gesagt, welches DCF-Modul Du verwendest, aber es gibt 
welche, bei denen man noch einen Eingang schalten muss, damit die 
starten, und wenn Du so einen Typ verwenden solltest, würde dafür noch 
die Leitung fehlen.

von MeinerEiner (Gast)


Lesenswert?

> Willst Du mit den LEDs heizen?
> Bei 56 Ohm fließen da 52mA, also über das doppelte der erlaubten max 25mA.

Im Multiplexbetrieb ziemlich sicher erlaubt.
Da sind je nach Modell kurzzeitig bis zu 150-200mA drin.

von LukasZ (Gast)


Lesenswert?

Ich wollte den von Conrad oder Reichelt nehmen, diese müssten sich 
automatisch starten.
Laut einigen Projekten, die ich auch hier gesehen hatte wurde nur der 
DCF-Ausgang gebraucht.
Ach es gab noch den Hinweis wegen Aref, welches ich an Vcc geschaltet 
hatte: Im Prinzip habe ich mich an die Vorlage [[DCF77-Funkwecker mit 
AVR]] gehalten. Ich möchte später nämlich die Spannung an Pin33 
einlesen.
Ist das trotzdem falsch oder wie muss das jetzt??

mfg
LukasZ

von Peter D. (peda)


Lesenswert?

LukasZ schrieb:
> Als Stromversorgung werde ich micht denke ich für ein fertiges Netzteil
> entscheiden welches mir stabilisierte 5V mit ca. 2500mA liefert und
> unter 10€ kostet. Da kostet der PrintTrafo bei Reichelt alleine fast
> genauso viel.

Wie kommst Du auf 2,5A?
Meine Uhren laufen mit max 500mA.

2,5A ist jedenfalls hoch genug, um ICs sicher zu zerstören, wenn man 
irgend einen Schaltungsfehler hat oder man mit der Meßspitze abrutscht 
usw.

Wie zeichnest Du eigentlich diese Monsterschaltpläne?
Auf meinem 1920*1200 LCD passen sie nicht drauf.
Ich würde da ja wahnsinnig werden, immer das Bild schieben zu müssen.


> Hatte schon vorher nachgedacht die Anzeigen zu multiplexen, fand ich
> aber nicht so geeignet, da die ganzen Anzeigen noch dimmbar sein
> sollten. In dem geschickten Link, stand auch dass das manchmal flimmern
> könnte und wenn ich dass dann auch noch dimme.

Wenn mans falsch macht, kanns flimmern.
Ich benutze nur Multiplex, läuft astrein und spart ne Menge Bauteile und 
Drähte.


>.. Deshalb verwende ich
> die Decoder da diese ich mit PWM ansteuern kann, was meiner Meinung nach
> sogar die beste und einfachste Lösung ist.

Ich verstehe, daß es einfacher aussieht, wenn man in der Programmierung 
noch nicht so erfahren ist. Aber es sieht eben nur so aus.

Der Charme eines MCs liegt eigentlich darin, soviel wie möglich in 
Software zu machen, da muß man nämlich keine Drähte ziehen und kann bei 
Fehlern sofort ändern (muß keine neue Platine layouten).


> Habe die Widerstände der Anzeigen korrigiert (jede Anzeige hat: 3,3V mit
> 30mA pro Segment).

Das sind immer noch 5mA zuviel (Absolute maximum ratings (Ta=25°C) = 
25mA).
Auch zwingt Dich niemand, alle Bauteile an die Grenze zu fahren.
Das Auge ist logarithmisch, d.h. 5..10mA reichen in der Regel völlig.

LEDs danken es mit schneller Alterung, wenn man sie überlastet.


> Ich muss zugeben, dass ich das mit dem 74HC595 nicht wirklich verstanden
> habe.

Wie ein Schieberegister funktioniert weißt Du?


> Mir ist grad so spontan ne Idee eingefallen, ich könnte doch bestimmt
> auch die Anzeige auch anders ansteuern. Indem ich einfach nach dem
> Decoder einen Inverter(74LS04) einbaue und danach den ULN2803 verwende,
> oder nicht??

Eher nicht.
Der ULN ist nichts weiter, als ein Mehrfachtransistor mit 
Basiswiderständen.
D.h. der Inverter würde es genau falschrum machen.



Der Q66 am IC2/5 ist falsch, das ist ein Ausgang!
Die CPU wird ja nicht gleich zusammenbrechen unter der Rechenlast, wenn 
sie jede Minute ein Reset schickt.
Wozu sollen Q65, Q66 überhaupt gut sein?


Peter

von LukasZ (Gast)


Lesenswert?

Naja der Q66 ist auch nicht für den Ausgang von IC2 gedacht sondern 
mithilfe von Q66 soll der IC2 Resetet werden können. Zudem soll sich IC2 
reseten wenn IC2/5 High ist. Und das gleiche Spiel ist bei IC1. Ich 
hätte ja auch ne Diode von IC2/5 nach IC2/15 (Reset) setzen oder beides 
mit einem Or-Gatter verknüpfen können ist aber eigentlich ja denke ich 
unnötig.

Wie Schieberegister im Prinzip funktionieren weiss ich schon. Nur ich 
fange quasi mit AVR an und dann wollte ich es mit der Software nicht 
übertreiben.

Der Vorteil der Decoder ist, dass diese ebenfalls einen quasi 
Enableeingang haben und nebenbei alle Lampen angeschaltet werden können 
(Lampentest). Deshalb diese Methode.

Werde nochmal die Widerstände dann bei den Anzeigen (ca. 82R) erhöhen ;)

Und das mit dem ULN: Wäre doch ideal, denn auf diese Weise könnte ich ja 
mir die ganzen Transistoren sparen.
Hatte wahrscheinlich nen Denkfehler: Wenn beim ULN im Eingang High 
ankommt, dann erst wird der Ausgang auf GND gezogen, richtig?

Naja wie ich auf 2,4 A komme: Komme ich nicht :D ; Aber wenn ich mir 
88:88 anzeigen lassen will (soll bei Synchronisationsbeginn sein) wären 
es schon 0,84 A dann kämmen die LEDs noch hinzu und komme dann auf 0,99A 
mit den ICs dürfte es bei einem maximalen Stromverbrauch von ca. 1,23A 
enden.

Aber ansonsten ist an der Schaltung alles in Ordnung?

mfg
LukasZ

von LukasZ (Gast)


Angehängte Dateien:

Lesenswert?

So ich habe mir den Schaltplan noch ein wenig modifiziert und den ULN 
verwendet so wie ich es mir halt vorstelle...

Falls jetzt nichts falsch ist was ich hoffe ;), werde ich mal das Layout 
entwerfen versuchen.

Ja besten Dank für eure Hilfen ud Ratschläge...

mit besten freundlichen Grüßen
LukasZ

von Otto (Gast)


Lesenswert?

AREF liegt immer noch an VCC - es muss aber über einen 100nF an GND

von LukasZ (Gast)


Lesenswert?

Ah ja stimmt, hatte ich vergessen es zu ändern.
Danke
LukasZ

von kurz (Gast)


Lesenswert?

Selbst für einen Hobbybastler ist die Schaltung grottenschlecht.

Die Multiplexer aus dem letzten Jahrtausend.

Mach Dir lieber ein paar mehr Gedanken über PWM und Multiplexen, bevor 
Du auch nur ein Bauteil kaufst und einlötest.

Du sprachst von einer 2. Version, mach sie gleich zur ersten und spar 
Dir das ganze Hardwaregrab.

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Also ich weiss ja nicht... soviel Bauteile, um ein paar 
7-Segment-Anzeigen anzusteuern? Schau Dir mal meine Schaltung als 
Vergleich an. Das ganze LED-Grab ist zwar nicht dran, aber nun gut, das 
wuerde man auch noch dran bekommen. Was willst Du damit eigentlich 
darstellen?

von Otto (Gast)


Lesenswert?

Ich muss mich den Anderen anschliessen - die ganzen IC an den 
7-Segment-Anzeigen bringen Dir nicht einen einzigen Vorteil.

von Peter D. (peda)


Lesenswert?

Naja, wenn er sich die Multiplexprogrammierung nicht zutraut.

Ich muß allerdings auch sagen, es sieht viel schwieriger aus, als es 
ist.
Man darf nur nicht den kapitalen Fehler machen, keinen Timerinterrupt zu 
verwenden, das geht sowas von in die Hose.

Also erstmal Interrupt lernen, d.h. mal ne LED per Timerinterrupt 
blinken lassen. Das kann man aber probieren, bevor man das Layout macht.

Und Dekodieren heißt in MC-Sprache Tabellenzugriff.
Das ist quasi Brot und Butter fast jeder MC-Anwendung, man kommt also 
nicht umhin auch das zu lernen und dann sind die Dekoder aber sowas von 
überflüssig.


Peter

von Eddy C. (chrisi)


Lesenswert?

IC4C soll mit dem RC-Glied einen Oszillator bilden? Dann solltest Du 
statt einem UND-Gatter besser ein NAND-Gatter in 
Schmitt-Trigger-Ausführung einsetzen, z.B. 4093, sonst schwingt da gar 
nichts. Noch besser wäre es, wenn Du Dich einfach an einen PWM-Ausgang 
des Prozessors hängst. Der Piezo wird keinen Ton von sich geben. Und 
zwar nicht wegen der überflüssigen Diode D9, sondern weil ein Piezo mit 
einem Gegentaktausgang angesteuert werden muss. Also entweder einen 
Pulldown (Entladewiderstand)parallel zum Piezo oder auch weg mit dem 
Emitterfolger und direkt an den Gatterausgang. Der 4511 ist ein Dekoder 
Driver, warum noch die Open-Collectors? Wobei der Vorwiderstand von 82 
Ohm die Opencollectors rechtfertigen würde... Soll die Uhr das Zimmer 
beleuchten?

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Peter Dannegger schrieb:
> Naja, wenn er sich die Multiplexprogrammierung nicht zutraut.

Lukas, ich hab Dir mal den Code fuer obige Schaltung angehaengt, 
fungiert momentan ebenfalls als Uhr ;) Das koennte Dir weiter helfen.

von LukasZ (Gast)


Lesenswert?

Mit den Anzeigen werden die Stunden und Minuten, dann ab und zu soll es 
noch das Datum anzeigen.

Naja die Uhr soll ja nicht das Zimmer beleuchten aber zur Tageszeit, 
auch bei Sonneneinstrahlung gut lesbar sein. In der Dämmerung bzw. Nacht 
wird die Uhr automatisch mit dem PWM-Signal dann gedimmt, so dass dann 
nur die Anzeigen schwach leuchten würden.

IC4C und IC4D hatte ich tatsächlich die falschen Gatter benutzt, es 
sollten die 4093 sein so wie in 
http://s-huehn.de/elektronik/wecker/wecker.htm.
Aber auf der Seite ist nämlich auch diese Diode, bzw habe es ein-zu-eins 
übernommen, naja bis auf die Tatsache, dass ich die falschen Gatter 
ausversehen eingesetzt hatte ;) Aber muss ich trotzdem dann die Diode 
gegen einen Widerstand am besten tauschen?

Michael G. schrieb:
>Lukas, ich hab Dir mal den Code fuer obige Schaltung angehaengt,
>fungiert momentan ebenfalls als Uhr ;) Das koennte Dir weiter helfen.

Ja vielen Dank, habe mir die Schaltung mit dem Quellcode ausgedruckt, 
werde es in den Tagen mal durcharbeiten. Ne Frage hätte ich dazu schon, 
wie könnte ich das dann "dimmen"? In meiner Schaltung verwende ich ja 
das PWM-Signal und den 4511 Decoder dafür.

mfg
LukasZ

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

LukasZ schrieb:

> Michael G. schrieb:
>>Lukas, ich hab Dir mal den Code fuer obige Schaltung angehaengt,
>>fungiert momentan ebenfalls als Uhr ;) Das koennte Dir weiter helfen.
>
> Ja vielen Dank, habe mir die Schaltung mit dem Quellcode ausgedruckt,
> werde es in den Tagen mal durcharbeiten. Ne Frage hätte ich dazu schon,
> wie könnte ich das dann "dimmen"? In meiner Schaltung verwende ich ja
> das PWM-Signal und den 4511 Decoder dafür.
>
> mfg
> LukasZ

Hy Lukas,

die nominelle Helligkeit ergibt sich aus zwei Faktoren: Der Laenge des 
Pulses und dem verwendeten Widerstand, also dem Puls-Strom. Wenn Du die 
Anzeige kuerzer pulst, d.h. also das Tastverhaeltnis (duty cycle) 
verringerst, wird die Anzeige automatisch dunkler. Du darfst nur die 
Frequenz nicht zu weit herunterfahren, sonst faengt es an zu flackern.

Da hab ich jetzt aber fuer mich keinen Grund gesehen, das so zu machen, 
so hell ist das Teil auch wieder nicht, ausserdem habe ich es nicht 
direkt am Bett. Machen koennte man das allerdings schon, man muesste 
lediglich die Software entsprechend erweitern.
1
  DISPLAY_PORT = 0x00;
2
  ACTIVATE_DISPLAY(active_display);
3
  DISPLAY_PORT = reverse(~display(current_status & 0x7F, current_status & (1 << 7),
4
          blank_zero));

Im Timer-Interrupt wird immer das aktuelle Display gewaehlt und (ueber 
die 0), der entsprechende Wert ausgegeben. Das heisst jedes Display ist 
ca. 1/200s (~ 5ms) aktiv, dann wird direkt auf das naechste 
umgeschaltet. Wenn Du es nur kurz anpulst, sagen wir 1ms, wird es 
dunkler, d.h. Du haettest dann ein Tastverhaeltnis von 1:5 geschaffen.

Gruss,
Michael

von Michael G. (linuxgeek) Benutzerseite


Angehängte Dateien:

Lesenswert?

Schaut uebrigens so aus, das ganze ;P Das mittlere Display zeigt ein 
blinkendes Minus an (Sekundentakt), ist aber zum Zeitpunkt des Bilds 
gerade aus gewesen. War ein echtes Spass-Projektlein ;)

von LukasZ (Gast)


Lesenswert?

Ah ich verstehe, ja besten Dank, werde mir mal deinen Quellcode 
durcharbeiten.

LukasZ

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Wenn Du Fragen dazu hast kannst Dich mal unter ICQ 307682079 melden. Mir 
ist heute sowieso etwas zu langweilig ;)

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Kleine Korrektur: Bei der momentanen Implemntierung ist die 
Multiplex-Frequez ca. 195Hz und die Pulslaenge betraegt ca. 1ms, dadurch 
dass es 5 Displays sind, die der Reihe nach durchgeschaltet werden.

von Andreas K. (derandi)


Lesenswert?

Nur mal so am Rande, mit den Dcf-77 Empfängern vom Conrad hab ich bisher 
die besseren Erfahrungen gemacht, der hat eine simple 
Spannungsstabilisierung und zwei fertige Transistorausgänge an Bord, 
einer invertiert und einer nicht invertiert.
Pollin ist eh nur Schrott und das Exemplar bei Reichelt hat nen Ausgang 
der nur ein paar µA treiben kann.

von Eddy C. (chrisi)


Lesenswert?

LukasZ schrieb:
> Aber auf der Seite ist nämlich auch diese Diode, bzw habe es ein-zu-eins
> übernommen, naja bis auf die Tatsache, dass ich die falschen Gatter
> ausversehen eingesetzt hatte ;) Aber muss ich trotzdem dann die Diode
> gegen einen Widerstand am besten tauschen?

Wichtig ist, dass Du den Schaltplan richtig abmalst. Nicht einfach aus 
einer Parallelschaltung eine Serienschaltung machen.

Wenn Du Piezo schreibst, geht der Betrachter davon aus, dass Du Piezo 
meinst. So ein Piezo benötigt allerdings eben keine Diode, aber 
andererseits den erwähnten Pushpull usw usf... Du musst Dich folglich 
entscheiden, was Du da tatsächlich anschließen willst: Piezo oder einen 
"echten" Lautsprecher mit einer Spule drinnen, dann können wir konkreter 
werden.

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
Noch kein Account? Hier anmelden.