Nixie Uhr

Die Idee zu diesem Projekt kam mir beim Lesen einer Elektor-Zeitschrift. Dort wurde mit Hilfe eines Atmel Controllers und eines Temperatursensors, ein Thermometer entwickelt, welches als Anzeigeelement Nixie-Röhren vom Typ IN-16 besitzt.

-> Die Röhren:

Wie oben bereits erwähnt, handelt es sich um Röhren vom Typ IN-16. Diese Röhren benötigen eine typische Brennspannung von 140V und eine Anodenspannung von 170V, weswegen diese Röhren nicht ohne weiteres betrieben werden können. Des weiteren darf zur Ansteuerung der Röhren nicht jeder x-beliebigen Treiberbaustein verwendet werden, da die hohe Spannung, welche im Sperrzustand des Treiberbausteins an den Transistoren anliegt, diesen Baustein zerstören kann. Es wird empfohlen einen original Nixie-Treiber vom Typ 74141 zu verwenden! Genauere Infos zu den Röhren gibt es unter dem unten stehenden Link.

-> Die Spannungsversorgung:

Da die Röhren, wie oben bereits erwähnt, eine typische Anodenspannung von 170V (Gleichspannung!) benötigen, brauche ich erstmal eine Schaltung die mir diese 170V generiert. Ich habe mich dazu entschieden die Originalschaltung aus der Elektor vom Januar 2011 zu verwenden. Diese Schaltung beinhaltet einen MC34063, welcher als Schaltregler fungiert und mir aus 12V Eingangsspannung eine Ausgangsspannung von 180V generiert. Außerdem benötige ich auch noch eine Spannung von 5V für den Mikrocontroller, die RTC und die Nixie-Treiber. Diese Spannung wird mit Hilfe eines Schaltreglers (R78B05 – Pinkompatibel zum 7805) erzeugt. Der Schaltplan für die Spannungsversorgung der Uhr sieht dann am Schluss so aus:
Spannungsversorgung Nixie Uhr
Spannungsversorgung

-> Der Steuerteil:

Der Steuerteil stellt das „Herz“ der Uhr da. Auf dem Steuerteil befindet sich ein Mega32 der Firma Atmel. Dieser Controller hat gleich mehrere Aufgaben zu erledigen. Zum einen dient er dazu die aktuelle Uhrzeit aus der RTC (DS1307) auszulesen und zum anderen hat er die Aufgabe in festgelegten Zeitintervallen (z.B. 1 Tag) das DCF Modul einzuschalten und sich mittels DCF-Signal zu synchronisieren.
Da die RTC sehr genau ist muss diese Synchronisation nicht all zu häufig angewendet werden. Sobald die Synchronisation abgeschlossen ist wird das DCF Modul wieder abgeschaltet. Anschließend wird die Uhrzeit als BCD-Wert auf die einzelnen Nixie-Treiber ausgegeben, welche dann die Nixie-Röhren ansteuern.
Das Resultat ist, dass die aktuelle Uhrzeit auf den Röhren zu sehen ist. Damit die Uhrzeit nicht verloren geht, wenn man den Stecker zieht, ist eine 3V Batterie mit auf die Platine integriert. Da diese Schaltung schon etwas mehr Bauteile benötigt, musste ich die Platine größtenteils in SMD bestücken (da die EAGLE Demo nur Platinen bis 100mm x 80mm unterstützt). Der Controller ließt die RTC ein mal in der Sekunde aus.
Dies wird dadurch realisiert, dass der SQW-Pin der RTC aktiviert wird und dieser auf 1Hz eingestellt wird. In der Zeit wo der Controller nichts zu tun hat soll er in den Sleep-Modus wechseln um Energie zu sparen.
Steuerteil SLP
Steuerteil

-> Adapter für die Röhren:

Um die Röhren vernünftig an das Steuerteil anschließen zu können wird ein Adapter benötigt, worauf die Röhren montiert werden. Angeschlossen wird die Platine über vier 14-polige Wannenstecker. Über den Pin 14 werden die 180V eingespeist und über die Pins 1-10 werden die Röhren mit dem Nixie-Treiber verbunden. Röhrenadapter Platine

-> Software:

