English version

Digitronové hodiny

    Úvod:
Po 22 letech bastlířského života jsem se konečně dostal ke stavbě toho, co by každý bastlíř někdy měl postavit. Digitronové hodiny jsou prostě takovou Mekkou bastlení :). Co to jsou digitrony popisuji podrobněji v tomhle článku.
    Funkce hodin:
Hodiny samozřejmě zobrazují čas. Ten zobrazují včetně sekund, protože bez pohybujících se sekund s číslicemi skákajícími do různých hloubek digitronu to prostě nejsou správné digitronové hodiny. Dále zobrazují i datum a den v týdnu. Umí počítat přestupné roky a automaticky přecházejí na letní a zimní čas. Nechybí ani budík s možností budit jednorázově, všední dny nebo každý den. Mají také digitální korekci rychlosti chodu a počítadlo provozních hodin, které je pro sledování životnosti digitronů velmi užitečné. V pravidelných intervalech dochází k rotaci číslic kvůli prevenci otravy katod. Manuálně také lze vyvolat trvalou rotaci pro regeneraci digitronů. K zobrazení jsem použil šest digitronů IN-12B (výška znaku 18mm) a jako tečky stejnosměrné doutnavky INS-1.
    Zapojení:
Hodiny mají šestimístný displej sestavený z digitronů IN-12B. Lze beze změny použít i IN-12A. Ty se liší jen absencí desetinné čárky, která zde není využita. Digitrony jsou řízeny tzv. síťovým duplexem. Je to obdoba dvoukrokového multiplexu, kde jedna půlperioda sítě rozsvěcí jednu skupinu cifer a druhá druhou. V tomto případě je zobrazení rozděleno na sudá a lichá místa. Výhodou tohoto zapojení je, že oproti statickému buzení se sníží počet budičů digitronů MH74141 ze šesti na tři. V porovnání s běžným multiplexem je zde také několik výhod. Není nutné aktivně spínat anody (každá anoda dva VN tranzistory) a není nutný tak velký pulzní proud pro dosažení požadovaného jasu, jako při šestikrokovém multiplexu. Klasický multiplex bývá problematický i z důvodu velkého napětí obdélníkového průběhu, které vlivem kapacitních proudů vyvolává slabý svit neaktivních číslic (duchy). U síťového duplexu k takovému problému nedochází, protože se pracuje se sinusovým průběhem napětí, nikoliv obdélníkovým. Odpadá tím i pečlivá filtrace napájecího napětí, typická pro klasický multiplex, a jakékoliv kondenzátory nabité na nebezpečné napětí. Jako oddělovač číslic slouží dvě dvojtečky tvořené doutnavkami INS-1. Jsou rozděleny do dvou dvojic zapojených v sérii. Jednu tvoří horní tečky, druhou dolní. To umožňuje použít dolní tečky jako tečky za datumem. Obě skupiny doutnavek jsou také spojeny do duplexu, takže k jejich řízení stačí jediný VN tranzistor T2.
    Jako řídící obvod byl zvolen Atmel AVR ATmega8A (ATmega8L). Ten zajišťuje všechny potřebné funkce pro provoz hodin. Pin PD3 (INT1) slouží k synchronizaci duplexu přes tvarovací tranzistor T1. Pokud by byl duplex prohozený (prohodí se zobrazení jednotek s desítkami), přepólujte primár nebo sekundár pomocného trafa. Trafo Tr1 (230V / 9V - 1,5VA) slouží nejen jako zdroj napájení pro logiku, ale také k rozlišení půlperiod. Stabilizaci napětí 5V zajišťuje tradičně obvod IO5 (7805) s malým chladičem. Aby nedošlo k vynulování hodin při výpadku sítě, nechybí jim ani zálohovací baterie. Ta má napětí 4,5V (popř. 3V, 3,6V nebo 3,7V). Já jsem použil tři AA články. Stačila by i mnohem menší baterie, protože spotřeba během zálohování je jen asi 9uA. Během provozu z baterie digitrony pochopitelně nesvítí a tak stačí napájet jen IO1, nikoliv hladové 74141, odebírající dle katalogu až 32mA, změřeno 24mA. Zpětnému toku proudu z baterie do budičů 74141 a do 7805 zabraňuje schottkyho dioda D1. Dioda D2 zabraňuje nechtěnému nabíjení baterie při provozu ze sítě.
    Piezoreproduktorek Rep1 zajišťuje zvukový signál budíku (alarmu). Lze ho nahradit indukčním reproduktorkem s kondenzátorem 1u v sérii. Budík funguje i při napájení z baterie. Hodiny se ovládají pomocí tlačítek TL1 a TL2. Pin PD3 (INT1) slouží kromě synchronizace duplexu i ke zjištění, zda je přítomno síťové napětí. Pokud nedojde po dobu 250ms k žádné změně úrovně, přejdou hodiny na úsporný bateriový provoz. Výstupy IO1 vedoucí do budičů 74141 a T2 jsou nastaveny na log 0. Obvod hodin je napájen ze sítě bez oddělení. Síťové napětí okolo 230V je přibližně to nejvhodnější napětí k napájení digitronů. Provoz bez oddělovacího transfomátoru je možný, pokud jsou celé hodiny uzavřené do vhodné bezpečné skříňky a žádná živá část není zvenčí přístupná. Zálohovací baterie musí být uzavřena a nepřístupná z venčí (nelze použít např. pouzdro pro baterii s dvířky). Tlačítka musí být dimenzována na 250Vac, protože nejde jen o napětí kontakt-kontakt, ale i napětí kontakt-člověk mačkající hmatník :). Digitrony samozřejmě nejsou odkryté, jsou pod bezpečným průhledným krytem. Konstrukce s odkrytými digitrony je dle mého názoru nejen nebezpečná (i v případě oddělení od sítě), ale také dost náchylná k poškození digitronů a v neposlední řadě značně anachronická (nevím o žádném zařízení z dob běžného používání digitronů, které by mělo digitrony odkryté). Samozřejmě je ale možné konstrukci doplnit o oddělovací transformátor. Hodiny napájené ze sítě bez oddělovacího transformátoru pochopitelně nelze připojit k programovacímu rozhraní, ale programování MCU lze provést mimo desku a nebo s použitím záložní baterie.
    Proud digitrony je zvolen co nejmenší pro prodloužení jejich životnosti. Některé datasheety uvádějí rozmezí proudu 2 - 3,5 mA a některé 2,5 - 3 mA. Minimum se tedy pohybuje kolem 2 - 2,5 mA. Příliš malý proud může způsobit, že se nerozsvítí celá katoda, ale jen její část. Při napájení pulzujícím proudem musí tedy špičkový proud přesáhnout alespoň na chvíli minimální hodnotu. Odpory R1 - R6 určují proud digitrony. Odpor R9 slouží k jemnému doladění proudu a lze ho vypustit. Úbytek digitronů IN-12B je cca 130V a špičkové napětí sítě je 325V, na odporech je tedy špičkové napětí 195V. Odpory jsou voleny tak, aby špičkový proud mírně přesáhl minimální provozní proud. R = UR šp. (195V) / Imin. (2-2,5mA). Pokud by proud nestačil ke správnému zobrazení, lze hodnoty odporů snížit. Já jsem zvolil špičkový proud cca 2,3mA (střední proud je cca 0,5mA). Ukázalo se, že to bohatě stačí ke správnému zobrazení i k dobré čitelnosti digitronů dokonce i za denního světla.
    Program:
