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
- 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 :-)
- die Gleichrichterdioden sind verkehrt geschaltet - multiplexe die 7-Segment-Anzeigen
Guck da mal rein: AVR-Tutorial: 7-Segment-Anzeige Da sparst Du Dir eine Menge Vogelfutter (PNP statt NPN etc.)
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
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
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.
> 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.
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
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
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
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
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.
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?
Ich muss mich den Anderen anschliessen - die ganzen IC an den 7-Segment-Anzeigen bringen Dir nicht einen einzigen Vorteil.
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
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?
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.
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
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
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 ;)
Ah ich verstehe, ja besten Dank, werde mir mal deinen Quellcode durcharbeiten. LukasZ
Wenn Du Fragen dazu hast kannst Dich mal unter ICQ 307682079 melden. Mir ist heute sowieso etwas zu langweilig ;)
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.