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
Peter H. schrieb: > Vielleicht findet ihr ja was. Irgendiwe fehlt mit die Masseverbindung der 170V und der 5V.
:
Bearbeitet durch User
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.
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.
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
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.
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
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.
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
Johnny S. schrieb: > Am Ausgang dann noch eventuell Schaltung mit >> BF238 Hochspannungstransistoren. Sorry BF259 sollte es heißen. ciao gustav
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
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.
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.
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
"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
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.
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
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.
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.
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.
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.
Selbst wenn man den Dekoder unbedingt von Hand stricken will, hätte es gereicht, die 2x4 Leitungen einmal zu invertieren - spart ~50 Gatter.
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?
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
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
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.
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
> 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.
Gabs da nicht einmal etwas ähnliches mit Fotos? "Mit unglaublich hohem Aufwand unglaublich miese Ergebnisse erzielen"
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.
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
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.
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.
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.
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...
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.
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
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
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ß.
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
> ... 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 ;-)
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.
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...
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.
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
Ich täte die Uhr einbetonieren. Beton hält ewig und sieht auch noch sehr gut aus und erhöht die Standfestigkeit.
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 :-(
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.
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...
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.
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?
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
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
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
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
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 | }
|
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
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"
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?
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
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 | }
|
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
>>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
Solang irgendwelche "Skripte" zusammenkopiert, bis es endlich läuft. Großartig!
Ä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.
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
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.
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
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
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.
Ä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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.