Die Software besteht aus mehreren Unterprogrammen. Es gibt ein Unterprogramm um das Datum und die Uhrzeit in die RTC zu schreiben, eins um das DCF Modul auszulesen, eins um das Config-Register der RTC zu beschreiben, eins um die Uhrzeit auszulesen und eins um das Datum auf den Röhren auszugeben.
In der ISR von INT2 wird ein Flag gesetzt, welches in dem Hauptprogramm abgefragt wird. Wenn dieses Flag gesetzt ist wird die RTC ausgelesen. Dies geschieht 1x pro Sekunde.
Desweiteren wird eine Variable erhöht und sobald diese Variable den voreingestellten Wert erreicht hat, wird das Datum auf den Röhren ausgegeben (bei mir ist das alle 45 Sekunden). Am Ende des Hauptprogrammes wird der Mikrocontroller dann schlafen gelegt, um Strom zu sparen. Bei der Software muss darauf geachtet werden, dass die Uhrzeit vor dem Übertragen in die RTC in das BCD-Format übersetzt wird. Nach dem Auslesen steht die Uhrzeit in einer Variable und hat ebenfalls das BCD-Format. Da diese Variable aber direkt auf den Ports ausgegeben wird und sich dort BCD-Wandler befinden, ist dies mehr als optimal ;). Kleines Beispiel: Als Uhrzeit möchte soll für die Stunden 20 übertragen werden. Deswegen wird mittels

die Uhrzeit, die als 20 in der Variable „_hour“ gespeichert ist, in 0010 0000 umgewandelt und in der Variable „_hour“ gespeichert.
Dieser Wert kann nun an die RTC übertragen werden. Nach dem Auslesen steht in der Variable „Stunden“ der BCD-Wert der Uhrzeit (in dem Beispiel wieder von 20). Da diese Variable direkt an einem Port ausgegeben wird, liegt das Bitmuster 0010 0000 an dem Port an und die Nixie-Treiber wandeln diesen BCD-Code in die Zahl 2 und die Zahl 0 um. Als Ergebnis wird eine 20 angezeigt. Zusätzlich ist mir noch die Idee gekommen, dass es schön wäre wenn man in irgendeiner Form das Datum angezeigt bekommen könnte.
Aus diesem Grund habe ich beschlossen, dass in festgelegten Zeitintervallen das Datum als Laufschrift durch die Röhren wandert. Auf eine automatische Zeitumstellung verzichte ich bewusst, da das Funkmodul in der Uhr dies erledigen wird.
Im Unterprogramm „Showdate“ wird jede Zahl im Datum in eine BCD-Zahl umgewandelt und die zweistelligen Zahlen werden zerlegt und auf jeweils eine Variable aufgeteilt, sodass z.B. die Zahl 23 von den Tagen in zwei Variablen gespeichert ist (einmal die 2 in der Variable „Tage_Zehner“ und einmal die 3 in der Variable „Tage_Einer“). Die einzelnen Zahlen werden anschließend nacheinander von rechts nach links durch geschoben.

Warnhinweise:

Wie immer gilt….bei Experimenten mit Hochspannung müssen die Schutzmaßnahmen eingehalten werden! Ein Nachbau dieses Gerätes geschieht auf eigene Gefahr. Ich übernehme keinerlei Haftung im Falle eines Unfalls. Beim Einbau in ein Gehäuse ist darauf zu achten, dass die notwendigen Sicherheitsabstände zwischen Platine und Gehäuse eingehalten werden!

Dokumentation:

 

-> Zurück zu den Projekten

6 thoughts on “Nixie Uhr
  1. Pingback: Projekt Nixie Uhr: EAGLE Files für das Steuerteil sind online. | Kampis Elektroecke

  2. Hast du dir dazu deine eigenen Platinen geäzt oder waren das vorgefertigte Platinen? Wenn du die Platinen selbst gemacht hast, dann mit welchem verfahren?

  3. Hallo, bin auf der Suche nach Nixie Uhren auf deine gut gemachte Seite gekommen. Da du gerne mit Elektronik arbeitest hab ich eine Frage. Könntest du solch eine Nixie Uhr (gegen Bezahlung) bauen? Siehe Link
    http://www.youtube.com/watch?NR=1&v=RsaA3ruInaw&feature=endscreen
    Das fertigen der Mechanik (Schlagwerk, und alles andere) würd ich übernehmen.
    Leider konnte ich Schaltpläne u. Software dazu nicht finden.
    Eventuell könnte man über die Weckfunktion einen Schrittmotor ansprechen der dann zumindest die Mechanik und dann die Westminstermelodie spielt

    • Hey,

      tut mir leid. Für sowas fehlt mir leider die Zeit (Studium).
      Was genau meinst du mit Schlagwerk usw.? Die Uhr hat doch alles notwendige um die Uhrzeit anzuzeigen, Eine Weckfunktion würde sich auch noch implementieren lassen, wenn man den Schaltplan etwas ändert (paar Taster und einen Pieper einfügen). Natürlich muss die Software dem entsprechend angepasst werden.

      Gruß
      Daniel

  4. Hallo

    deine Schaltpläne und Layout´s lassen sich leider nicht bei mir mit eagle 6 öffnen.
    es steht immer Ungültige Datei.
    habe eine PRO Version.

    Gruß Heiko

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.