English version

Multifunkční hodiny se 2 displeji

    Úvod:
Tyto hodiny vznikly kvůli potřebě zobrazovat současně čas včetně sekund, datum a den v týdnu. Jsou ale vybaveny i stopkami, budíkem a odpočítáváním (časovačem neboli minutkou) a automatickým přechodem mezi letním a zimním časem. Datum funguje správně i pro přestupné roky. Hodiny jsou vybavené zálohovací baterií. Rychlost chodu lze digitálně doladit od -120ppm do +120ppm. Jako zobrazovače slouží 2 šestimístné 7-segmentové LED displeje s regulovatelným jasem.
    Zapojení:
Displej DISP1 je tvořen třemi LD-D056UR-C, DISP2 třemi LD-D028UG-C, oba jsou vysocesvítivé typy se společnou anodou, řízené multiplexně. Anody jsou spínány pomocí tranzistorů T1 až T6 (emitorové sledovače) zesilujcích proud. Katody jsou řízeny přímo z mikroprocesoru IO1 přes sériové odpory R1...R16. Frekvence multiplexu je přibližně 100Hz. Přesnost hodin zajišťuje nízkofrekvenční krystal X1 (32 768 Hz). Malý reproduktorek Rep1 slouží jednak alarmu (budíku) a také signalizaci časovače (minutky). Současně se zvukem budíku a minutky svítí i LED1 (tu lze vynechat nebo tento výstup použít třeba ke spínání relé). Hodiny jsou ovládány tlačítky Minuty, Hodiny a Mód. Obvod se napájí zdrojem 5V +/- 10% (např. s obvodem 7805). Proudový odběr záleží hlavně na zvoleném jasu displeje a množství právě svítících segmentů. Při nejvyšším jasu je odběr do cca 100mA. Hodiny mají zálohovací baterii. Při provozu z ní displej nesvítí a jsou také zablokována tlačítka s vyjímkou vypnutí budíku (alarmu) a zvuku minutky. Zálohovací baterii lze použít jakoukoliv např. 3V, 3,6V, 3,7V či 4,5V. Může to být např. jeden lithiový knoflíkový článek 3V, dva až tři tužkové či mikrotužkové články 1,5V, tři články NiMH / NiCd 1,2V či jeden Li-ion / Li-pol článek 3,7V. Odběr při provozu z baterie s napětím 3V je jen cca 10uA. Doba provozu z 3V článku CR2032 s obvyklou kapacitou 220mAh je 2,5 - 3 let. Při zvonícím budíku a bateriovém napájení odběr z baterie stoupne. Přítomnost napájecího napětí 5V je snímána vývodem 36 (PA4), log 0 přepne hodiny na úsporný provoz z baterie. Tento vstup lze využít i k vypínání displeje nebo krátkodobému zapnutí displeje během provozu z baterie. Oba zdroje napájení jsou sloučeny přes schottkyho diody D1 a D2 s nízkým úbytkem napětí, např. SB160, SR160, 1N5817, 1N5818 či 1N5819. D1 brání zpětnému toku proudu z baterie do síťového zdroje a chrání obvod hodin před jeho přepólováním. D2 zabraňuje nechtěnému nabíjení baterie během provozu ze sítě.
    Program:
Program těchto multifunkčních hodin dávám 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. Varování: Program je dost složitý a nepřehledný. Vychází z osvědčeného programu předchozích Multifunkčních hodin. Na obrázku níže je vidět nastavení konfiguračních bitů AVR (Low Fuse: E3, High Fuse: D9). MCU běží na 4MHz z interního RC oscilátoru, Časovač/čítač 2 běží asynchronně z krystalu 32 768 Hz. V nečinnosti během síťového napájení hodin přechází IO1 do sleep módu Idle a při bateriovém napájení do Power Save módu a má tedy velmi nízkou spotřebu.
    Ovládání funkcí:
