Digitronové hodiny I
Je to již mnoho let co jsem při brouzdání na internetu objevil stránky s digitronovými hodinami. Jelikož se mi líbí věci staršího data a mám rád retro styl, měl jsem v úmyslu si je udělat. Asi před rokem jsem při uklízení narazil na bedničku se zásobou nějakých lamp, a k mému údivu jsem zjistil, že jsou to právě ony zapadlé a zaprášené digitrony, které se mi kdysi dostaly do rukou a byly uloženy pro tento účel. Proto jsem se v rámci možností rozhodl pro výrobu právě digitronových hodin. Jak šel čas, vzniklo mnoho možných i nemožných konstrukcí a koncepcí, až jsem se ustálil u koncepce oddělení procesorové části od části zobrazovací. Ale to již předbíhám a vrátím se k této první konečné verzi hodin, která je na následujícím obrázku.
Pro vývoj jsem si stanovil následující postup:
- - vytvořit zdroj napětí 170V pro digitrony
- - navrhnout budící obvody digitronů
- - navrhnout procesorovou část hodin
- - napsat program pro procesor
Zdroj napětí 170V pro digitrony
Jelikož nejsem zastáncem tahání síťového napětí do takovýchto aplikací, zvláště pokud je možnost, že si s tímto výrobkem budou hrát laici, hazardéři a děti, rozhodl jsem se pro napájení napětím do 24V. Tím se zmenšil okruh možných řešení na celkem tři možnosti:
- -malý síťový transformátor
- -násobič napětí
- -DC-DC měnič
V první fázi, jsem chtěl použít právě malý síťový transformátor a zapojit napájecí napětí na sekundární vinutí a z primárního odebírat vysoké napětí pro digitrony. Toto napětí je ve své podstatě 2x odděleno od síťového napětí, ale má to háček. Jelikož se jedná o malý transformátor, nepřekvapil mě fakt že výstupní napětí nebylo 230V (pouze něco kolem 180V což sice pro tento účel stačilo) a ani to, že se transformátorek neúměrně zahříval. Při konečném resumé jsem však tuto cestu zavrhl a to z těchto důvodů:
- - malá účinnost
- - velké tepelné ztráty (dělal jsem hodiny ne topení)
- - nemalé rozměry
- - vyšší hmotnost
Dále pak v úvahu připadl násobič napětí, protože však nejsem zastáncem výpočtů a spíše se ubírám cestou „odborného odhadu“ zkusil jsem si postavit malý násobič napětí. Pro tento účel jsem použil napětí ~24V a postavil známý Villardův násobič napětí se šesti kondenzátory a diodami. Tento násobič má na výstupu 6x větší napětí než na vstupu tj. při napájení ~24V, je výstupní napětí 6xUš což je přibližně 200V. To je zhruba o 20V více než je potřeba pro zapálení doutnavého výboje, ale není to překážkou, protože zvýšením odporu omezující anodový proud digitronu se dá tento problém snadno vyřešit. Věřím, že by bohatě stačilo použít kondenzátory na 100V, ale mám rád jistotu a proto jsem počítal s napětím 160V pro každý kondenzátor násobiče. Toto zapojení se sice fungovalo bez větších problémů a tím, že jsem řídil digitrony v multiplexním režimu byl pokles napětí kolem 5V což na funkci nemělo žádný vliv. Jediná nevýhoda byla to, že vzniklá „baterie“ kondenzátorů 100uF/160V není zrovna nejmenší a nejde na desce přehlédnout, zejména v případě že je požadavek výsledné hodiny zakomponovat do krabičky, což by mohlo působit jisté obtíže.
Proto jsem se rozhodl použít měnič napětí. Už z dřívějších dob mého bastlení jsem našel obvod MC 34063, který funguje dle zapojení a výpočtů uvedených v katalogovém listě jako švýcarské hodinky. Je určen pro práci do 40V a tak jsem si řekl, že ho přesvědčím, aby dával trochu více. První věc, která se naskýtala k řešení bylo posílení koncového tranzistoru a to ve smyslu velikosti povoleného kolektorového napětí. Nu což použil jsem již osvědčený a IRF 830, kterých jsem měl několik v šuplíku. Jelikož jsem se již dříve s tímto obvodem několikráte spálil, věděl jsem, že je důležité aby byl dobře sladěn kmitočet oscilátoru s ostatními prvky a to zejména s hodnotou indukčnosti tlumivky. Navíc je nutné si uvědomit, že při předpokládaném minimálním napájecím napětí 12V, se zvedá napětí přibližně 15x, což není málo, nejsou již „odborné odhady“ na místě. Proto jsem vyhledal Excelovský soubor se vzorci, který jsem si pro výpočet parametrů měničů s tímto obvodem připravil již dříve. Po dosazení vstupních hodnot se v okamžiku vysypaly potřebné hodnoty indukčností, kapacit a odporů. Nechci tvrdit, že jsem neměl problémy se stavbou tohoto měniče, ale ve své podstatě fungoval na druhý šup a je pravdou že během vývoje hodin doznal několika změn a vylepšení, a to zejména v oblasti výběru tlumivky, kdy jsem se přiblížil účinnosti 85% což je hezký výsledek.Pro napájení celé aplikace jsem později použil profesionální spínaný zdroj 12V / 500mA z GM Electronic, neboť za přibližně 120,- Kč se již nevyplatí konstrukcí zdroje zabývat (zvláště když vezmu v úvahu účinnost malého transformátoru, cenu součástek a práci kolem, tak se to opravdu nevyplatí)
Budiče digitronů
Pro potřeby buzení digitronů bylo potřeba vyřešit dva problémy:
- anodové budiče
- katodové budiče
Jak se nakonec ukázalo tak to ve své postatě žádné problémy nebyly, spíše se jednalo o vhodný výběr součástek pro řešení budících obvodů. V první řadě se budu buddu zabývyt budiči anod pro multiplexní řízení zobrazovačů. Pro tento případ jsem zvolil běžné zapojení pro buzení pomocí PNP tranzistoru, který spíná anodové napětí pro aktivní digitron. Jedinou obtíží bylo nalézt vhodný spínací prvek pro "vysoké" napětí (vysoké z pohledu napětí procesoru) a proto jsem se pohroužil do kataogů a začal jsem hledat. Protože se jedná o spínání proudů do 5 mA a napětí do 200V, padlo rozhodnutí na spínací tranzistory řady MPSA 92 a jako budící tranzistor jeho komplementární variantu MPSA 44 v zapojení dle obrázku níže.
Než se budu zabývat katodovými budič, zopakuju napřed princip digitronu. Jedná se v podstatě o mnohokatodovou doutnavku, kde anodu tvoří mřížka umístěna zpravidla v přední a zadní části zobrazovače, katody ve tvaru číslic jsou umístěny za sebou mezi anodami, popřpadě za jedinou anodou umístěnouv přední části, baňka je zpravidla naplněna neonem. Přivedením záporného potenciálu na katodu, se tato katoda obalí studeným doutnavým výbojem v plynu. Toliko k opravdu zjednodušené teorii jak digitron pracuje a odborníky prosím o schovívavost k tomuto vysvětlení a v případě připomínek prosím o jejich zaslání, rád je zapracuji :o). Tak a teď k řešení budičů, jelikož jak jsem se již zmínil, je každé číslo zobrazováno zvlášť, budeme potřebovat pro zobrazení číslic 0 až 9 budit 10 katod. V době, kdy byly digitrony obvyklé, nechci říci jediné zobrazovače, se používaly buď to kontaktní spínače (například v mechanických odměřovacích skříňkách) nebo speciální dekodéry BCD na 1 z 10-ti. Tyto dekodéry byly postaveny na technologii TTL, avšak jako výstup byly použity "vysokonapěťové" trazistory s otevřeným kolektorem, ke kterému byla připojena oproti zemi zenerova dioda se zenerovým napětím kolem 60V. Tato dioda měla ve své postatě dvě funkce - první byla ta, že napětí kolektor-emitor spínacího tranzistoru nepřesáhlo zenerova napětí, a tudíž mohly být použity tranzistory s kolektorovým napětím kolem 60V.
Druhá funkce byla ta, že dle Kirchhofova zákona o napětí, bylo na této zenerově diodě napětí 60V a tím napětí mezi anodou a příslušnou katodou bylo UA-UZD a bylo nižší než napětí potřebné k udržení doutnavého výboje. To zabezpečovalo, že nemohl vzniknout doutnavý výboj, a dokonce to nestačilo ani k udržení výboje a tím bylo zabezpečeno zhasnutí číslic. Při sepnutí tranzistoru došlo k přemostění této zenerovy diody, čímž došlo ke zvýšení napětí mezi anodou a příslušnou katodou na takovou hodnotu, která umožňovala vznik doutnavého výboje a rozsvícením této katody. Je nezbytné podotknout, že se nesmí opomenout anodový odpor, pro omezení proudu digitronem aby nedošlo při vzniku výboje k destrukci nadměrným proudem (pracovní proud digitronu je zpravidla u menších typů kolem 2 mA a u větších kolem 4 mA, ale není to pravidlem a je důležité dodržet hodnoty udávané katalogovými údaji). Jelikož jsou tyto budiče téměř nedostupné, rozhodl jsem se k řešení budiče alternativním způsobem s obvody, které se dnes běžně vyrábí. Proto jsem ve své podstatě použil princip, který byl využit v původním budiči a nahradil jej kombinací NPN tranzistorového pole ULN 2003 a zenerových diod připojených k výstupním kolektorům těchto tranzistorů. Jelikožje kolektorové napětí těchto tranzistorů je 50V, použil jsem diody o zenerově napětí 43V, což se ukázalo jako dostatečné, čímž se mi podařilo nahradit obtížně sehnatelný budící obvod 74141. Toto řešení má jak výhody, tak i nevýhody, a to zejména v závislosti na dalším zapojení do obvodů buzení či dekódování. Pro dekódování jsem mohl použít některý z běžně vyráběných budičů BCD na 1 z 10-ti, nebo použít přímo výstupů procesoru pro řízení těchto budičů. Z důvodu toho, že budiče ULN 2003 mají 7 tranzistorů, je nutné použít dva tyto integrované obvody a 10 zenerových diod, a přidání dalšího integrovaného obvodu jsem proto zavrhnul, což se mi v konečném důsledku vyplatilo a to zejména při následném návrhu tištěného spoje, kdy jsem nemusel řešit problém správného zapojení vývodů pro případný dekodér a použil jsem převodní tabulku, kterou stačilo poouze upravit pro jinak zapojené digitrony. Někdo by mohl namítnout, že je zbytečné použití 14-ti budičů, když je potřeba pouze 10-ti, ale volné budiče je možné použít pro buzení dalších indikačních prvků jako jsou doutnavky či diody pro indikaci. Navíc toto řešení je i z ekonomického hlediska výhodnější, neboť v Buček elektro se cena dekodéru 74141 pohybuje kolem 30,- Kč a cena 2 ks ULN 2003 a to jak v normálním pouzdru tak i v provedení SMD je 12,- a cena 10 ks 43V zenerových diod je 10,- Kč, což dává výslednou cenu 22,- Kč. Navíc pro použití mého řešení nahrává fakt, že technologie výroby odpovídala době a obvody 74141 byly často poruchové a měly značný odběr (cca 20 - 25 mA).
Procesorová část
Jelikož pracuji s procesory ATMEL rodiny AVR, volba procesorů byla téměř jasná, takže další problém pro řešení byla volba způsobu držení času. Naskýtají se dvě možnosti, za prvé možnost, kdy čas je počítán přímo procesorem a druhá kdy je použit obvodu reálného času (RTC). Z energetického důvodu jsem zavrhnul použití udržování času v procesoru, neboť pro uchování aktuálního času po výpadku napájecího napětí, je nutné nechat procesor v běhu a odběr tohoto procesoru je pro potřeby zálohování vysoký. Samozdřejmě, že je možné s použitím módu spánku a probouzení procesoru na krátkou dobu tuto spotřebu snížit, ale mnohem elegantnějším řešením se mi zdálo použití obvodu reálného času, které jsou právě pro tento účel stavěny. Pro minimalizaci zapojení jsem zvolil obvod komunikující po sběrnici I2C PCF 8583. Později jsem z důvodu dočasného nedostatku PCF 8583 použil obvod PCF 8563, ale není to zásadní změna a v případě nedostatku jednoho či druhého obvodu na trhu je připravena varianta tištěného spoje i programu pro jeden nebo druhý obvod. Výběr varianty s obvodem RTC měl zásadní význam pro volbu procesoru, který musel podporovat sběrnici I2C, a musel mít dostatečný počet vývodů pro obsluhu budičů katod a anod digitronů. Jednoduchou matematikou se dá vypočítat, že minimální potřebný počet řídících linek (pinů) odpovídá podmínkám: 10x katoda, 6x anoda, 2x pro kominikaci s RTC, 3x tlačítko pro nastavení což dává hodnotu 21 řídících pinů. Z těchto předpokladů vyšla minimální varianta procesoru ATmega8 s 23-mi I/O linkami, kde zůstává rezerva dvou linek pro další použití. Abych si však usnadnil práci, použil jsem pro tento první pokus procesor ATmega16, a to jenom z toho důvodu, abych nemusel kličkovat na plošném spoji. Pro další aplikace jsem však použil procesor ATmega8, protože za předpokladu, že budu požívat z RTC jenom čas, měl k dispozici dostatečný počet I/O linek.
Z důvodu, že tato konstrukce byla první a nechci říci že je nepovedená, ale nedoporučuji ji k opakování, nebudu zde umisťovat soubory ke stažení a obrazec plošného spoje je zde jen pro náhled. Nebudu zde ani popisovat výrobu krabičky, neboť provedení záleží na gustu každého konstruktéra a co se líbí mě se nemusí líbit ostatním, navíc i tato krabička byla taková z nouze cnost a když jsem ji dokončil tak jsem zjistil že to není to pravé ořechové. Toto byl jeden z důvodů proč jsem přepracoval hodiny do další verze, která bude v několika variantách popsána v článku Digitronové hodiny II., který je zatím rozpracován.