Digitronové hodiny s budíkem… a kukačkou

Digitronové hodiny jsou v poslední době ikonou. Asi díky tomu, že éra digitronů už je dávno pryč, jsou takové hodiny často považovány za něco výjimečného a lze pořídit především luxusní velmi drahé kousky. Asi by mě samotného nikdy nenapadlo je vyrábět. Ale dostal jsem několik impulsů, po kterých jsem už prostě nemohl jinak. Kolega mi daroval šest digitronů ZM1082T. Zhlédl jsem video o digitronových hodinách s kukačkou. K1 mi daroval budiče digitronů Tesla MH74141.

No a když už hodiny, tak určitě s budíkem a kukačkou, jako ve výše zmíněném videu. A ještě k tomu řízené signálem DCF77. Postavil jsem je na Arduino Mega 2560 Pro. Tenhle model Arduina má dostatek IO pinů, abych mohl přímo ovládat všechny digitrony bez nutnosti multiplexu a ještě měl rezervu na ostatní periferie.

Jako relevantní zdroj pro vytvoření zvuku kukačky jsem využil studii Male common cuckoos use a three-note variant of their “cu-coo” call for duetting with conspecific females jejímiž autory jsou maďarští výzkumníci Csaba Moskát a Márk E. Hauber. Tato studie vyšla ovšem teprve v roce 2021. Hodiny s kukačkou vyráběné před tímto datem musely tedy tón kukačky generovat na základě nějaké dřívější studie, a nebo, nedej bože, generovaly tón na základě nějakých nevědeckých zdrojů! Pro zjednodušení jsem nejprve využil pouze dvoutónovou variantu kukání ve dvou tóninách na horním a dolním okraji spektra definovaného v uvedené studii. Ovšem po několika dnech, kdy jsem byl doma vystaven dvoutónovému kukání jsem svůj zjednodušený pohled na svět přehodnotil. Již jsem dál nemohl přehlížet nové poznatky maďarských odborníků a proto jsem pro čtvrthodinové kukání implementoval třítónovou variantu.

hodiny

Arduino tedy budí digitrony prostřednictvím 3 portů (24 pinů) – každý pár digitronů zobrazuje 1 byte v BCD kódu, tedy na 1 digitron 1 nibble. Další 4 piny slouží k obsluze LED diod mezi digitrony, bylo by tedy možné ovládat každou LED jednotlivě. Jeden pin ovládá LED indikaci budíku. Dva piny generují tón pro reproduktor. Jeden z nich generuje kukání – jeho výstup je veden na koncový zesilovač přes dolní propust, aby se omezily vyšší harmonické kmitočty a tón nezněl příliš strojově. I tak to má k živé kukačce hodně daleko. Ten druhý generuje tón budíku, zde jsem naopak chtěl drnčivý zvuk, proto je koncový zesilovač buzen obdélníkem přímo z Arduina. Další dva piny ovládají dvoubarevnou LED, která signalizuje příjem DCF signálu. To je velmi užitečné pro nalezení správné polohy antény DCF přijímače.

Jeden pin slouží jako vstup pro tlačítko budíku, dva piny pro enkodér k nastavování budíku, jeden pin tlačítko enkodéru, jeden pin vstup DCF signálu, 4 piny vstupy pro „myší piáno“ k nastavování různých funkcí.

Jako časový obvod jsem použil RTC modul s čipem DS1307 a baterkou. Pro příjem signálu DCF77 jsem rovněž koupil hotový modul.

Firmware pro Arduino jsem vytvořil s využitím knihoven pro DCF77 a DS1307, nicméně z těchto knihoven jsem použil pouze části zdrojového kódu, které jsem navíc výrazně přepracoval, abych firmware co nejvíce zjednodušil. Hlavní problém jsem viděl v tom, že tyto knihovny pracovaly s timestampem – počtem sekund od začátku epochy. Přitom DCF77 poskytuje data v BCD kódu, DS1307 taktéž ukládá a poskytuje data v BCD kódu no a konečně pro zobrazení na digitronech je také potřeba výstup v BCD kódu. Veškeré informace o datumu a času jsem tedy napříč celým firmwarem ponechal pouze v BCD kódu a vyhnul jsem se tak přepočtům na timestamp a zpět.

