Forum: Analoge Elektronik und Schaltungstechnik Nixie Uhr Probleme :-(


von Peter H. (borntopizza)



Lesenswert?

Hi Zusammen,

ich bin gerade dabei eine Nixie Uhr zu bauen. Das Prinzip ist anders als 
die anderen Uhren, Ich benutze für jeweils 2 Röhren AND Gatter mit 4 
Eingängen, diese werden mit 4 GPIO Pins vom ATMega328 angesteuert. Die 
Gatter steuern dann Mosfets, die die Röhren mit Spannung versorgen.

Mein Problem ist, dass das eigentlich nicht wirklich funktioniert, hab 
ich hier einen Denkfehler? Theoretisch sollte ja eigentlich nur die 
Ziffer 1 der 3. Röhre leuchten, wenn ich noch keine GPIO Pins vom 
Mikrocontroller angeschlossen habe. Der 5V Spannungsregler wird einfach 
nur Heiss und alle Ziffern leuchten so ein bisschen. Im Schaltplan und 
bei den Platinen hatte ich noch vergessen einzuzeichnen, dass die GND 
von der Hochspannung, sowie der GND von den 5V verbunden sind, das habe 
ich noch mit einer lösen können.

Ich habs jetzt schon 4 mal neu aufgebaut und komme nicht weiter. Kann es 
an meinen AND oder Invertierer Gattern liegen?

Vielleicht findet ihr ja was.

Danke und Viele Grüße

Peter

von Michael B. (laberkopp)


Lesenswert?

Peter H. schrieb:
> Vielleicht findet ihr ja was.

Irgendiwe fehlt mit die Masseverbindung der 170V und der 5V.

: Bearbeitet durch User
von Mario M. (thelonging)


Lesenswert?

Michael B. schrieb:
> fehlt mit die Masseverbindung

Das schrieb er schon.

CMOS-Eingänge dürfen nicht offen gelassen werden, verbinde sie mit Masse 
zum testen. Besser noch: 10k Widerstand nach Masse und Schalter nach 
Vdd. Dann kannst Du die Funktion von Hand testen.
Es fehlen überall die Abblockkondensatoren.
Welche MOSFETs verwendest Du?

Peter H. schrieb:
> Ich habs jetzt schon 4 mal neu aufgebaut und komme nicht weiter. Kann es
> an meinen AND oder Invertierer Gattern liegen?

Was soll sich auch ändern? An den Gattern liegt es nicht, auch wenn es 
eine fürchterlich umständliche Konstruktion ist.

von Günter Lenz (Gast)


Lesenswert?

Peter H. schrieb:
>Der 5V Spannungsregler wird einfach
>nur Heiss

Kühlkörper vergessen?

>und alle Ziffern leuchten so ein bisschen.

Eingänge nicht offen lassen, ist ja schon
geschrieben worden. Ansonsten noch Widerstände,
vielleicht so 100kOhm von den Kathoden der Röhren
nach + schalten.

von Karl B. (gustav)


Lesenswert?

Peter H. schrieb:
> Die
> Gatter steuern dann Mosfets, die die Röhren mit Spannung versorgen.

Hi @borntopizza,
Die "echten" Nixieröhren sind, das weißt Du natürlich schon, wiederhole 
es hier nur noch einmal, wie Glimmlampen zu betrachten.
Das heißt, sie brauchen eine Zündspannung, die ist höher als die 
Brennspannung. Ist die Röhre gezündet,
braucht man einen geeigneten Widerstand, um die Röhre vor zu hoher 
Spannung zu schützen.
{VFDs sind wieder etwas total anderes. Oft werden die Begriffe 
miteinander verwechselt.}  (Der 5V betriebene SN7441 [BCD 1 aus 10 
Decoder] hatte tatsächlich Ausgänge, die die ca. 250 V aushalten und 
speziell für Nixieröhren konzipiert wurden.
Wenn bei den Röhren Ziffern ständig durchschimmern, ist bei der 
Ansteuerung etwas nicht richtig.

Dann kann ich das Schaltbild nicht entziffern.
Rate, dass es so eine Art eine Decodierschaltung ist.
Die Frage, die sich mir aufdrängt ist, warum machst Du das nicht
im Programm. OK, Multiplexen frisst Ressourcen. Der µP ist dann ständig 
damit beschäftigt, und nicht nur einmal pro Sekunde (oder Minute) 
Anzeige upzudaten.
Um das zu entschärfen, könnte man mit Decoder-Treibern und Latches CD 
4056 zum Beispiel arbeiten. Am Ausgang dann noch eventuell Schaltung mit 
BF238 Hochspannungstransistoren.
Fertig ist die Laube.

ciao
gustav

: Bearbeitet durch User
von Zeno (Gast)


Lesenswert?

Also soweit ich das im angehängten Schematik sehen kann, müßte bei nicht 
angeschlossenen GPIO-Pins die Null der 3.Röhre leuchten, sofern es sich 
bei den IC's um TTL-Gatter handelt, die bei offenen Eingängen ein 
logisches H erkennen.
Für alle anderen IC Familien mußt Du die Eingänge mit Widerständen auf 
ein logisches Potential legen, sprich Du darfst keine offenen Eingänge 
haben.

Was sind den das für IC's? Die Schaltung ist so groß da erkennt man 
nichts.

Sollte das ganze TTL sein, dann bekommst Du definitiv 
Lastfaktorprobleme. Der linke Schaltungsteil belastet Deine 
Ansteuerschaltung mit mit mindestens 16 Lasteinheiten. Das dürfte für 
den µC doch etwas zu viel sein, selbst wenn es CMOS-IC's sind. Ob er so 
viel Last steuern kann steht im Datenblatt.

Das Dein Spannungsregler heiß wird glaube ich gern. Du hast da 
wahrscheinlich einen 7805 im TO220 Gehäuse eingesetzt, aber genaues weis 
man nicht, da man es dem Schematik nicht entnehmen kann.
Wenn es TTL's sind dann braucht Dein Gattergrab eigentlich zu viel Strom 
für Deinen Regler. Was steht den überhaupt hinter dem Gleichrichter an 
Spannung an?

Wie Bist Du denn überhaupt auf die Idee gekommen das mit so einem 
Gattergrab zu machen? Für so etwas gibt es Decoder-IC's die sogar die 
Röhre direkt ansteuern können. Da braucht man genau ein IC von und 
steuert die Röhren im Multiplexbetrieb. Ein passender µC kann die 
Dekodierung auch selber machen, wenn Du wie in Deinem Falle 14 Ports 
frei hast.

Ansonsten kann ich Dir nur den Tip geben, baue Dir erstmal einen 
einfachen Logikprüfer und nehme dann die Schaltung Schritt für Schritt 
in Betrieb. Erst wenn Deine Logik so funktioniert wie es gewünscht ist, 
dann bestückt man die Röhren.

Wie soll Deine Logik überhaupt funktionieren? Der linke Teil müßte ja 
bis 59 zählen können. Mir erschließt sich da nicht wirklich wie das mit 
4 Bit gehen soll. Ich komme da nur auf 0-15.

Ich denke mal Du hast Dein Konzept nicht bis zu Ende gedacht. Die 
schönen LP's werden wohl für die Tonne sein.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hi,
ein ASM Progrämmchen zum Testen von Anzeigeeinheiten.
Hier allerdings Siebensegment.
Die Tabelle kann man doch easy umstricken.

Also nur ein Port wird geopfert bei 4-Stellen (Stunde bis Minute).
Und 4 Strobe/ Latch Enable Bits.

Uhrenschaltung selbst hat Du wohl doch viel besser realisiert im 
Programm, nehme ich einmal an.

ciao
gustav

von Zeno (Gast)


Lesenswert?

Ja Karl hat es im Prinzip gesagt und war halt einen Tacken schneller.

Jetzt habe ich es so halbwegs kapiert. Er rechnet für die Minutenanzeige 
mit 16 Ziffern und will das dann entsprechend kodiert (nacheinander) 
ausgeben. Das ist ja schon so ein bischen in Richtung Multiplex. Au so 
eine Idee muß man erst mal kommen.

von Johnny S. (sgt_johnny)


Lesenswert?

Karl B. schrieb:
>(Der 5V betriebene SN7441 [BCD 1 aus 10
> Decoder] hatte tatsächlich Ausgänge, die die ca. 250 V aushalten und
> speziell für Nixieröhren konzipiert wurden.
> Um das zu entschärfen, könnte man mit Decoder-Treibern und Latches CD
> 4056 zum Beispiel arbeiten. Am Ausgang dann noch eventuell Schaltung mit
> BF238 Hochspannungstransistoren.
> Fertig ist die Laube.

Bei der aktuellen Anzahl von IC könnte man auch hinter die SN7441 
jeweils noch ein TL595 oder ähnlich bauen 4xSN7441 + 2xTL595 sind auch 
nur 6 IC und man kommt mit 3 uP Pins aus.


Zudem Projekt muss ich leider sagen das ich es extrem schade finde dass 
man eine Uhr bauen möchte die wirklich nur die Uhrzeit anzeigen kann - 
also die Ziffern die man nicht bracht einfach nicht zu beschalten..


Nur so als bemerkung für ev. zukünfigte Projekte: Es gibt Shift-Register 
welche mit der hohen Spannung von Nixies zurecht kommen. Zb der HV5122

http://ww1.microchip.com/downloads/en/DeviceDoc/20005418B.pdf

Das einzige was man noch vorbauen muss ist ein Pegelwandler 5->12V. Mit 
einem passenden Sockel für den HV5122 kann das auch in THT verbaut 
werden

von Karl B. (gustav)


Lesenswert?

Johnny S. schrieb:
> Am Ausgang dann noch eventuell Schaltung mit
>> BF238 Hochspannungstransistoren.

Sorry BF259 sollte es heißen.

ciao
gustav

von Michael U. (amiga)


Lesenswert?

Hallo,

da ich irgendwie weder Röhrentyp noch MosFEt-Typ, Anaodenwiderstände 
erkennen konnte, halte ich mich da erstmal raus.
Da schon über Alternativ-Bauteile diskutiert wurde:
mit den TPIC6B595 kann man die gängigen Nixies direkt ansteuern.
Die Differenz von Brenn- und Löschspannung darf nicht höher als ca. 45V 
sein.

Gruß aus Berlin
Michael

von Der Superlöter (Gast)


Lesenswert?

Zeno schrieb:
> Also soweit ich das im angehängten Schematik sehen kann, ...
>
> Ich denke mal Du hast Dein Konzept nicht bis zu Ende gedacht. Die
> schönen LP's werden wohl für die Tonne sein.


Wo siehst Du da Langspielplatten?

Der TO soll mal erst einmal seinen Werktisch aufräumen!

Dann mal sein Konzept offenlegen.

So ein Murks in Vollendung habe die Chance noch nie gesehen.

von Zeno (Gast)


Lesenswert?

Der Superlöter schrieb:
> Wo siehst Du da Langspielplatten?

Du weist schon was ich meine! Ich rede üblicherweise deutsch und da ist 
die Abkürzung für das was ich meine nun mal LP und hat in diesem 
Zusammenhang nichts mit dem gleich bezeichneten Plastikteil zu tun, 
welche mehr oder weniger angenehme Töne erzeugt.

von Peter H. (borntopizza)


Lesenswert?

Danke schon mal für die Antworten,

Röhren sind Z5730M, die Widerstände 27k.

Als Mosfets habe ich TN2540N8 in der SMD Variante.
Die AND Gatter sind die 4082, die Invertierer 4069.
Der 5V Spannungsregler ist ein normal 78S05.

Ich hab jetzt auch mal versucht die Offenen Eingänge der Logik IC´s auf 
Masse zu legen, leider ohne Erfolg. Ich vermute dass die evtl. beim 
entlöten mit dem Heissluftföhn zu viel Hitze abbekommen haben. Ich hatte 
2 mal ausversehen falsch herum eingebaut, weswegen ich mir morgen mal 
neue AND und Invertierer Gatter besorgen werde.

Ich versteh leider nicht was mit den Lastfaktoreinheiten gemeint ist :-(

Eigentlich dürfte durch die Gatter doch so gut wie kein Strom 
fliessen...

Vergessen zu sagen dass ich zwei Trafos Rücken an Rücken habe um die 
Hochspannung für die Nixies zu erzeugen (mit 9V auf den 15V Eingang des 
2. Trafos ergibt rechnerisch ca. 194V nach dem Brückengleichrichter real 
sind es aber ca. 180V)

Ich würde später mit insgesamt 8 GPIO Pins vom Mikrocontroller die 
ganzen Nixies Steuern ( Immer 4 für 2 Röhren ), die Röhren funktionieren 
aufjedenfall.

Viele Grüße

Peter

: Bearbeitet durch User
von Christian S. (roehrenvorheizer)


Lesenswert?

"Ich versteh leider nicht was mit den Lastfaktoreinheiten gemeint ist 
:-("

https://www.elektronik-kompendium.de/sites/dig/0205282.htm

https://de.m.wikipedia.org/wiki/Fan-Out

mfG

von cpuser (Gast)


Lesenswert?

Karl B. schrieb:

> Die "echten" Nixieröhren sind, das weißt Du natürlich schon, wiederhole
> es hier nur noch einmal, wie Glimmlampen zu betrachten.

Sicher, sonst hätte er die Schaltung kaum entwickeln können.

> Das heißt, sie brauchen eine Zündspannung, die ist höher als die
> Brennspannung. Ist die Röhre gezündet,
> braucht man einen geeigneten Widerstand, um die Röhre vor zu hoher
> Spannung zu schützen.

Muß heißen "vor zu hohem Strom zu schützen" und die Widerstände (27k, 
wenn ichs richtig sehe) sind vorhanden, einer pro Röhre genügt.

> VFDs sind wieder etwas total anderes. Oft werden die Begriffe
> miteinander verwechselt.}

Von dir?

> (Der 5V betriebene SN7441 [BCD 1 aus 10
> Decoder]

Muß es denn unbedingt der unobtanium 7441 sein? Hat den schon mal jemand 
in Echt gesehen? Bekannt ist der 74141, aber auch der ist kaum noch 
aufzutreiben.

> hatte tatsächlich Ausgänge, die die ca. 250 V aushalten

Hatte er nicht! Woher hast du diese Angabe zum angeblichen 7441?
Nach meinen Informationen konnte dieser, wie auch der 74141 nur 60 oder 
70 Volt. Brauchte daher (eigentlich) immer eine recht umständliche 
Widerstandsbeschaltung um nur die Differenz zwischen Zünd- und 
Brennspannung abzubekommen.

> Wenn bei den Röhren Ziffern ständig durchschimmern, ist bei der
> Ansteuerung etwas nicht richtig.

Interessant!

> Dann kann ich das Schaltbild nicht entziffern.

Ist der Monitor schuld, oder sitzt das Problem davor?

> Rate, dass es so eine Art eine Decodierschaltung ist.

Supi!

> Die Frage, die sich mir aufdrängt ist, warum machst Du das nicht
> im Programm. OK, Multiplexen frisst Ressourcen. Der µP ist dann ständig
> damit beschäftigt, und nicht nur einmal pro Sekunde (oder Minute)
> Anzeige upzudaten.

Irgend etwas war da mit Nixie und Multiplex. Nicht gut.

> Um das zu entschärfen, könnte man mit Decoder-Treibern und Latches CD
> 4056 zum Beispiel arbeiten.

4056 ist ein (etwas exotischer) 7-Sengment Decoder. Was hat der an 
Nixies zu suchen.

> Am Ausgang dann noch eventuell Schaltung mit
> BF238 Hochspannungstransistoren.

Der BF238 "Hochspannungstransistor" verkraftet 40 Volt!?

> Fertig ist die Laube.

Deine Laube wird wohl bald zusammenbrechen.
Etwas mehr Sorgfalt bitte. Stell dir mal vor jemand nimmt das alles 
ernst was du hier so schreibst...

> ciao
> gustav

ciao

ps
Zum Glück war wohl schon die dritte Antwort die Richtige. Die floatenden 
Eingänge erklären sowohl das Verhalten der Anzeige als auch die hohe 
Stromaufnahme, daher warmen Spannungsregler.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

cpuser schrieb:
> Der BF238 "Hochspannungstransistor" verkraftet 40 Volt!?

Hi,
Thread ganz durchlesen ist vielleicht angesagt:
Denn:
Beitrag "Re: Nixie Uhr Probleme :-("

Da war die Korrektur schon drin.

Und:
habe selbst einen Frequenz/Ereigniszähler nach "Dr. Kleemann" -  oder 
wie der nun genau hieß-  bevor Siebensegment populär wurde damals in den 
frühen 80ern aufgebaut. Meine, die Thematik ist vielleicht ein wenig von 
der Praxisseite her nicht ganz fremd.
Mittlerweile ist der aber schon verschrottet worden, sonst hätte ich 
noch einmal genauere Messwerte liefern können, was nun genau am 7441 
bzw. 74141
oder FLL101 anliegt.

In der Bastelkiste müsste noch einer drin sein.;-)

ciao
gustav

: Bearbeitet durch User
von cpuser (Gast)


Lesenswert?

Karl B. schrieb:

>Da war die Korrektur schon drin.

o.k.

> Mittlerweile ist der aber schon verschrottet worden, sonst hätte ich
> noch einmal genauere Messwerte liefern können, was nun genau am 7441
> bzw. 74141
> oder FLL101 anliegt.

Ja, was da anliegt ist relativ egal. Fast alle Nixie Bastler hängen die 
Röhren direkt an die Ausgänge des 74141 und kümmern sich einen Dreck ums 
Datenblatt.
Scheint auch einige Zeit gut zu gehen, ist aber in jedem Fall weit 
außerhalb der Spezifikation der IC-Ausgänge.

von Johnny S. (sgt_johnny)


Lesenswert?

cpuser schrieb:
> Ja, was da anliegt ist relativ egal. Fast alle Nixie Bastler hängen die
> Röhren direkt an die Ausgänge des 74141 und kümmern sich einen Dreck ums
> Datenblatt.
> Scheint auch einige Zeit gut zu gehen, ist aber in jedem Fall weit
> außerhalb der Spezifikation der IC-Ausgänge.

Was soll man denn sonst machen? Diverse Geräte aus der Nixie-Röhrenzeit 
machen das genau so und funktionieren lange bzw. immernoch.

von Zeno (Gast)


Lesenswert?

Peter H. schrieb:
> Ich versteh leider nicht was mit den Lastfaktoreinheiten gemeint ist :-(

Dies beschreibt, bei TTL, wie viele Lasteinheiten ein Gatterausgang 
treiben kann und dabei die definierten logischen Pegel einhält.. 1 
Lasteinheit ist gleich 1 Gattereingang. Die meisten TTL Schaltkreise 
hatten Lastfaktor 10, d.h. an einen Ausgang kann man max 10 Eingänge 
anschließen.

Du benutzt zwar keine TTL, aber auch bei CMOS kann man nicht beliebig 
viele Gattereingänge an einen Ausgang anschließen. Bei CMOS ist die 
Eingangskapazität der begrenzende Faktor und der bei deren Umladung 
fließende Strom. Schau im Datenblatt nach, da steht so etwas drin. Wie 
es bei CMOS genau aussieht kann ich Dir nicht sagen, aber da gibt es 
hier genug Experten.

Peter H. schrieb:
> Eigentlich dürfte durch die Gatter doch so gut wie kein Strom
> fliessen...

Statisch nicht, aber dynamisch können schon größere Ströme fließen (s. 
auch oben)

cpuser schrieb:
> Hatte er nicht! Woher hast du diese Angabe zum angeblichen 7441?
> Nach meinen Informationen konnte dieser, wie auch der 74141 nur 60 oder
> 70 Volt. Brauchte daher (eigentlich) immer eine recht umständliche
> Widerstandsbeschaltung um nur die Differenz zwischen Zünd- und
> Brennspannung abzubekommen.

Die hatten 60V Sperrspannung. Die Röhren wurden über einen Vorwiderstand 
an ca. 200V gelegt. Durch eine Art Schutzschaltung wurde verhindert das 
an den Kollektoren der IC's mehr als 50V anliegen. Dazu wurde eine Diode 
(Anode Diode an Kathode der Röhre und Kathode Diode an +50V) benutzt. 
Durch diese Schaltung konnte das Kathodenpotenzial nicht größer als 50V 
werden.

cpuser schrieb:
> Irgend etwas war da mit Nixie und Multiplex. Nicht gut.

Gehen tut es schon, verkürzt halt die Lebensdauer. Bei einer Uhr die im 
Dauerbetrieb läuft, würde ich es nicht machen. Bei einem Zähler der nur 
bedarfsweise läuft könnte man drüber nachdenken. Allerdings arbeiten die 
meisten Geräte mit Nixies die ich kenne ohne Multiplex.

von cpuser (Gast)


Lesenswert?

Johnny S. schrieb:

>
> Was soll man denn sonst machen?

Man sollte die Angaben im Datenblatt beachten. Im vorigen Post wurde ja 
schon etwas dazu gesagt.

Die IC-Ausgänge werden beispielsweise über Dioden auf 60Volt begrenzt 
(geklemmt), die Annodenspannung sollte ziemlich genau der Zündspannung 
der Röhre entsprechen.
Bei (L-)aktivem Ausgang liegt die gesamte Spannung an der entsprechenden 
Kathode, bei inaktivem Ausgang 60 Volt weniger, was unter der 
Brennspannung liegt und zum abschalten der Kathode führt.


> Diverse Geräte aus der Nixie-Röhrenzeit
> machen das genau so und funktionieren lange bzw. immernoch.

Industriegeräte aus dieser Zeit? Kann ich mir kaum vorstellen. Aber 
vielleicht wurde auch damals schon Pfusch gebaut um ein paar Cent 
einzusparen. Beispiele würden mich interessieren.

von foobar (Gast)


Lesenswert?

Selbst wenn man den Dekoder unbedingt von Hand stricken will, hätte es 
gereicht, die 2x4 Leitungen einmal zu invertieren - spart ~50 Gatter.

von Peter H. (borntopizza)


Lesenswert?

Stimmt danke! :D ist mir irgendwie gar nicht aufgefallen

von Alex W. (Gast)


Lesenswert?

Dürfte ich anmerken, dass man Nixi-Röhren mit Gleichstrom betreiben 
sollte und nicht gepulst, was bei einem Multiplexer nun einmal der Fall 
ist?

von Marco H. (damarco)


Lesenswert?

ich darf auch anmerken das man immer nur ein Element ansteuern darf.. 
Die Ansteuerschaltung ist gelinde gesagt sch...  Auch das Layout würde 
in Anbetracht dessen überdenken.

Ich würde auch hier keine FETs verwenden.... Probiert man das nicht aus 
bevor man sich ans Layout wagt ? Jedenfalls ist die Ansteuerung stark zu 
überdenken... Praktisch funktionierende Beispiele gibt es genug im Netz 
und auch die Erklärung warum dies so gelöst wurde.

: Bearbeitet durch User
von Karl B. (gustav)


Lesenswert?

cpuser schrieb:
> Aber
> vielleicht wurde auch damals schon Pfusch gebaut um ein paar Cent
> einzusparen. Beispiele würden mich interessieren.

Hi,

https://www.ebay.ie/itm/Rohde-Schwarz-RS-FET-3-Empfangsfrequenzzahler-Nixie-Rohren-Zahler-OK-/361540387686

Versuche, an das Schaltbild ranzukommen. Mal schauen, was da gepfuscht 
wurde.

Ansonsten, hier schon eher, "nur" 68k-Widerstand für die ZM1000:
Das war meiner, nur die Platinen waren super und auf Steckverbinder.

http://www.jogis-roehrenbude.de/Leserbriefe/Thomas-Mueller-Nixie-Zaehler/Nixie-Zaehler.htm

Das Netzteil in der Version oben ist etwas eigenartig erst auf 12V 
runter, dann wieder rauf von 12V auf...und da ist nur die 
Spannungsangabe des Elkos mit 400V. Wohl eine Beschaffungsfrage.
Kann mich erinnern, dass ein Extra-Trafo für die Nixie-Anodenspannung 
220/220 V hatte und relativ groß war.

ciao
gustav

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Peter H. schrieb:
> Ich habs jetzt schon 4 mal neu aufgebaut und komme nicht weiter. Kann es
> an meinen AND oder Invertierer Gattern liegen?

Keine Ahnung, mit dem Schaltplan kann da keiner durchsehen.
Man darf Schaltpläne auch lesbar zeichnen, für Dekoder bieten sich Label 
an (A0, /A0, B0, /B0 usw.).

Für 4 Leitungen braucht man max 4 Inverter und keine ~20.
Mit 4 Leitungen kann man max 16 Zustände darstellen (0..15), wie willst 
Du damit 0..59 bzw. 0..23 anzeigen?

Nimm 4 oder 5 Schieberegister (4094 oder 74HC595) kaskadiert und mache 
die Dekodierung in Software.

von Peter D. (peda)


Lesenswert?

Karl B. schrieb:
> Sorry BF259 sollte es heißen.

Die 400V FETs sind doch gut, daran liegt es nicht.

von Karl B. (gustav)


Lesenswert?

Peter H. schrieb:
> Theoretisch sollte ja eigentlich nur die
> Ziffer 1 der 3. Röhre leuchten, wenn ich noch keine GPIO Pins vom
> Mikrocontroller angeschlossen habe. Der 5V Spannungsregler wird einfach
> nur Heiss und alle Ziffern leuchten so ein bisschen.

Hi,
sind Lötbrücken gänzlich auszuschließen?
Also, bei meiner Selbstbau-Uhr schlugen mal falsche Segmente durch, dann 
mal nicht.
Da die Anzeigeeinheit mit Steckverbinder aufgebaut worden war, konnte 
ich diese durch eine andere austauschen, und siehe da, der Fehler war 
weg.
Habe dann die defekte Anzeigeeinheit unter die Lupe genommen und stellte 
sog. "Tin-Whiskers" fest. Also fast mikroskopisch feine Lötbrücken.

ciao
gustav

von foobar (Gast)


Lesenswert?

> Mit 4 Leitungen kann man max 16 Zustände darstellen (0..15), wie
> willst Du damit 0..59 bzw. 0..23 anzeigen?

Er multiplext die 10er und 1er Digits: Zustand 0-9 für die 1er, 10-15 
für die 10er (hab jetzt nicht nachgeschaut, ob die Zuordnung exakt so 
ist). Für z.B. "23" gibt er abwechselnd 3 und 12 aus.

> Nimm 4 oder 5 Schieberegister (4094 oder 74HC595) kaskadiert und
> mache die Dekodierung in Software.

Jo. Er dürfte inzw gemerkt haben, dass sein TTL-Grab ziemlich unnötig 
ist. Statt 26 ICs reichen 4, die dann nicht nur eine statische Anzeige 
liefern, sondern auch noch weniger Controllerpins brauchen.

von Marc Horby (Gast)


Lesenswert?

Gabs da nicht einmal etwas ähnliches mit Fotos? "Mit unglaublich hohem 
Aufwand unglaublich miese Ergebnisse erzielen"

von Roland L. (Gast)


Lesenswert?

man könnte auch 4 CD4017 nehmen und kaskadieren. jede Minute ein 
Zählimpuls, zur vollen Stunde 41 Impulse und um Mitternacht ein Reset.
Zum stellen der Uhr gibt man ein Reset aus und dann entsprechend viele 
Impulse.
Das braucht nur zwei µC-Pins.

von Peter H. (borntopizza)


Lesenswert?

Naja von meiner Idee werd ich noch nicht so ganz abkommen, Platinen hab 
ich ja schon :D

Beim Nächsten Projekt mach ichs aufjedenfall anders !

"Ich würde auch hier keine FETs verwenden.... Probiert man das nicht aus
bevor man sich ans Layout wagt ? Jedenfalls ist die Ansteuerung stark zu
überdenken... Praktisch funktionierende Beispiele gibt es genug im Netz
und auch die Erklärung warum dies so gelöst wurde."

Wieso sollte ich denn keine FET´s verwenden können?

Ich werd morgen neue IC´s holen, sowie neue MOSFets. Dann werd ich mal 
schauen was so geht, wenn ich offenen Eingänge auf Masse lege. 
Lötbrücken sind natürlich nicht ausgeschlossen :-) werd aber versuchen 
so gut wies geht löten und dann auch die Platine Reinigen.

Viele Grüße

Peter

von Zeno (Gast)


Lesenswert?

Peter D. schrieb:
> Für 4 Leitungen braucht man max 4 Inverter und keine ~20.
> Mit 4 Leitungen kann man max 16 Zustände darstellen (0..15), wie willst
> Du damit 0..59 bzw. 0..23 anzeigen?

Ja da bin ich auch erst drüber gestolpert, aber es geht. Mal am Beispiel 
der Minuten (linker Schaltungsteil)
Er reserviert für den Zehner 5 Bitkombinationen u.a. mit folgender 
Kodierung:
   1111 --> 0
   0000 --> 1

Man kann es nur für 0 und 1 der Zehner, da man die Wertigkeit nicht im 
Plan sehen kann.
Er hat dann noch 10 Kombinationen für 0-9 in der Einerstelle übrig. 
Allerdings entbehrt die Zuordnung der Bitkombinationen jeglicher Logik 
bzw erschließt sich mir nicht.
Er realisiert da so eine Art Multiplex, d.h. er gibt die Zehner und 
Einer nacheinander aus.
Wie gesagt die Logik erscheint mir etwas wirr. Wenn ich es schon so 
gemacht hätte, dann würde ich es so machen:
     0000 - 1001 für 0-9 der Einer (ganznormaler Binärkode)
     1010 - 1111 für 0-5 der Zehner, also genau 10 bzw. 0xA verschoben, 
was
                 sich mit einem µC leicht berechnen und ausgeben läßt

Für die Stunden geht es analog.

Was er sich bei dieser Kodierung gedacht hat weis ich nicht. Auf alle 
Fälle muß da viel unnötig gerechnet werden.

von Zeno (Gast)


Lesenswert?

Peter H. schrieb:
> Naja von meiner Idee werd ich noch nicht so ganz abkommen, Platinen hab
> ich ja schon :D

Erst überlegen und dann Platine fertigen.

von Zeno (Gast)


Lesenswert?

Ach ja, es wäre gut wenn Du die Leitungen zum µC beschriften würdest. 
Vielleicht könnte man die Zeichnung dann besser lesen. Allerdings 
befürchte ich das es da dennoch unsinnige Zuordnungen gibt, denn 1111 
für 0 und 0000 für 1 macht eigentlich keinen Sinn, wenn man es richtig 
machen kann. Ebenso ist 0011 bzw. 1100 für 2 unsinnig. Wie herum die 
Bitfolge für 2 richtig ist kann man Deinem Plan leider nicht entnehmen.

von Esmu P. (Firma: privat) (max707)


Lesenswert?

Zeno schrieb:
> Peter H. schrieb:
>> Naja von meiner Idee werd ich noch nicht so ganz abkommen, Platinen hab
>> ich ja schon :D
>
> Erst überlegen und dann Platine fertigen.

Nö, erst überlegen, dann simulieren, dann Fehler suchen und 
beseitigen...

von Zeno (Gast)


Lesenswert?

Esmeralda P. schrieb:
> Nö, erst überlegen, dann simulieren, dann Fehler suchen und
> beseitigen...

Wenn der Ansatz falsch ist, bringt die Simulation auch nichts. Die 
Schaltung des TO funktioniert ja prinzipiell, d.h. man würde in der 
Simulation erst mal keinen Fehler finden. Die Schaltung ist wie schon 
mehrfach angesprochen viel zu aufwendig. Man benötigt nur 8 Inverter an 
Stelle von ≈50 - da wird das ganze schon deutlich übersichtlicher. Man 
kann sich eine logisch aufgebaute Kodierung ausdenken, was die Übersicht 
und Fehlersuche deutlich verbessert. Einen Schaltplan ordentlich 
zeichnen wenigstens mit Benennung der wichtigsten Signale. Mal eine 
Kodierungstabelle aufstellen. All das gehört zur guten Planung. Wenn man 
all das ordentlich macht braucht man keine Simulation mehr, zumindest 
nicht bei einer solch einfachen Schaltung.

von Michael U. (amiga)


Lesenswert?

Hallo,
man kann den Aufwand nahezu beliebig nach oben treiben, das bleibt 
natürlich jedem selbst überlassen.
Mein erste Nixie-Uhr war komplett diskret mit Transsitoren, incl. aller 
Teilerketten ab 100kHz mit Flip-Flops.
Heutesind es eben ein paar TPIC6B595 kskadiert, die Kathoden an den 
Ausgängen, Ansteuerung per Mega328 bzw. bei den anderen mit ESP8266.
So sind mehrere Uhren mit verschiedenen russischen Nixie-Typen und auch 
eine 4-Stellige mit Z570 bei einem Bekannten im Betrieb.

Gruß aus Berlin
Michael

von Karl B. (gustav)


Lesenswert?

Michael U. schrieb:
> Mein erste Nixie-Uhr war komplett diskret mit Transsitoren, incl. aller
> Teilerketten ab 100kHz mit Flip-Flops.

Zeno schrieb:
> Wenn der Ansatz falsch ist, bringt die Simulation auch nichts. Die
> Schaltung des TO funktioniert ja prinzipiell, d.h. man würde in der
> Simulation erst mal keinen Fehler finden. Die Schaltung ist wie schon
> mehrfach angesprochen viel zu aufwendig. Man benötigt nur 8 Inverter an
> Stelle von ≈50 - da wird das ganze schon deutlich übersichtlicher. Man
> kann sich eine logisch aufgebaute Kodierung ausdenken, was die Übersicht
> und Fehlersuche deutlich verbessert.

Hier findet man solch eine Aufbau, vor allem die
Anwendung von diskret aufgebauter Logik (ist das wohl jetzt RTL Resistor 
Transistor Logic)

https://sophisticatedcircuits.wordpress.com/category/empfangerbasteln-dcf77/

Zitat:
"...
Das Problem ist nun, eine möglichst einfache Schaltung zu finden, die 
der obigen Tabelle entspricht. Grundsätzlich ist es immer möglich, eine 
vorgegebene Wahrheitstabelle durch Kombinationen der grundlegenden 
Logikgatter zu realisieren. Wie es am einfachsten geht, ist schon eine 
kompliziertere Frage. Daher betrachten wir zunächst die 
Rahmenbedingungen: als Treiber für die einzelnen LEDs brauche ich in 
jedem Fall je einen NPN-Transistor (das verwendete Modul hat eine 
gemeinsame Anode pro Ziffer). Es ist naheliegend, dass der 
Treibertransistor zugleich als Oder-Gatter dienen kann, indem man ihn 
mit mehreren Basiswiderständen bestückt. Ich versuche also, für jedes 
Segment einen logischen Term der Form x \lor y \lor z \lor ... zu 
finden....
...Die Anzeigelogik für die Zehnerminuten und Zehnerstunden lässt sich 
übrigens deutlich vereinfachen, weil nur Ziffern bis 5 bzw. bis 2 
dargestellt werden ...
Für die Zehnerstunden sieht es noch einfacher aus..."

Zitat Ende


ciao
gustav


P.S.:
Meine "erste" Uhr muss ich mal rauskramen.
War aber schon mit 7490 etc. Die geplante Funkuhr wurde nie fertig bzw. 
lieferte meistens nur Lottozahlen. (Als das Sommerzeitbit eingeführt 
wurde wars ganz vorbei damit, das zusätzliche Monoflop für die 
Ausblendung der ersten 19 Sekunden war einfach zu unpräzise.)

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Ich glaub nicht, daß jemand bei dem schlechten Schaltplan das Gattergrab 
überprüft hat.
Einen 1 aus 16 Dekoder kann man besser aus 2 Stück 74HC238 aufbauen, 
wenn es denn unbedingt sein muß.

von Peter H. (borntopizza)


Angehängte Dateien:

Lesenswert?

So jetzt läufts so langsam, zumindest mal halb. Ich hab jetzt die Dritte 
stelle fertig, funktioniert auch (Pin 1 5V, Pin 2 + 3 + 4 GND => 8 
leuchtet). Strom brauchen die Gatter auch so gut wie nichts, 
Stromaufnahme war unter 5mA. Ich glaube das waren vorher irgendwelche 
mini Lötbrücken, die dafür gesorgt haben, dass der Festspannungsregler 
so hohe Ströme liefern musste.

Mir fehlen noch die restlichen MOSFets, die sollten morgen kommen. Beim 
Entlöten ist mir auch noch eine der Röhren kaputt gegangen, deswegen 
muss ich auch noch auf ersatz warten.

Ehrlich gesagt ist mir das gar nicht in den Sinn gekommen das ganze hier 
0000 0001 0010 usw. Logik aufzubauen. Werd ich beim nächsten mal 
aufjedenfall machen.

Viele Grüße

Peter

von foobar (Gast)


Lesenswert?

> ... gar nicht in den Sinn gekommen das ganze hier 0000 0001 0010 usw.
> Logik aufzubauen. Werd ich beim nächsten mal aufjedenfall machen.

Hoffentlich nicht! Beim nächsten mal solltest du versuchen, ne einfache 
und elegante Lösung zu bauen ;-)

von Esmu P. (Firma: privat) (max707)


Lesenswert?

Aha, den Tisch aufgeräumt und schon funktioniert es.

von Zeno (Gast)


Lesenswert?

Peter D. schrieb:
> Einen 1 aus 16 Dekoder kann man besser aus 2 Stück 74HC238 aufbauen,
> wenn es denn unbedingt sein muß.

Wieso 2x 74HC238? 1x 74HC154 reicht. Mit 2 74HC154 würde er seine 
komplette Uhr hinbekommen. Jeweils Ausgänge 0-9 für die Einerstelle 
10-15 bzw. 10-12 für die Zehnerstelle.

von Marco H. (damarco)


Lesenswert?

Also den ganzen Kram kann man auf einen µP zusammenschrumpfen. Wie schon 
gesagt per Latch oder auf IO Erweiterung mit SPI/I2c... bzw. auch LED 
Treiber . Selbst das Netzteil steuert der µP mit an und erzeugt die 
170V. So würde das keiner mehr bauen...

Das mit den FETs funktioniert zwar ist aber nicht schön gelöst. Im 
Fehlerfall landen die 170V auf der Logik. Bei deinen Netzteilkonzept 
gibt es dann kein halten mehr, das ganze fackelt dir ab.

Es gibt keinen Grund Fets zu verwenden...

von Peter D. (peda)


Lesenswert?

Marco H. schrieb:
> Es gibt keinen Grund Fets zu verwenden...

Doch, mit 5V kannst Du keine Nixies schalten. Du brauchst die FETs oder 
spezielle Treiber-ICs.
Und mit 400V sind die auch sicher, da kannst Du sogar Vornullen 
unterdrücken.

von Karl B. (gustav)


Angehängte Dateien:

Lesenswert?

Hi,
habe endlich das richtige Material gefunden und gleich ausprobiert

Beitrag "Propellerleim Isolationswiderstand"

Das ist in diesem Zusammenhang hier vielleicht insofern von Interesse,
dass bei etwas höherer Luftfeuchtigkeit an den 
Nixieröhrenfassungen/Sockeln bei den etwas höheren Spannungen leicht 
Kriechströme entstehen könnten, wogegen man etwas tun könnte.
Dem könnte man wie im Bild gezeigt (obwohl da ja wegen VFD-Röhren 
garnicht nötig) eventuell mit Beschichtungsmasse abhelfen.
Auch können sich dann nicht noch irgendwelche winzige Fremdkörper 
dazwischensetzen.

Peter H. schrieb:
> Ich glaube das waren vorher irgendwelche
> mini Lötbrücken,

weiterhin viel Spass

ciao
gustav

P.S.: Das Schöne daran ist, dass man das Zeugs auch wieder abpiddeln 
kann, wie oben rechts im Bild getan.

: Bearbeitet durch User
von easy (Gast)


Lesenswert?

Ich täte die Uhr einbetonieren. Beton hält ewig und sieht auch noch sehr 
gut aus und erhöht die Standfestigkeit.

von easy (Gast)


Lesenswert?

Früher nahm  man auch Schiefer, Marmor...

von Peter H. (borntopizza)


Lesenswert?

Was mir jetzt noch auffällt ist dass das ganze gar nicht funktionieren 
kann. Ich kann immer nur maximal 2 Röhren ansteuern. Man könnte die 
Röhren theoretisch auch mit hohen Frequenzen abwechselnd an und aus 
schalten. Aber da wird wohl eine neue Platine hermüssen :-(

von Peter D. (peda)


Lesenswert?

Peter H. schrieb:
> Aber da wird wohl eine neue Platine hermüssen :-(

Die kann dann ja auch deutlich kleiner werden, weil Du das 
Schaltkreisgrab gleich mit entsorgen kannst. Die FETs direkt an die 
74HC595 und fertig.

von Marco H. (damarco)


Lesenswert?

Peter D. schrieb:
> Marco H. schrieb:
>> Es gibt keinen Grund Fets zu verwenden...
>
> Doch, mit 5V kannst Du keine Nixies schalten. Du brauchst die FETs oder
> spezielle Treiber-ICs.
> Und mit 400V sind die auch sicher, da kannst Du sogar Vornullen
> unterdrücken.

Wäre mir neu das man mit bipolar Transistoren keine Nixies schalten 
könnte...

von Marc Horby (Gast)


Lesenswert?

Peter H. schrieb:
> Man könnte die
> Röhren theoretisch auch mit hohen Frequenzen abwechselnd an und aus
> schalten.

Das macht man nicht! Sowas steht aber irgendwo oben schon! Ganz ehlich? 
Das Projekt als Lehrgeld verbuchen, neuen Plan erstellen und alte 
Platine wegschmeissen. Die Nixis könnten überlebt haben.

von Peter D. (peda)


Lesenswert?

Marco H. schrieb:
> Wäre mir neu das man mit bipolar Transistoren keine Nixies schalten
> könnte...

FETs sind aber einfacher anzusteuern.
Warum sollte man sich noch die Notwendigkeit zusätzlicher 
Basiswiderstände aufbürden?

von Frank E. (ffje)


Lesenswert?

Ein µC und zwei MAX6921 reichen als ICs.

Royer-Converter mit zwei Ausgangsspannungen für:
1. etwas über min. Zündspannung
2. etwas (sicher) unter max. 70V (wg. MAX6921)

Zettel und Stift, um sich mal die Zusammenhänge der
Spannungen beim Betrieb der Nixies deutlich werden zu lassen;
der MAX6921 hat push-pull-Ausgänge -> braucht keine Klemmdioden.

mfG ffje

: Bearbeitet durch User
von Karl B. (gustav)


Lesenswert?

Peter D. schrieb:
> FETs sind aber einfacher anzusteuern.
> Warum sollte man sich noch die Notwendigkeit zusätzlicher
> Basiswiderstände aufbürden?

Hi,
die Funktion von NMOS musste ich auch erst kapieren.
Hatte die Russen-Uhren in Unkenntnis derselben nach alter Väter Sitte 
mit Transistortreibern und Invertern aufgebaut, und der Stromverbrauch 
lag bei mindestens 60 mA, bedingt durch die Pullups etc.
Jetzt braucht die Uhr selbst nur noch ca. 1 mA. Als Stabilisierung 
reicht eine einfache Zenerdiode mit relativ hochohmigem Vorwiderstand 
aus. Vorher brach die Spannung da immer zusammen, bzw. bei Verkleinerung 
der Widerstände wurde die Z-Diode heiß.
Im Batteriebetrieb ohne VFDs geht sie sogar runter bis auf 700 µA.
Die Gangreserve mit Batterie bei Stromausfall hält wesentlich länger als 
bei der anderen Uhr.
Es hat mir nur keiner richtig erklärt.
Also:
Open Drain- oder Open-Source-Technologie bedeutet,
es gibt am Ausgang des Treibers keinen definierten Pegel, so wie man das 
von beispielsweise TTL-Bausteinen (oder so) her kennt.
Der NMOS wird bei Anlegen einer negativen Spannung am Gate 
"niederohmig",
das heißt, dann kann Strom fließen, der durch den Aussenwiderstand 
begrenzt wird. Bei Wegfallen der negativen Spannung, wird der Ausgang 
hochohmig.
Dann nimmt der Ausgang das Potenzial an, was durch den Widerstand 
vorgegeben ist. Das heißt, die Ausgangslast ist nur bei Zustand 
"niederohmig" echt runtergezogen. Bei Stellung "hochohmig" dümpelt sie 
irgendwo so rum.
Hat aber auch den Vorteil, dass man, was ich nun überhaupt nicht 
"fressen" wollte, dass an den Ausgängen sogar die Polarität wechseln 
darf durch Anlegen von Spannungen über entsprechende Widerstände.
So kann man mit dem CD4056B auch LCDs "wechselspannungsmäßig" ansteuern.

Bezogen auf die Nixies sind die Dinge oben schon genannt.

ciao
gustav

: Bearbeitet durch User
von Peter H. (borntopizza)


Angehängte Dateien:

Lesenswert?

So hallo Freunde der Sonne :D,

gibt nochmal Neuigkeiten von der Bastel-front, das ganze funktioniert 
jetzt auch langsam.

Ich habe das ganze jetzt auch so angestellt dass
0000 = 0 , 0001 = 1, 0010 = 2, usw. ist.

Leistungsaufnahme der Schaltung liegt bei unter 5W!

Nun muss ich nur noch irgendwie versuchen ein DCF 77 Modul einzubinden, 
dann wäre ich zufrieden :-).

Viele Grüße

Peter

von Michael U. (amiga)


Lesenswert?

Hallo,

gratuliere zum Erfolg.
Ich bin trotzdem noch immer verwundert, wieviele Bauteile man heutzutage 
in einer Nixie-Uhr verbauen kann. Meine und die meines Bekannten haben 
da heutzutage wesentlich weniger Bauteile, sind allerdings auch nur auf 
Lochraster verdrahtet...

Gruß aus Berlin
Michael

von Peter H. (borntopizza)


Lesenswert?

Hallo zusammen,

ein DCF Modul habe ich nun auch so halb einbinden können. Nur leider nur 
so halb, wenn das DCF Signal gerade gestört ist, zeigt die Uhr entweder 
irgend einen Schrott an oder bleibt stehen.

Bei diesen herkömmlichen ALDI und co. Funkweckern reicht es ja wenn die 
einmal das Funksignal empfangen haben, die laufen ja dann ne gewisse 
Zeit mit ihrem eigenen Oszillator weiter.

Und genau sowas bräuchte ich auch.
Mir fehlen leider die Programmiertechnischen Kenntnisse um das zu 
realisieren, ich habe bisher nur einen Sketch gefunden den ich zum 
laufen gebracht habe. Der DCF-77 Sketch von der Arduino Website mit 
Librarys funktioniert bei mir nicht, da hat sich irgendwas an den 
Librarys geändert.

Ich habe dieses DCF 77 Modul von ELV, da musste ich noch das Signal 
invertieren damit das ging, hat auch ewig gedauert bis ich da drauf 
gekommen bin, ich hatte vorher das Modul von Reichelt.

Hier noch mein Sketch.

Vielleicht hat ja jemand ein funktionierendes Programm.

Danke und Viele Grüße
Peter
1
//https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/todo_florian_alles-hat-eine-genaue-zeit-dcf77-mit-dem-arduino?ls=de&cache=false
2
3
#define STATUS_PIN A2
4
#define DCF_PIN 11
5
 
6
int HIGH_Start = 0;
7
int HIGH_Ende = 0;
8
int HIGH_Zeit = 0;
9
int LOW_Start = 0;
10
int LOW_Ende = 0;
11
int LOW_Zeit = 0;
12
 
13
bool Signal = false;
14
bool neueMinute = false;
15
int BIT = -1;
16
int ZEIT[65];
17
int ZEIT_STUNDE;
18
int ZEIT_MINUTE;
19
int ZEIT_TAG;
20
int ZEIT_MONAT;
21
int ZEIT_JAHR;
22
int ZEIT_WOCHENTAG;
23
int PAR_STUNDE;
24
int PAR_MINUTE;
25
int PAR_BEGINN;
26
27
int stunden1;
28
int stunden2;
29
int minuten1;
30
int minuten2;
31
32
int W1=12;
33
int X1=13;
34
35
int W2=0;
36
int X2=1;
37
int Y2=2;
38
int Z2=3;
39
40
int W3=4;
41
int X3=5;
42
int Y3=6;
43
44
int W4=7;
45
int X4=8;
46
int Y4=9;
47
int Z4=10;
48
 
49
void setup() {
50
51
  pinMode(DCF_PIN, INPUT);
52
  pinMode(STATUS_PIN, OUTPUT);
53
54
  pinMode(W1, OUTPUT);
55
  pinMode(X1, OUTPUT);
56
  
57
  pinMode(W2, OUTPUT);
58
  pinMode(X2, OUTPUT);
59
  pinMode(Y2, OUTPUT);
60
  pinMode(Z2, OUTPUT);
61
  
62
  pinMode(W3, OUTPUT);
63
  pinMode(X3, OUTPUT);
64
  pinMode(Y3, OUTPUT);
65
  
66
  pinMode(W4, OUTPUT);
67
  pinMode(X4, OUTPUT);
68
  pinMode(Y4, OUTPUT);
69
  pinMode(Z4, OUTPUT);
70
  
71
72
}
73
 
74
void loop() {
75
  if (BIT > 60) {neueMinute = false;}
76
  int DCF_SIGNAL = digitalRead(DCF_PIN);
77
  
78
  if (DCF_SIGNAL == HIGH && Signal == false) {
79
    Signal = true; 
80
    HIGH_Start = millis(); 
81
    LOW_Ende = HIGH_Start;  
82
    LOW_Zeit = LOW_Ende - LOW_Start; 
83
    
84
    if (neueMinute == true) {
85
      PrintBeschreibung(BIT);
86
      //Serial.print("Bit"); 
87
      //Serial.print (BIT); 
88
      //Serial.print (": "); 
89
      ZEIT[BIT] = (BIT_Zeit(LOW_Zeit));
90
      
91
      //Serial.println ();
92
    }
93
    else {
94
95
    }
96
  }
97
 
98
  if (DCF_SIGNAL == LOW && Signal == true) {
99
    Signal = false; 
100
    HIGH_Ende = millis();  
101
    LOW_Start = HIGH_Ende; 
102
    HIGH_Zeit = HIGH_Ende - HIGH_Start; 
103
 
104
    NEUMINUTE(LOW_Zeit);
105
  }
106
107
108
}
109
 
110
int BIT_Zeit (int LOW_Zeit) {
111
   if (LOW_Zeit >= 851 && LOW_Zeit <= 950) {return 0;} 
112
   if (LOW_Zeit >= 750 && LOW_Zeit <= 850) {return 1;}
113
   if (LOW_Zeit <= 350) {BIT-=1;return "";}
114
}
115
116
void NEUMINUTE (int LOW_Zeit) {
117
  if (LOW_Zeit >= 1700) {
118
    BIT = 0;
119
    neueMinute = true;
120
    ZEIT_STUNDE = ZEIT[29]*1+ZEIT[30]*2+ZEIT[31]*4+ZEIT[32]*8+ZEIT[33]*10+ZEIT[34]*20;
121
    ZEIT_MINUTE = ZEIT[21]*1+ZEIT[22]*2+ZEIT[23]*4+ZEIT[24]*8+ZEIT[25]*10+ZEIT[26]*20+ZEIT[27]*40;
122
    PAR_STUNDE = ZEIT[35];
123
    PAR_MINUTE = ZEIT[28];
124
    ZEIT_TAG = ZEIT[36]*1+ZEIT[37]*2+ZEIT[38]*4+ZEIT[39]*8+ZEIT[40]*10+ZEIT[41]*20;
125
    ZEIT_MONAT = ZEIT[45]*1+ZEIT[46]*2+ZEIT[47]*4+ZEIT[48]*8+ZEIT[49]*10;
126
    ZEIT_JAHR = 2000+ZEIT[50]*1+ZEIT[51]*2+ZEIT[52]*4+ZEIT[53]*8+ZEIT[54]*10+ZEIT[55]*20+ZEIT[56]*40+ZEIT[57]*80;
127
    PAR_BEGINN = ZEIT[20];
128
129
    stunden1 = ZEIT_STUNDE /10;
130
    stunden2 = ZEIT_STUNDE %10;
131
132
    minuten1 = ZEIT_MINUTE /10;
133
    minuten2 = ZEIT_MINUTE %10;
134
135
    if (minuten2 == 0) {(digitalWrite(W4, LOW));(digitalWrite(X4, LOW));(digitalWrite(Y4, LOW));(digitalWrite(Z4, LOW));}
136
    if (minuten2 == 1) {(digitalWrite(W4, HIGH));(digitalWrite(X4, LOW));(digitalWrite(Y4, LOW));(digitalWrite(Z4, LOW));}
137
    if (minuten2 == 2) {(digitalWrite(W4, LOW));(digitalWrite(X4, HIGH));(digitalWrite(Y4, LOW));(digitalWrite(Z4, LOW));}
138
    if (minuten2 == 3) {(digitalWrite(W4, HIGH));(digitalWrite(X4, HIGH));(digitalWrite(Y4, LOW));(digitalWrite(Z4, LOW));}
139
    if (minuten2 == 4) {(digitalWrite(W4, LOW));(digitalWrite(X4, LOW));(digitalWrite(Y4, HIGH));(digitalWrite(Z4, LOW));}
140
    if (minuten2 == 5) {(digitalWrite(W4, HIGH));(digitalWrite(X4, LOW));(digitalWrite(Y4, HIGH));(digitalWrite(Z4, LOW));}
141
    if (minuten2 == 6) {(digitalWrite(W4, LOW));(digitalWrite(X4, HIGH));(digitalWrite(Y4, HIGH));(digitalWrite(Z4, LOW));}
142
    if (minuten2 == 7) {(digitalWrite(W4, HIGH));(digitalWrite(X4, HIGH));(digitalWrite(Y4, HIGH));(digitalWrite(Z4, LOW));}
143
    if (minuten2 == 8) {(digitalWrite(W4, LOW));(digitalWrite(X4, LOW));(digitalWrite(Y4, LOW));(digitalWrite(Z4, HIGH));}
144
    if (minuten2 == 9) {(digitalWrite(W4, HIGH));(digitalWrite(X4, LOW));(digitalWrite(Y4, LOW));(digitalWrite(Z4, HIGH));}
145
146
    if (minuten1 == 0) {(digitalWrite(W3, LOW));(digitalWrite(X3, LOW));(digitalWrite(Y3, LOW));}
147
    if (minuten1 == 1) {(digitalWrite(W3, HIGH));(digitalWrite(X3, LOW));(digitalWrite(Y3, LOW));}
148
    if (minuten1 == 2) {(digitalWrite(W3, LOW));(digitalWrite(X3, HIGH));(digitalWrite(Y3, LOW));}
149
    if (minuten1 == 3) {(digitalWrite(W3, HIGH));(digitalWrite(X3, HIGH));(digitalWrite(Y3, LOW));}
150
    if (minuten1 == 4) {(digitalWrite(W3, LOW));(digitalWrite(X3, LOW));(digitalWrite(Y3, HIGH));}
151
    if (minuten1 == 5) {(digitalWrite(W3, HIGH));(digitalWrite(X3, LOW));(digitalWrite(Y3, HIGH));}
152
153
    if (stunden2 == 0) {(digitalWrite(W2, LOW));(digitalWrite(X2, LOW));(digitalWrite(Y2, LOW));(digitalWrite(Z2, LOW));}
154
    if (stunden2 == 1) {(digitalWrite(W2, HIGH));(digitalWrite(X2, LOW));(digitalWrite(Y2, LOW));(digitalWrite(Z2, LOW));}
155
    if (stunden2 == 2) {(digitalWrite(W2, LOW));(digitalWrite(X2, HIGH));(digitalWrite(Y2, LOW));(digitalWrite(Z2, LOW));}
156
    if (stunden2 == 3) {(digitalWrite(W2, HIGH));(digitalWrite(X2, HIGH));(digitalWrite(Y2, LOW));(digitalWrite(Z2, LOW));}
157
    if (stunden2 == 4) {(digitalWrite(W2, LOW));(digitalWrite(X2, LOW));(digitalWrite(Y2, HIGH));(digitalWrite(Z2, LOW));}
158
    if (stunden2 == 5) {(digitalWrite(W2, HIGH));(digitalWrite(X2, LOW));(digitalWrite(Y2, HIGH));(digitalWrite(Z2, LOW));}
159
    if (stunden2 == 6) {(digitalWrite(W2, LOW));(digitalWrite(X2, HIGH));(digitalWrite(Y2, HIGH));(digitalWrite(Z2, LOW));}
160
    if (stunden2 == 7) {(digitalWrite(W2, HIGH));(digitalWrite(X2, HIGH));(digitalWrite(Y2, HIGH));(digitalWrite(Z2, LOW));}
161
    if (stunden2 == 8) {(digitalWrite(W2, LOW));(digitalWrite(X2, LOW));(digitalWrite(Y2, LOW));(digitalWrite(Z2, HIGH));}
162
    if (stunden2 == 9) {(digitalWrite(W2, HIGH));(digitalWrite(X2, LOW));(digitalWrite(Y2, LOW));(digitalWrite(Z2, HIGH));}
163
164
    if (stunden1 == 0) {(digitalWrite(W1, LOW));(digitalWrite(X1, LOW));}
165
    if (stunden1 == 1) {(digitalWrite(W1, LOW));(digitalWrite(X1, HIGH));}
166
    if (stunden1 == 2) {(digitalWrite(W1, HIGH));(digitalWrite(X1, LOW));}
167
168
    
169
  } else {BIT++;}
170
}
171
 
172
void PrintBeschreibung(int BitNummer) {
173
  switch (BitNummer) {
174
175
  }
176
}

von Karl B. (gustav)


Lesenswert?

Hi,
mit ASM-Programmieren kämst Du da weiter mit:

https://s-huehn.de/elektronik/wohnuhr/wohnuhr.htm

Reichhaltige Auswahl.
Das Umschalten zwischen Gangreserve und DCF77-Zeit habe ich mit 
verschiedenen Flags gelöst.
Voraussetzung:
Atmel µC mit Quarz nahe oder über 4 MHz
*Programm zählt per Interrupt
alles hoch auch Datum etc.
*Puffer als Schieberegister für die DCF77-Bits, so wie sie gesendet 
werden.
*Puffer zum Kopieren und Umordnen in die richtige BCD-Code Reihenfolge
Anfangsbedingung:
*Es wird generell hochgezählt ab Null
*wird nicht synchronisiert ab 59. Minute, gibt es Ausgabe der 
"Gangreserve"
 also Minute +1.
*mehrere Flagregister für Erkennen, ob Synchronisation erfolgt ist, wird 
gesetzt und in der Main-routine wieder zurückgesetzt, falls synchron.
*Dann Auswertung des Pufferinhalts und Ausgabe über Routinen.
*Fällt Empfang aus, ist das Flag wieder gesetzt und die Interruptroutine 
zählt den Pufferinhalt weiter.
*Ist Empfang wieder da, wird Flag gesetzt aber in der Mainroutine durch 
das andere Flag bei der Empfangsauswertung wieder gelöscht.
Unschön: 24:60 und dann 00:01 beim Datumswechsel.
Kommt also drauf an, wo man den Sprung zum Flagregister setzt oder 
nicht.
(Nicht hinter dem inc-Befehl, sondern davor.)


ciao
gustav

von Peter D. (peda)


Lesenswert?

Peter H. schrieb:
> Bei diesen herkömmlichen ALDI und co. Funkweckern reicht es ja wenn die
> einmal das Funksignal empfangen haben, die laufen ja dann ne gewisse
> Zeit mit ihrem eigenen Oszillator weiter.
>
> Und genau sowas bräuchte ich auch.

Beitrag "DCF77 Uhr in C mit ATtiny26"

von Zeno (Gast)


Lesenswert?

Glückwunsch wenn es jetzt läuft!

Du schreibst das Du die Logik jetzt so gemacht hast, wie ich es 
vorgeschlagen hatte, also 0000 > 0, 0001 > 1 usw. Hast hierfür eine neue 
LP gemacht oder die alte quasi angepasst?

von Peter H. (borntopizza)


Lesenswert?

Danke für die Antworten, das mit dieser AVR Geschichte muss ich mir 
nochmal genauer anschauen, ich habe sowas noch nie gemacht :-(, hab aber 
nächste Woche Urlaub :D

Ja ich habe neue Platinen machen lassen, die alten haben ja nicht 
funktioniert, da ich so theorethisch immer nur 2 Nixies gleichzeitig 
leuchten lassen hätte können.

Viele Grüße

Peter

von Peter H. (borntopizza)


Lesenswert?

So, ich hätte jetzt auch einen funktionierenden Code gefunden, bei dem 
die Zeit "weiterläuft", wenn das Signal gerade gestört ist etc. Das 
ganze hat bei mir NUR an Pin 2 funktioniert, irgendwo hatte ich gelesen 
dass das nicht an allen Pins geht.
Mein Problem ist, dass ich leider nicht die Werte "minute" und "hour" 
verwerten kann. Die werden hier nicht als Variablen angelegt, sondern 
sind irgendwie aus der TimeLib.h Library. Ich kann sie zwar am seriellen 
Monitor anzeigen, jedoch nicht "verwerten". Als Fehlermeldung kommt 
etwas in der Art: "invalid operands of types '<unresolved overloaded 
function type>' and 'int' to binary 'operator/'"

Gibt es hier irgend eine Möglichkeit die Werte in Variablen zu schreiben 
?

Danke und viele Grüße
Peter

Hier noch mein Code:
1
#include <DCF77.h>
2
//#include <Time.h> // Funktioniert nicht mit DCF77
3
#include <TimeLib.h> // neue lib einbinden
4
 
5
 
6
#define DCF_PIN 2                // Connection pin to DCF 77 device
7
#define LEDPin 13                // LED Output 
8
#define DCF_INTERRUPT 0          // Interrupt number associated with pin
9
#define timeinterval 2000        // in ms
10
time_t time;
11
// Non-inverted input on pin DCF_PIN
12
DCF77 DCF = DCF77(DCF_PIN,DCF_INTERRUPT, false); 
13
 
14
int timediv;
15
int oldtime; 
16
int minuten1;
17
int minuten2;
18
 
19
void setup() {
20
  Serial.begin(115200); 
21
  pinMode(LEDPin, OUTPUT);
22
  DCF.Start();
23
  Serial.println("Waiting for DCF77 time ... ");
24
  Serial.println("It will take at least 2 minutes before a first time update.");
25
  oldtime = millis();
26
27
}
28
 
29
void loop() {
30
  timediv = millis()- oldtime;
31
  digitalWrite(LEDPin, digitalRead (DCF_PIN));
32
  time_t DCFtime = DCF.getTime(); // Check if new DCF77 time is available
33
  if (DCFtime!=0)
34
  {
35
    Serial.println("Time is updated");
36
    setTime(DCFtime);
37
  }    
38
  if (timediv >= timeinterval){
39
    oldtime = millis();
40
    digitalClockDisplay();  
41
  }
42
}
43
 
44
void digitalClockDisplay(){
45
  // digital clock display of the time
46
47
    minuten1 = minute /10;
48
    minuten2 = minute %10;
49
50
  
51
  Serial.print(hour());
52
  printDigits(minute());
53
  printDigits(second());
54
  Serial.print(" ");
55
  Serial.print(day());
56
  Serial.print(" ");
57
  Serial.print(month());
58
  Serial.print(" ");
59
  Serial.print(year()); 
60
  Serial.println(); 
61
  Serial.println("stunden11");
62
  Serial.print(stunden11); 
63
64
}
65
 
66
void printDigits(int digits){
67
  // utility function for digital clock display: prints preceding colon and leading 0
68
  Serial.print(":");
69
  if(digits < 10)
70
    Serial.print('0');
71
  Serial.print(digits);
72
}

von Peter H. (borntopizza)


Lesenswert?

So habs doch hinbekommen,

das ding funktioniert nun endlich, also auch wenn der DCF Empfang gerade 
schlecht / gestört ist, und sieht auch einigermaßen okay aus. Die Trafos 
sind völlig überdimensioniert (25VA), die ganze Uhr braucht nur 4 W!
1
   
2
   uint8_t m = minute();
3
   minuten1 = m /10;
4
   minuten2 = m %10;
5
   uint8_t s = hour();
6
   stunden1 = s /10;
7
   stunden2 = s %10;

Viele Grüße
Peter

: Bearbeitet durch User
von Hannes (Gast)


Lesenswert?

>>und sieht auch einigermaßen okay aus

soll heißen? die Uhr sieht gut aus, oder die Funktion ist okay wenn kein 
DCF vorhanden? Ist das eine Frage oder nur eine Anmerkung?

>>Die Trafos sind völlig überdimensioniert (25VA), die ganze Uhr braucht nur 4 W!

soll heißen? warum hast du sie denn überdimensioniert, bzw. wo ist das 
Problem?

Gruß
Hannes

von Äxl (geloescht) (Gast)


Lesenswert?

Solang irgendwelche "Skripte" zusammenkopiert, bis es endlich läuft. 
Großartig!

von Zeno (Gast)


Lesenswert?

Äxl (geloescht) schrieb:
> Solang irgendwelche "Skripte" zusammenkopiert, bis es endlich läuft.
> Großartig!

Es gibt halt Leute die diesbezüglich Anfänger sind oder wirklich nur das 
eine Projekt machen wollen. Da darf man auch mal was zusammen kopieren. 
Und vergiß mal auch nicht das das Arduinoprojekt für Leute gemacht 
wurde, die sich nicht mit den Datenblättern der Controller 
auseinandersetzen wollen oder können.

von Michael U. (amiga)


Lesenswert?

Hallo,

naja für den Materialaufwand den er da verbaut hat kann er auch nicht so 
richtig Anfänger sein.

PS: mein Lieblingswandler für Nixies zur Zeit:
https://www.ebay.de/itm/DC-5V-12V-to-170V-DC-High-Voltage-NIXIE-Power-Supply-Module-PSU-NIXIE-TUBE-ERA/253719622494?hash=item3b12de335e:g:XsoAAOSwNxlbNnxl

Ich war erst im Zweifel, ob man dem Stück Würfelzucker wirklich trauen 
kann...
Positive Überraschung: stabil seit ein paar Monaten 24/7 Betrieb, guter 
Wirkungsgrad, keine merkliche Erwärmung.

Gruß aus Berlin
Michael

von Äxl (geloescht) (Gast)


Lesenswert?

Ich will bei sowas immer etwas lernen.
Muss jetzt ne Bahnhofsnebenuhr ansteuern (24V).
Weil ich mich mit der Thematik auseinandersetze, weiss ich in etwa, wie 
ich die Sache bewerkstelligen muss. So lernt man von Projekt zu Projekt. 
Aber gut: ich mach das ja auch schon 'ne ganze Weile und zu meiner Zeit 
musste man sich mitm Modem bei Freenet ins internet einwählen.
Da wächst ja nun eine ganz andere Generation nach.
Dann ist das jetzt wohl so.
Sorry - wollte nur mein "unverständniss" zum Ausdruck bringen und 
niemanden persönlich angreifen.

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

Äxl (geloescht) schrieb:
> Muss jetzt ne Bahnhofsnebenuhr ansteuern (24V).

keine Bahnhofsuhr, aber auch Minutenspringer 24V. Macht bei mir ein 
ESP8266 (Wemos D1 mini) mit einer H-Brücke dahinter. Die Spannung 
erzeugt ein China-StepUp, Versorgung aus einem 5V USB-Ladenetzteil, 
Uhrzeit per WLAN/NTP.
0:00 Uhr Kontakt nachgerüstet, könnte sich pronzipiell komplett selbst 
stellen. Da sie nicht nachschauen kann, wo sie steht, muß sie dazu aber 
komplett auf 0:00 Uhr laufen (maximal schafft sie 2 Schritte/s 
zuverklässig).
Nutze ich letztlich aber nicht, der ESP hat einen Webserver drauf und 
ich sage der Software per Webbrowser, was die Uhr nach einen Netzausfall 
anzeigt.
Die Software netscheidet dann nur, ob sie wartet bis die aktuelle Zeit 
ran ist oder im Schnellauf da hinläuft.
War beim Software testen schneller und seitdem mußte ich da nie wieder 
eingreifen, sie geht eben einfach. ;)

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Äxl (geloescht) (Gast)


Lesenswert?

nen WLAN-Knoten aufsetzen. Hab ich noch nie gemacht. Uhrzeit vom 
Timeserver ausm internet?
stromtuner<ät>gmx.de
schickst Du mir was dazu? danke...
LG
Äxl Real

von Zeno (Gast)


Lesenswert?

Michael U. schrieb:
> naja für den Materialaufwand den er da verbaut hat kann er auch nicht so
> richtig Anfänger sein.

Sagen wir mal so hardwaretechnisch hat er sich mit der Sache schon 
auseinander gesetzt und auch eine Lösung gefunden, die mittlerweile auch 
funktioniert. Bis hierher hat er erst mal Stehvermögen bewiesen.

Deshalb muß aber Software noch lange nicht sein Ding sein. Denke mal er 
hat einen Arduino in die Hände bekommen und dann überlegt was er damit 
Sinnvolles machen kann.
Wenn er bei SW genauso hartnäckig bleibt wie bei HW, wird er auch bald 
so weit sein, das er nicht mehr zusammen kopiert.

von Zeno (Gast)


Lesenswert?

Äxl (geloescht) schrieb:
> Sorry - wollte nur mein "unverständniss" zum Ausdruck bringen und
> niemanden persönlich angreifen.

Naja Du warst ja noch halbwegs moderat - da gibt es hier ganz andere 
Kaliber. Deshalb ja auch mein kleiner Anstoß noch mal drüber 
nachzudenken, mit dem ich Dir natürlich auch nicht auf die Füße treten 
wollte. Hoffe es ist nicht so rüber gekommen.

von Michael U. (amiga)


Angehängte Dateien:

Lesenswert?

Hallo,

Zeno schrieb:
> Wenn er bei SW genauso hartnäckig bleibt wie bei HW, wird er auch bald
> so weit sein, das er nicht mehr zusammen kopiert.

Da stimme ich Dir 100% zu. Ist auch weniger Kritik an seiner Hardware 
usw. Mich hat mehr die Frage beschäftigt, warum man heute noch 
freiwillig diesen Aufwand betreibt.

Äxl (geloescht) schrieb:
> nen WLAN-Knoten aufsetzen. Hab ich noch nie gemacht. Uhrzeit vom
> Timeserver ausm internet?

Kein wirkliches Problem, wäre vielleicht besser in einem eigenen Thread 
aufgehoben.
Ich habe trotzdem mal einen Arduino-Sketch angehängt.
WLAN-Connect, NTP-Einbindung und dann schickt er alle Sekunde die Zeit 
über die serielle.

Gruß aus Berlin
Michael

von Zeno (Gast)


Lesenswert?

Michael U. schrieb:
> Ich habe trotzdem mal einen Arduino-Sketch angehängt.
> WLAN-Connect, NTP-Einbindung und dann schickt er alle Sekunde die Zeit
> über die serielle.

Hi Michael! Den Sketch schau ich mir gern mal an, den so etwas habe ich 
auch noch nicht gemacht.

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.