Program digironových hodin je níže ke stažení v HEX souboru přímo pro nahrání do mikrokontroléru i jako zdrojový kód v Assembleru pro případné úpravy. Na obrázku níže je nastavení konfiguračních bitů mikroprocesoru v programu AVRISP i PonyProg. Hodiny jsou řízeny nízkofrekvenčním krystalem 32 768 Hz, který umožní nízkou spotřebu při provozu z baterie. MCU je taktován na 4MHz z vnitřního RC oscilátoru. V nečinnosti během síťového napájení hodin přechází IO1 do sleep módu Idle. Při bateriovém napájení hodin přechází během nečinnosti do módu Power Save, což umožní velmi nízkou spotřebu. Taktování MCU je v tomto stavu vypnuto a běží pouze asynchronní časovač/čítač 2. Zajímavostí je počítadlo provozních hodin. Aby nedošlo ke ztrátě údaje (24bit) ani při odpojení sítě i baterie, je ukládán do EEPROM a 8x za hodinu aktualizován. Aby nedošlo k brzkému opotřebení EEPROM (garantovaná životnost každého bajtu je 100 000 zápisů), používá se rozdělování zátěže (wear leveling). Pro nejnižší bajt je postupně střídáno 96 různých bajtů v EEPROM. Pro vyšší dva bajty to není potřeba, protože se aktualizují jen při přetečení nižšího. Ke 100 000. zápisu toho samého bajtu by došlo až po 137 letech trvalého provozu. Do EEPROM je ukládána také kompenzace krystalu. Při střídavém zobrazení data a času se cyklus opakuje po 7 sekundách. Číslo 7 bylo zvoleno, protože je nesoudělné s čísly 10 a 60, a tak nedochází k nerovnoměrnému opotřebení katod digitronů sekund při zobrazování času. Čas je v zájmu digitronů zobrazován déle, než datum, protože je to proměnlivější údaj.
    Ovládání:
Hodiny se ovládají pomocí tlačítek TL1 a TL2.
1. Zobrazení
Hodiny mají dva základní módy zobrazení. První z nich zobrazuje pouze čas ve tvaru "HH:MM:SS" (Hodiny:Minuty:Sekundy). Druhý zobrazuje střídavě čas a datum s periodou 7 sekund. Čas je vždy zobrazen po dobu 5 sekund a datum po dobu 2 sekundy. Datum je zobrazeno ve tvaru "DD.MM.0T" (Den.Měsíc.Den v týdnu). Den v týdnu je zobrazen pomocí jeho čísla (01 = pondělí ... 07 = neděle). Mezi těmito dvěma módy lze přepínat tlačítkem TL1. V obou módech se každých 49 sekund rotují číslice po dobu 1,25 sekundy.
2. Budík
Hodiny jsou vybavené budíkem. Tlačítkem TL2 postupně přecházíte mezi zobrazením času, času+data a čtyřmi kroky nastavení budíku: Hodiny budíku, desítky minut budíku, minuty budíku, mód budíku. K nastavení slouží tlačítko TL1. Módy budíku jsou: 0 - vypnutý, 1 - jednorázový, 5 - v pěti pracovních dnech, 7 - každý den. Nastavování budíku je indikováno střídavě blikajícími tečkami. Zvonící budík lze zastavit kterýmkoliv tlačítkem.
3. Nařizování
Dlouhým stiskem tlačítka TL2 se dostanete do procesu nařizování hodin. Postupně nařídíme hodiny, desítky minut, minuty, sekundy, rok, den, měsíc, den v týdnu a automatický přechod na letní a zimní čas (111111 = zapnuto, 000000 = vypnuto). K nastavování slouží TL1, k přepínání mezi jednotlivými kroky TL2. Po čtyřminutové neaktivitě se hodiny automaticky vrátí z nařizování do zobrazení čas+datum.
4. Automatický letní a zimní čas
Pokud je automatický přechod povolen, přesun na letní čas proběhne poslední neděli v březnu tím, že po 1:59:59 následuje 3:00:00. Přesun na zimní čas proběhne poslední neděli v říjnu tím, že po 2:59:59 následuje 2:00:00. (Dle pravidla platného pro téměř všechny evropské státy včetně ČR a SR od r. 1996.)
5. Speciální funkce
Dlouhým stiskem tlačítka TL1 se dostaneme ke speciálním funkcím. První z nich je test digitronů, při kterém na všech cifrách postupně běží číslice od 0 do 9. Lze použít i k údržbě digitronů (proti otravě katod). Stiskem TL2 se dostanete k další speciální funkci, což je kompenzace krystalu. Pokud hodiny nejdou přesně, můžete je seřídit v rozmezí -75 až +75 ppm s krokem 3ppm (3 miliontiny). Tlačítkem TL1 nastavíte hodnotu. Záporné hodnoty se zobrazují vlevo, kladné vpravo (např. -12ppm se zobrazí jako "12 00 00", +75ppm jako "00 00 75"). Ještě jedním stiskem TL2 se dostaneme do poslední speciální funkce, což je počítadlo provozních hodin. Zobrazuje celkovou dobu provozu zařízení (v hodinách). Následujícím stiskem TL2 se již dostanete zpět k zobrazení času. Počítadlo provozních hodin lze vynulovat tím, že při propojené drátové propojce DP1 dlouze stisknete tlačítka TL1 i TL2 současně. Tečky rychle zablikají a počítadlo se nastaví na 000000. Nulování se doporučuje provést pouze při výměně digitronů. Za normálních okolností tedy propojku DP1, povolující nulování, nepropojujte.
    Zkušenosti z provozu hodin:
20. 8. 2015 - prvních 1000h provozu bez poruchy, bez známek opotřebení.
31. 1. 2016 - 2000h provozu bez poruchy, bez známek opotřebení.

     Upozornění: Zařízení pracuje se životu nebezpečným síťovým napětím. Obvod není oddělen od sítě a všechny jeho části musí být vhodně izolované. Tlačítka musí být dimenzována na síťové napětí a záložní baterie nesmí být přístupná zvenčí. Mikroprocesor nesmí být připojován k programovacímu rozhraní při napájení ze sítě. Zařízení musí být vybaveno vhodnou pojistkou. Konstrukce je vhodná jen pro konstruktéry znalé zásad bezpečné práce se síťovým napětím. Vše děláte na vlastní nebezpečí. Autor nebere žádnou zodpovědnost za jakékoliv vaše újmy.

Celý program ke stažení:
Zdrojový kód v assembleru (ASM)
Přeložený v HEX souboru (2 900 Bajtů)
Zapisování programu do AVR se podrobněji věnuji zde.

Případným zájemcům mohu naprogramovaný mikroprocesor poslat. Více info zde.

Schéma digitronových hodin
Schéma digitronových hodin s AVR ATmega8A / ATmega8L. (Klikněte pro zvětšení)


Nastavení konfiguračních bitů v progamu PonyProg.
(Hexadecimální hodnoty jsou Low Fuse: E3, High Fuse: D1.)


Nastavení konfiguračních bitů v progamu AVRISP.

Hotové digitronové hodiny






















Digitronové hodiny během stavby


Sovětské digitrony IN-12B (ИН-12Б) z let cca 1987 - 1990.


Testy IN-12B.


Oválné patice pro IN-12B. Nejspíš to je typ PL31a-p (ПЛ31а-п) nebo SK-136. Jsou z roku 1983.


Srovnání digitronů při pulzujícím (jednocestně usměrněném bez filtrace) středním proudu 0,3mA a při stejnosměrném proudu 0,3mA. Při pulzujícím proudu se doutnavý výboj mnohem lépe rozdělí po celé katodě než při stejnosměrném proudu, ač střední hodnota proudu je stejná.


Doutnavky INS-1 - vyndávání ze starodávné krabice.


Průběh tvorby řídící desky


Vyřezávání děr pro patice


Tvorba desky s paticemi


První úspěšné spuštění.


Deska s ATmega8A, 3x MH 74141 a dalším


Více méně hotové digitronové hodiny, chybí skříň.


Animace naznačuje 50x zpomaleně, jak probíhá duplex.


Průběh proudu digitronem.


Krabice pro vestavbu digitronových hodin.


Volba trafa ze šuplíkových zásob.


Tohle se stane, když digitrony neteče dostatečný proud. Svítí jen část číslice.


Začíná vestavba do krabice








Zálohovací baterie. Stačily by daleko menší, ale když už, tak už :).











Video - téměř hotové hodiny, už je zbývá jen zaskřínit.



Přidáno: 27. 5. 2015
zpět na úvodní stránku