Digitálno-binárne hodiny
Článok začína pod videom. Na videu sú zachytené hodiny staršej verzie, ktoré sa nastavovali 4 tlačidlami, ktoré menili rýchlosť behu hodín. V tomto článku sa nastavujú hodiny 3 tlačidlami, a to hodiny, minúty a sekundy zvlášť.
Táto konštrukcia bola zverejnená v časopise Amatérske rádio - Praktická elektronika 08/2021.
Toto je konštrukcia hodín, ktoré zobrazujú čas v binárnej forme, aj v bežne čitateľnej forme. Binárne hodiny nemá doma každý, a zdanlivo náhodné blikanie LED diód v rytme času určite upúta nejednu návštevu. Hodiny sú navrhnuté tak, aby neobsahovali žiadne nedostupné či SMD súčiastky, a plošný spoj je jednostranný, bezproblémovo vyrobiteľný doma.
Technické údaje
- Napájanie: 5 V / 70 mA
- Formát času: 24 hodín, HH:MM:SS
- Zdroj času: kryštál 32,768 kHz
- Ovládacie prvky: 3 tlačidlá
Digitálne hodiny pozná každý, ale binárne málokto. V skratke, binárne hodiny zobrazujú jednotlivé číslice v binárnom formáte, 0 = LED nesvieti, 1 = LED svieti. Na vyjadrenie číslic potrebujeme nanajvýš štyri miesta, pretože potrebujeme zobrazovať len číslice od 0 do 9. Prvé miesto je násobenie 8 (23), druhé miesto násobenie 4 (22), tretie miesto násobenie 2 (21), a štvrté miesto násobenie 1 (20). Napríklad číslica 5 je 0101 (0x8 + 1x4 + 0x2 + 1x1). Pri binárnych hodinách niektoré číslice nadobúdajú obmedzený rozsah hodnôt - napríklad desiatky hodín môžu byť iba 0 až 2 (0 - 24 hodín), a tak na mieste desiatok hodín vystačíme len s dvomi LED diódami. Rovnako na miestach desiatok minút a desiatok sekúnd vystačíme s tromi LED (lebo ich hodnoty budú len od 0 do 5).
Popis zapojenia
Schéma zapojenia a plošný spoj s osadzovacím plánom sú nižšie (klikni na zväčšenie). Rozmery plošného spoja sú 94 x 81 mm a bol navrhnutý tak, aby sa zmestil do plastovej škatuľky 1591USBK od výrobcu Hammond. Zapojenie LED diód a displeja je uvedené zvlášť, lebo tieto nie sú súčasťou plošného spoja. Všetky obrázky sú v archíve na stiahnutie na spodku tejto stránky.
Hodiny sú napájané externým sieťovým adaptérom s napätím 5 V, čím sa vyhneme manipulácii s nebezpečným sieťovým napätím. Hodiny berú prúd cca 70 mA, preto by mal stačiť adaptér s prúdom aspoň 100 mA.
Napájacie napätie vstupuje na piny mikrokontroléra ATmega8535, kondenzátory C1 a C2 sú blokovacie. K mikrokontroléru sú pripojené tri tlačidlá na nastavenie času, pre hodiny, minúty a sekundy zvlášť. Stlačením tlačidla sa príslušné číslo zvýši o 1, podržaním sa zvyšuje rýchlejšie.
Zdrojom kmitočtu pre meranie času je bežný hodinový kryštál s frekvenciou 32,768 kHz, ktorý sa používa aj v hodinkách, na základných doskách PC, a v inej spotrebnej elektronike. Presnosť hodín závisí od kryštálu, a tieto kryštály bývajú dostatočne presné.
Mikrokontrolér riadi zobrazenie času na displeji aj LED diódach v multiplexnom režime, čím sa ušetrí značné množstvo pinov potrebných na riadenie. Zjednodušene povedané, nerozsvecuje sa každý segment displeja a každá LED osobitne, ale po číslicách, teda v jednom okamihu svieti len jedna číslica (a z LED diód len jeden stĺpec reprezentujúci danú číslicu). Rozsvecovanie jednotlivých číslic sa strieda tak rýchlo, aby to ľudské oko nepostrehlo a zdá sa nám, že všetko čo má svietiť, svieti naraz.
Segmenty displeja a LED diódy sú pripojené k mikrokontroléru cez spínacie tranzistory. Tým sa zaistí, že všetky segmenty a LED diódy budú svietiť približne rovnako bez ohľadu na to, koľko ich práve svieti, ale najmä sa dramaticky zníži odber prúdu z jednotlivých pinov mikrokontroléra, ktorý je obmedzený a má maximum odporúčané výrobcom v datasheete.
Konštrukcia
Šesťmiestne LED displeje nie sú bežne dostupné, preto si taký displej môžeme vyskladať zo štvor- a dvojmiestneho (rovnakej veľkosti a oba so spoločnou anódou). Aby to zaujímavejšie vyzeralo, môžeme použiť rôzne farby, napríklad zelený štvormiestny displej a červený dvojmiestny displej. Oba zlepíme sekundovým lepidlom a po zaschnutí prepojíme jednotlivé piny tak, aby oba displeje spolupracovali v multiplexnej prevádzke - spojíme všetky segmenty A-G, a vyvedieme na káblikoch segmenty a spoločné anódy. Použitý displej typu AF-05643FG-B má aj dvojbodku medzi druhým a tretím znakom, ktorú práve pri hodinách využijeme. Dvojbodka má svoju vlastnú anódu (akoby to bola ďalšia číslica) a svoju vlastnú katódu (jediný segment v rámci tejto „číslice“). Anódu dvojbodky spojíme s anódou druhej číslice a katódu vyvedieme ako vývod „dd“, pričom vývody „d“ nezapájame (desatinné bodky sa nepoužijú). Program v mikrokontroléri počíta práve s takýmto zapojením dvojbodky. Pre názornosť je zapojenie displeja na obrázku vyššie, kde spoločné anódy sú označené „CA“. Pre displej vyrežeme spredu škatuľky otvor takej veľkosti, aby sa displej dal natesno zasunúť a nevypadával. Pre istotu ho prilepíme k výrezu sekundovým lepidlom (plochy výrezu sú dosť široké), ale pozor, sekundové lepidlo po zaschnutí zanecháva škaredé biele škvrny, preto treba dávať pozor, aby nestieklo na predný panel.
LED diódy použijeme v rovnakých farbách, ako displeje, môžu to byť štandardné diódy priemeru 5 mm. Diery pre LED diódy vyvŕtame nie 5-milimetrovým vrtákom, ale 4-milimetrovým a každú dieru opatrne zväčšíme tak, aby dióda išla do diery zasunúť s použitím miernej sily. Takýmto spôsobom diódy budú pevne držať samy od seba bez použitia lepidla. Diódy sú tiež zapojené v multiplexnom režime, teda riadky zvlášť (rows) a stĺpce zvlášť (columns). Ich vývody ohneme a prepojíme hneď pri paneli - je dobré použiť nové LED, ktoré majú dostatočne dlhé vývody. Dávame pozor, aby nedošlo k skratu medzi riadkami a stĺpcami. Schéma zapojenia diód je na obrázku vyššie a ako to vyzerá v praxi, ukazuje jeden z obrázkov na konci tejto stránky.
Z vrchnej strany škatuľky vyvŕtame diery pre tri tlačidlá do panelu, podľa rozmeru, aký máme. Tlačidlá pripojíme do plošného spoja na piny SW1, SW2 a SW3. Do plošného spoja vyvŕtame ešte dve diery na upevnenie k zadnému panelu škatuľky pomocou skrutiek s matičkami.
Tlačidlá, diódy a displej sa do plošného spoja pripájajú štandardnými kolíkovými lištami (pin header) s rozostupom 2,54 mm, kvôli ľahšej rozoberateľnosti. Samičie protikusy pripojíme na viacžilové kábliky, druhé konce káblikov naletujeme priamo na vývody displeja či LED. Pri osadzovaní jednotlivé piny priveľmi neprehrievame, inak sa roztaví plast, ktorý ich drží a vykrivia sa. Ak nemáme kolíky ani samičky, môžeme kábliky rovno do plošného spoja zaletovať. Pre mikrokontrolér použijeme objímku a vložíme ho až po osadení plošného spoja a uistení sa, že napájacie napätie +5 V sa nachádza na pinoch 10 (+5 V) a 11 (GND) a tiež 30 (+5 V) a 31 (GND) objímky a že odber zapojenia bez mikrokontroléra je 0 - ak nejaký odber je (okrem prvotného nabitia elektrolytického kondenzátora), poukazuje to na chybu v osadení plošného spoja. Napájacie napätie sa pripája skrutkovacou svorkovnicou s rozostupom vývodov 5,08 mm. Pri osadzovaní plošného spoja nezabudneme na drôtové prepojky (jedna je aj pod objímkou pre mikrokontrolér) a dávame pozor na polaritu elektrolytického kondenzátora.
Hodnoty súčiastok nie sú kritické, môžeme použiť tzv. „šuplíkové zásoby“, napr. rezistory nižšej presnosti z rozobratej elektroniky.
Program
Mikrokontrolér ATmega8535 bol zvolený kvôli vysokému počtu pinov, a podpore asynchrónneho režimu pre časovač TIMER2. To znamená, že tento časovač je taktovaný externým kryštálom (32,768 kHz) nezávisle od taktu samotného mikrokontroléra, ktorý môže byť taktovaný interným RC oscilátorom, keďže sa v tomto prípade nepožaduje veľká presnosť taktovacieho kmitočtu. TIMER2 je nastavený s prescalerom 128, pretože 32768/256 = 128 (256 je maximálna hodnota tohto 8-bitového časovača). To zaistí, že časovač TIMER2 pretečie presne raz za sekundu. Obsluha prerušenia pretečenia časovača TIMER2 je potom jednoduchá, iba sa zvýši počet sekúnd o 1, a ak treba, tak aj počet minút či hodín. Tieto čísla sa ukladajú do zdieľaných premenných, tak, aby ich mohli čítať obsluhy prerušení ostatných dvoch časovačov (TIMER0 a TIMER1), ktoré sa starajú o multiplexné zobrazenie údajov na displeji a LED diódach. Podrobný popis časovačov možno nájsť v datasheete.
Pri programovaní mikrokontroléra treba nastaviť poistky (fuses) takto: HIGH: 0xD9, LOW: 0x23.
Softvér pre mikrokontrolér je dostupný na stiahnutie nižšie. Zdrojový kód je bohato komentovaný a určite dobre poslúži, ak budú potrebné nejaké úpravy.
Záver
Hotové hodiny sú na obrázku nižšie. Je to len jeden z možných spôsobov, ako môžu hodiny vyzerať, kreativite sa medze nekladú. Zhotovený exemplár fungoval na prvé zapojenie, a dá sa vyskúšať na kontaktnom poli, kde funguje tiež bez problémov.