Zbytkové zásoby LED zobrazovačů přímo lákají k sestavení těchto hodin, případně teploměru - nebo obojího :-). Konstrukce běží na procesoru ATmega 328 (Arduino UNO), který v multiplexu (rychlém přepínání displejů) obsluhuje LED displej 4*7 segmentů, sériovou linku a tlačítka pro nastavení. Pokud na sériovou linku připojíme Bluetooth modul (namísto převodníku USB/serial) můžeme čas a datum nastavovat na dálku například z telefonu.
Popis obvodu
- Po zapnutí napájecího napětí 5V (po zasunutí USB konektoru do PC) se v případě, že nebyl ještě nastaven a uložen čas/datum do obvodu reálného času RTC (tj obvodu DS1307) se rovnou na displeji zobrazí nápis "MenU". Do tohoto stavu se zařízení dostane i v případě, že je poškozen (nebo není nalezen) obvod reálného času. Nyní stiskneme levé tlačítko "set" pro posun v menu displeje a nastavíme postupně: den, měsíc, rok, hodina, minuta. Pro přičtení hodnoty stiskneme pravé tlačítko "plus". Pokud nastavujeme minuty potom při dalším stisknutí tlačítka "set" dojde k uložení hodnot do RTC obvodu a restartu zařízení. Tento stav je signalizován na LED displeji znaky: ----
- Pokud chceme při provozu upravit datum nebo čas stiskneme levé tlačítko "set" a hodnoty upravíme dle postupu výše v bodě 1. Po dobu vstupu zadávání hodnot v menu nebliká dvojtečka "vteřinovka" (2x LED mezi displeji).
- Pokud zadáváme datum a čas vzdáleně (přes počítač - Sériové rozhraní USB u verze FW1.1 nebo vyšší) je displej i tečky zhasnutý. Pro vstup do zadávání na Serialu odešleme znak "M". V okně sériového monitoru nastavíme "chybný řádek" na konci po stisknutí enter (vložit). Rychlost komunikace 9600Bd.
- Po zapnutí zařízení se provede test LED displeje (na šech digitech se zapne číslo 8 - tedy 8888), následně se vypíše verze programu FW "Pihrt VEr x-xx" a následně se spustí zobrazení hodin a datumu (datum u FW >= 1.1) pokud již byl nastaven čas (viz bod 1), jinak menu.
menu
den
měsíc
rok
hodina
minuta
verze FW při zapnutí (FW 1.1)
Parametry obvodu
- napájecí napětí: 5V - USB port počítače, nebo USB nabíječka 5V k mobilnímu telefonu
- odběr při provozu: ~ 100 mA (max)
- spotřeba obvodu: ~ 0,5W (max) záleží na zobrazení - číslo 8 odebírá více než číslo 1
- záložní baterie CR2032 - 3V typ 250 mAh pro obvod RTC (DS1307)
- životnost baterie: ~ 5 roků
- displej: 4*7 segmentů LED zelená barva velikost znaku 2cm (SA08-11GWA Kingbright)
- nastavení: tlačítko "set" a tlačítko "plus", nebo vzdálená linka USB-COM přes počítač (rychlost 9600Bd)
- kontrola zamrznutí: vnitřní watchdog časovač procesoru ATmega328
- alarm: 2 nezávislé budíky, které sepnou piezo pípák (od FW: 1.2)
ZDARMA
- 1.0 hex pro procesor ATmega 328 - 16MHz
DONATE
- 1.0 (zdroj + build + hex pro procesor) plošný spoj (Eagle, Gerber, CAM)
- 1.1 (zdroj + build + hex pro procesor) plošný spoj (Eagle, Gerber, CAM)
- 1.2 (zdroj + build + hex pro procesor) plošný spoj (Eagle, Gerber, CAM)
- 1.3 (zdroj + build + hex pro procesor) plošný spoj (Eagle, Gerber, CAM)
Verze FW
FW 1.0 (zdarma)
-výchozí verze hodin
FW 1.1 (donate)
-přidána podpora seriálu rx a tx (nastavení datumu a času přes počítač rozhraní USB-COM)
-přidáno přepínání zobrazení na LED displeji. Datum se zobrazuje každou 0-5 a 30-35 vteřinu jinak pouze čas
-přidán watchdog pro kontrolu běhu programu
FW 1.2 (donate)
-přidáno ukládání a načítání do eeprom paměti
-v menu přidáno nastavení letní/zimní čas (sám se mění dle roku)
-v menu přidáno nastavení úrovně jasu displeje dle času. V noci svítí pouze čas (tečky neblikají a neukazuje se datum). Jas 20%
zimní čas sníží jas v 17 hodin a zvýší v 8 hodin ráno, letní čas sníží jas ve 20 hodin a zvýší v 6 hodin ráno
-přidán alarm 1 (AL1 = 0/1, H1 = hod, M1 = min, d1 = sec)
po dobu alarmu na displeji svítí ALM1
-přidán alarm 2 (AH2 = hod, AM2 = min, Ad2 = na dobu v sec)
po dobu alarmu na displeji svítí ALM2 (pro alarm je nutné připojit na poslední volný pin D2 procesoru piezo pípák (který sám pípá) na 5V - nejlépe přes tranzistor), nebo tímto výstupem spínat co potřebujeme
v menu nově rotujeme:
den, měsíc,rok,hodina,minuta,používat jas, používat letní/zimní čas, použít alarm 1 , alarm 1 hodina, alarm 1 minuta, alarm 1 trvání v sec, použít alarm 2 , alarm 2 hodina, alarm 2 minuta, alarm 2 trvání v sec -> následně uložíme a vyskočíme z menu, jinak můžeme z menu vyskočit resetem bez uložení
(tedy: dE, ME, ro, Ho, MI, JA, LE, AL1, H1, M1, d1, AL2, H2, M2, d2 -> uložení a restart)
-přidána možnost smazat vše do výchozího nastavení přes seriál a rozděleno menu nastavení na sekce:
* C nastavení čas a datum
* D smazání eeprom a času do defaultu 00:00:00 1.1.2016
* A nastavení alarmu 1
* B nastavení alarmu 2
* M nastavení ostatních parametrů (jas, letní/zimní čas)
FW 1.3 (donate)
-přidán alarm 3 (AH3 = hod, AM3 = min, Ad3 = na dobu v sec) Nově v menu rotujeme: (dE, ME, ro, Ho, MI, JA, LE, AL1, H1, M1, d1, AL2, H2, M2, d2, AL3, H3, M3, d3 -> uložení a restart)
-upraveno menu pro vzdálené ovládání (přidán alarm 3)
-opravena chyba: posun času při vyplém zařízení (posun na zimní/letní čas, pokud bylo zařízení vyplé provede se změna času hned jak je to možné)
Při aktivaci alarmu se na LED displeji zobrazuje nápis ALM1, ALM2 nebo ALM3 (čas ani datum se po dobu alarmu nezobrazují!)
Okno sériového monitoru FW: 1.3
Okno sériového monitoru FW: 1.2
Vzdálené nastavení datumu a času přes USB a sériový monitor FW: 1.1
Schéma zapojení obvodu
- Pokud již máme RCT obvod na nějaké jiné destičce (IC3 - DS1307) nemusíme ho na plošný spoj (spolu s krystalem Q2 a baterií CR2032 - 3V) osazovat, ale využijeme naši destičku, kterou propojíme do konektoru "rozšíření" +5V, SDA, SCL, 0V.
- Pokud nevyužijeme možnost nastavovat čas, datum a další věci (do budoucna teplotu, alarm atd...) přes USB rozhraní, nemusíme osazovat ani převodník IC-2 FT232, R18 - R20, D1, D2, C5, C6. Zařízení bude z USB konektoru pouze napájeno bez možnosti změnit FW v hodinách přes COM port, nebo vzdáleně nastavovat čas a datum....
Deska spojů obvodu
Foto hotové desky
Připojení piezo "pípáku" pro alarm (od FW 1.2)
Video - test zařízení (verze FW 1.0 od zapnutí k nastavení)
Video - test zařízení (verze FW 1.1 přepínání datum/čas)