Další trošku větší výzvou byl napájecí zdroj. V první verzi jsem počítal s normálním asi 15W trafem z 230V na 9V, které by dávalo vyhlazených 12V pro koncový zesilovač a stabilizovaných 5V pro ostatní elektroniku. Střídavým napětím 9V jsem napájel původně sekundární vinutí menšího trafa 230/12V/5W, na jehož výstupu bylo po usměrnění a vyhlazení přes 200V pro digitrony. Tohle jsem vyrobil, ale nakonec jsem to nepoužil. Bylo to moc velké. A moc se mi nelíbilo, že mi do mého krásného zařízení povede ošklivých 230V ze sítě. Jako druhou verzi jsem proto vytvořil zdroj, který je napájený stejnosměrnými 18V ze starého zdroje k notebooku. Odběr je cca. 400 mA, ten zdroj dá přes 4A, má tedy obrovskou rezervu. Z těchto 18V je stabilizováno 17V pro koncový zesilovač (původně jsem plánoval napájení 24V ss, proto ta stabilizace, nakonec je to pouze ochrana koncového zesilovače proti přepětí, pokud by někdo omylem připojil zdroj s vyšším napětím). Dále je stabilizováno 5V pro ostatní elektroniku. A pomocí boost měniče je z těchto 18V vyráběno anodové napětí pro digitrony.

Jádrem boost měniče je obvod UC3842, který pracuje na kmitočtu cca 55kHz a budí výkonový MOSFET. Zvolil jsem typ 2SK1377, který vydrží napětí 400V a má v sepnutém stavu odpor menší než 1 ohm. Vyzkoušel jsem několik tlumivek a jako nejvhodnější jsem vybral tlumivku 1mH na feritovém EE jádru (pravděpodobně s mezerou) asi z nějakého starého PC zdroje. Přes odporový dělič je z výstupu zdroje zavedena zpětná vazba do UC3842, která stabilizuje výstupní napětí. Zde poznamenám, že napájecí napětí digitronů jsem z původně navržených 200V snížil na cca 180-190V. Kritériem bylo, aby digitron, který nezobrazuje žádnou číslici byl úplně zhasnutý. Při napětí 200V digitrony lehce světélkovaly.

hodiny

Modul DCF77 přijímače jsem po mnoha hodinách pokusů a zoufalství umístil na kablík do samostatné krabičky mimo skříňku hodin. Spínaný zdroj dokázal příjem spolehlivě zarušit a v některých polohách antény bylo zdrojem rušení i Arduino. Toto řešení zároveň umožňuje pohodlně zvolit optimální polohu přijímače a natočení antény.

Elektronika hodin je rozdělena na 3 desky plošných spojů. Napájecí zdroj je na samostatné desce. Na další desce jsou digitrony s budiči. No a na poslední desce, nebo první, chcete-li, je umístěno Arduino, RTC obvod, a obvod audio zesilovače.

hodiny

Skříňku hodin, krabičku na DCF přijímač i ostatní mechanické prvky jsem vytiskl z PLA plastu na 3D tiskárně. Snažil jsem se, aby nejen funkčně, ale i vzhledově hodiny působily jako nevkusný kýč, aby se opravdu jednalo o významný Kreténský výtvor.

hodiny

V základním stavu hodiny zobrazují čas. Mezi dvojicemi digitronů blikají dvojtečky. Při krátkém stisknutí tlačítka budíku se na 5 sekund zobrazí datum. Zároveň, pokud by v té chvíli budík vydával zvukový signál, bude umlčen. Dlouhým stiskem tlačítka budíku se na 5 sekund zobrazí nastavený čas budíku a zároveň se přepne mezi zapnutím/vypnutím budíku. Čas budíku se nastavuje enkodérem umístěným na zadní straně hodin (aby knoflík enkodéru nerušil pohled na ladné křivky hodin). Stiskem enkodéru se postupně přepíná nastavení hodin, minut a sekund! A otáčením enkodéru se příslušná hodnota mění. Na zadní straně hodin se rovněž nachází čtyřnásobný kolébkový mikropřepínač (myší piáno), kterým je možno měnit chování hodin. Prvním přepínačem lze zapnout/vypnout indikační LED příjmu DCF signálu, která je umístěna vpravo dole vedle digitronů. Druhým přepínačem je možno zapnout/vypnou čtvrthodinové kukání. Třetím přepínačem je možno zapnout/vypnout hodinové kukání. Ve firmwaru je natvrdo nastaveno, že hodiny nikdy nekukají v noci mezi 20:00 a 7:00 – to by pravděpodobně vedlo k jejich likvidaci ŽD15.

Dokumentace k projektu je ke stažení ZDE

P15/1, K15 - prosinec 2006, naposledy aktualizováno: leden 2024