Tlačítka TL1 a TL2 se používají k ovládání aktuální funkce. Hlavní displej DISP1 zobrazuje vždy čas ve tvaru "Hodiny.Minuty.Sekundy", displej DISP2 zobrazuje další funkce, přepínané tlačítkem TL3 (mód):
1. Datum
Datum ve tvaru "Den_v_týdnu.Den.Měsíc". Tlačítka TL1 a TL2 slouží k nastavení jasu displeje v 6 stupních: 1/1, 1/2, 1/4, 1/8, 1/16 a 1/32.
2. Doba trvání zvukového signálu + režim budíku
Tlačítko TL1 slouží k zapínání/vypínání alarmu a volbě jeho režimu: "A_" = vypnutý alarm, "A1" = jednorázový alarm (poté automaticky nastaven na vypnuto), "A5" = alarm jen ve všední dny (Po-Pá ano, So-Ne ne), "A7" = alarm každý den. Výchozí nastavení je vypnutý alarm. Tlačítko TL2 volí dobu trvání zvukového signálu (a také rozsvícení LED1). Lze volit nekonečné trvání (nevypne se sám od sebe), indikované zobrazením "n", či trvání od 1s až do 96h. Tak dlouhý čas lze nastavit, aby bylo možno hodiny použít i ke spínání relé. Nastavení trvání má účinek i na signál časovače.
3. Budík
Zobrazení a nastavení budíku (alarmu), tvar "HH.MM.AL". Tlačítko TL1 nastavuje minutu budíku, TL2 nastavuje hodinu budíku.
4. Stopky
Stopky umožňují měřit čas s přesností na 0,1s. Maximální čas je 9.59.59.9 (téměř 10 hodin). Zobrazení je ve tvaru Hodina.Minuty.Sekundy.Desetina_sekund). Tlačítko TL1 slouží ke spuštění a zastavení stopek. Tlačítko TL2 slouží k nulování (běžící stopky jsou prvním stiskem zastaveny a dalším nulovány).
5. Časovač (odpočet či minutka)
Nyní jste v módu odpočet - odpočítávání času od nastavené hodnoty k nule. Poté je spuštěn zvukový signál a rozsvícena LED1. Zvukový signál vypnete tlačítkem TL3. (Trvání může být omezeno stejně jako u budíku.) Zobrazení je ve tvaru "Hodiny.Minuty.Sekundy.". Poslední tečka svým svitem signalizuje zastavení odpočtu. Tlačítko TL2 slouží k přepínání cifer během nastavování počáteční hodnoty. TL1 slouží k nastavení. Právě nastavovaná cifra bliká frekvencí 5Hz. Maximální nastavitená hodnota je 99.59.59 (téměř 100 hodin). Po nastavení všech cifer se tlačítkem TL2 opět vrátíme do módu odpočtu. Zde tlačítko TL1 slouží ke spuštění a zastavení odpočtu.
    Nařizování hodin:
Dlouhým stiskem tlačítka TL3 vstoupíte do nařizování. Hodiny potom nařídíte v pěti krocích, přepínaných krátkým stiskem TL3.
I. Automatický letní čas, jazyk dne v týdnu
TL1 nastavuje jazyk dne v týdnu ("day CE" - česky, "day En" - anglicky), TL2 zapíná automatický letní čas ("Auto 1" - zapnut, "Auto 0" - vypnut).
II. Korekce rychlosti chodu
Druhý displej zobrazí "Cor.PPM", na prvním displeji je vidět nastavení. TL1 zrychlí, TL2 zpomalí. Lze nastavit od -120 do +120 ppm (miliontin).
III. Den v týdnu a rok
TL1 nastavuje rok, TL2 nastavuje den v týdnu.
IV. Datum
TL1 nastavuje měsíc, TL2 nastavuje den.
V. Čas
TL1 nastavuje minuty, TL2 nastavuje hodiny. (Při nastavení minut se vynulují sekundy.)

Program ke stažení (nová verze):
Zdrojový kód v assembleru (ASM)
Přeložený v HEX souboru (4 828 Bajtů)

Program ke stažení (stará verze z r. 2013 - popis ovládání zde):
Zdrojový kód v assembleru (ASM)
Přeložený v HEX souboru (3 896 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 hodin se dvěma displeji s AVR ATmega16A / ATmega16L - klikněte pro zvětšení



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


Dokončené hodiny se dvěma displeji.


Hodiny - vývoj.


Vznikající pokusná deska.


Displeje


Zabudování hodin do krabičky.


Detail mých LED hodin na univerzální desce.



Přidáno: 16. X. 2013, aktualizováno: 28. IV. 2022
zpět na úvodní stránku