Zum Inhalt gehen.

Menü



Valid XHTML 1.0 Strict
Valid CSS
RSS der Elektroniker Bude abonnieren

PIC Binäruhr

Zugegeben eine Binäruhr ist schon etwas schräg, aber zum Üben ist sie optimal. Die Zeit muss nicht für die Anzeige aufbereitet werden, sondern kann direkt ausgegeben werden. Trotzdem bietet so eine Uhr noch genügend Herausforderungen. Für einen guten Sekundentakt wird ein 2,097152 MHz Quarz verwendet. Es wird eine Einstellmöglichkeit für die Uhrzeit benötigt und es darf natürlich auch eine Stromausfallsicherung nicht fehlen. Zusätzlich ist es möglich die Uhr mit dem DCF77 Signal synchron laufenzulassen.
Doch der Anfang ist die Schaltung.

Schaltung

Schaltplan der Binäruhr mit PIC 16F84A, nur die Kondensatoren fehlen noch.

Die Schaltung ist an sich sehr einfach. Die Transistoren links (NPN) schalten die Kathoden der Leuchtdiodenreihen, die Transistoren unten (PNP) die Anoden der LED-Reihen. Die LED-Vorwiderstände sind zwischen den PNP Transistoren und dem Plus-Anschluss der LEDs, da in diesen Reihen immer nur eine LED zur Zeit an sein wird. Die drei Taster werden auch nacheinander abgefragt, sie bekommen ihr positive Versorgung von den drei Ausgängen, die die NPN-Transistoren steuern und leiten es dann auf den Eingang weiter. Durch geschicktes Schalten der Ausgänge kommt man so mit wenig Pins am IC aus und kann trotzdem die 17 Leuchtdioden und die drei Schalter ansteuern bzw. abfragen.

Für den Fall, dass mal die Stromversorgung ausfallen sollte, wird der Doppelschichtkondensator (C3) verwendet, um die Versorgung zu übernehmen. Dazu wird der Transistor Q4 so verwendet, dass er den Eingang des PIC auf Vdd wechseln lässt, sobald im Kondensator C4 die Spannung unter etwa 2 Volt fällt. Der PIC kann dann die LEDs ausschalten. Der Doppelschichtkondensator hat dann genug Energie um den PIC alleine noch etwa 1,5 Stunden zu versorgen.

Der Festspannungsregler ist ein Low-Drop Linearregler, der gleichzeitig einen Verpolungsschutz bietet (bin mir aber nicht 100% sicher). Er ermöglicht es die Uhr mit 3 bis 9 Volt zu versorgen, da er bei kleiner Spannung nur 0,5 Volt Spannungsabfall hat, die Spannung in der Schaltung aber nicht größer als 5 Volt werden lässt. Die Diode D23 sorgt beim Stromausfall dafür, dass die Spannugsüberwachung spannungslos wird und der Doppelschichtkondensator nur den PIC versorgt.

Das DCF77-Empfangsmodul von Conrad ist extern in einem kleinen Gehäuse untergebracht, weil es sonst von der Schaltung zu stark gestört wird. Dazu sind die drei Anschlüsse unten im Schaltplan. Auf der Empfängerplatine selbst ist noch ein Pullup-Widerstand sowie eine Entstörung untergebracht. Verwendet wurde eine 3,5mm Kopfhörerbuchse, damit man den Empfänger auch während des Betriebs an oder abstecken kann wird in die Plusleitung noch vor der Buchse ein 100Ω Widerstand eingebaut und die Signalleitung noch mit einem 22kΩ Pullup-Widerstand ausgestattet. Dies sorgt dafür, dass es keinen Kurzschluss während des Steckvorgangs gibt, der Pullupwiderstand sorgt für einen definierten Pegel auch ohne den Empfänger. Es muss das nicht invertierte Signal (100ms oder 200ms high; 900ms oder 800ms low) eingespeist werden.

Die Lastkondensatoren für den Quarz sowie die Entstörkondensatoren wurden nicht in den Schaltplan eingezeichnet. Es wäre empfehlenswert noch einen ICSP-Anschluss vorzusehen. Zusätzlich wurde der Widerstand, der den MCLR auf Vdd zieht nicht mit eingezeichnet.

Nach dem Aufbau und einem Funktionstest der LEDs und Transistoren beginnt das Programmieren.

Foto der geöffneten Uhr.

Foto der geschlossenen Uhr im Dunkeln, es ist 19:43:18 Uhr.

Fotos der Uhr. Auf dem oberen Bild ist unten der ICSP-Anschluss zu sehen, welcher aus Platzgründen unter der IC-Fassung angelötet wurde. Auf dem unteren Bild sieht man, dass alle Leuchtdioden leicht leuchten, so ist die Zeit im Dunkeln besser abzulesen. Auf dem unteren Foto ist es gerade 19:43:18 .

Programm

Anmerkungen und Änderungen

Auch wenn das Programm bis jetzt fehlerfrei läuft, bin ich an einer kontinuierlichen Verbesserung interessiert. Wenn Du noch Teile erkennst, die man einfacher oder schneller machen kann, bin ich sehr daran interessiert.

Es stehen zwei Betriebsarten zur Verfügung. Die Uhr kann ohne DCF-Unterstützung nur durch den Quarz getaktet betrieben werden oder aber mit DCF-Unterstützung. Wenn die DCF Synchronisierung eingeschaltet ist, versucht die Uhr so oft wie möglich die Zeit zu empfangen. Fällt in diesem Modus der Empfang länger als 24 Stunden aus, dann wird dieses durch ein leichtes Flackern in der Anzeige signalisiert. Es wurde alles in einzelne Schleifen und Unterprogramme ausgelagert, die nur bei bedarf ausgeführt werden. Die einzelnen Module sind:

Alles Weitere zum Programm sollte man den Kommentaren im Programm entnehmen können. Die asm-Datei kann hier heruntergeladen werden.

Nachbauten

Josef aus Übersee am Chiemsee hat eine etwas verkleinerte Version der Uhr nachgebaut. Er hat mir freundlicherweise diese Bilder geschickt.

Das Bild zeigt die nachgebaute Platine von Josef sowie den DCF-Empfänger und den kleinen Transistorverstärker.

Als DCF77-Empfänger hat er ein Modul aus einem Funkwecker verwendet und einen eigenen kleinen Verstärker für das Signal gebaut.

Foto der Platine in der Detailansicht.

Die beiden Kondensatoren in der Mitte mit je 2200µF dienen der Stromausfallsicherung. Sie sollten reichen, um eine kurze Unterbrechung in der Versorgung auszugleichen.

Erstellt im März 09.