Obsah:

Hodiny pro odchod do důchodu / Hodiny počítání / Dn: 4 kroky (s obrázky)
Hodiny pro odchod do důchodu / Hodiny počítání / Dn: 4 kroky (s obrázky)

Video: Hodiny pro odchod do důchodu / Hodiny počítání / Dn: 4 kroky (s obrázky)

Video: Hodiny pro odchod do důchodu / Hodiny počítání / Dn: 4 kroky (s obrázky)
Video: Stárnutí je výzva! - Možnosti dosažení spravedlivých důchodů 2024, Prosinec
Anonim
Hodiny pro odchod do důchodu / Hodiny s odpočtem / Dn
Hodiny pro odchod do důchodu / Hodiny s odpočtem / Dn

Měl jsem několik těchto 8x8 LED jehličkových displejů v zásuvce a přemýšlel jsem, co s nimi. Inspirován jinými instruktabely, dostal jsem nápad postavit odpočítávací/up displej, který bude odpočítávat do budoucího data/času, a pokud uplynul cílový čas, počítejte od něj. Udělal jsem to teď, moje hodiny pro odchod do důchodu sedí na polici.

Myšlenka dát to do láhve byla spíš náhoda, když jsem přemýšlel o pouzdře. Ostatní dali lodě do láhve, proč ne hodiny?

Také jsem chtěl, aby hodiny poslouchaly letní čas a samozřejmě si pamatovaly nastavení a čas při odpojení. Hodiny napájím přes USB, což je umožňuje přeprogramovat, pokud chcete dělat něco jiného nebo jen přidat funkce do kódu. Kód je velmi jednoduchý a mohl by také využít spoustu optimalizací. Musím přiznat, že jsem se nestaral o spotřebu RAM. Pokud budu mít čas a motivaci, vrátím se k tomu.

Zásoby

1. Arduino Nano

2. RTC (použil jsem běžný DS3231, který má také EEPROM)

3. 12x 8x8 bodový maticový modul. (Měl jsem čtyři moduly, které lze snáze řadit)

4. LDR pro nastavení jasu displeje

5. Rezistor 10 kOhm

6. Kondenzátor 5x 100 uF potlačující hroty z displeje

7. Pro zvýšení kontrastu modulů 8x8 jsem použil tmavě tónovaný „Window Film“. Pokud nesvítí, displej zobrazuje LED diody jako bílé tečky. Okenní fólie z něj dělá lesklý černý vzhled.

Krok 1: Připojte součásti

Připojte součásti
Připojte součásti
Připojte součásti
Připojte součásti

K sestavení displeje jsem použil tři ze čtyř displejů. K zobrazení data s lomítky a času s dvojtečkami potřebujeme mezeru pro 8 znaků. Při použití typického písma 5x7 bychom potřebovali šest bloků 8x8 na řádek. Rozřízl jsem jeden ze čtyř bloků na polovinu a uspořádal je jako dvě řady po šesti blocích, jak ukazuje schéma na prkénku.

Krok 2: 3D tištěné díly

3D tištěné díly
3D tištěné díly
3D tištěné díly
3D tištěné díly
3D tištěné díly
3D tištěné díly

Abych držel dvě řady displeje a umístil je do lahve, vytiskl jsem kruhové distanční kroužky pro rám displeje. Níže jsem přidal soubory, které jsem použil. Abyste je mohli tisknout bez podpory, jsou rozděleny na části. Snímek obrazovky ukazuje dva kroužky přilepené k rámu displeje. Kryt hrdla láhve obsahuje tři tlačítka pro přepínání mezi režimy zobrazení a nastavení aktuálního času a cílového času. Kryt hrdla láhve, který jsem vytiskl v TPU, umožnil zasunout kabel USB do krytu, aniž by došlo k odříznutí konektorů, a spojit jej několika vinutími drátu. Zapomněl jsem zmínit, že jsem použil 1,5 L láhev vína, kterou jsem nařezal úplně dole. Všechny části, které mají být vytištěny, se montují na lůžko tiskárny 20x20 cm (8x8 palců).

Krok 3: Kód

Kód Arduino používá několik běžně používaných knihoven.

MD_MAX72xx

SPI

Drát

RTClib

Časové pásmo

TimeLib

V souboru INO je několik řádků, které může vyžadovat změnu:

Řádek 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- závisí na modulu 8x8 a jeho orientaci

místo FC16_HW to může být jedno z:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Kód používá nastavení pro americký centrální čas a potřebuje úpravu pro další časová pásma:

Řádek 53/54:

TimeChangeRule myDST = {"CDT", sekunda, ne, březen, 2, -300}; // Daylight Time UTC -5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Standardní čas UTC -6

To lze snadno upravit. Název CST/CDT má pouze referenci. Nezobrazuji třípísmennou zkratku, takže to nevadí. Další parametry se týkají toho, který den v měsíci se přepnutí děje. Úpravy probíhají v minutách, takže budou fungovat i polohy využívající úpravy +/- 30 minut.

RTC běží interně v UTC-Time, což umožňuje, aby knihovna časových pásem fungovala podle očekávání. Možná se divíte, proč kód odkazuje na starší čip DS1307 na rozdíl od hodinového čipu, který jsem použil, ale na tom nezáleží. Knihovna funguje dobře s jakýmkoli čipem. DS1307 má tendenci se unášet více než DS3132. DS3132 jsou upřednostňované hodiny. Pro ty, kteří by chtěli přidat internetový čas, bude ESP8266 dělat tuto práci docela snadno. To by mohlo způsobit, že RTC bude zastaralý. Pokud provádíte tyto změny, použijte k uložení cílového času Arduino EEPROM, já jsem k tomu použil RTC EEPROM.

Krok 4: Provoz a nastavení

Provoz a nastavení
Provoz a nastavení
Provoz a nastavení
Provoz a nastavení
Provoz a nastavení
Provoz a nastavení

K dispozici jsou tři tlačítka

1. Nabídka / nastavení

2. Nahoru

3. Dolů

Tlačítko nabídky umožňuje procházení třemi typy zobrazení: aktuální čas, cílový čas, delta čas. Čas Delta ukazuje počet dní, HH/MM/SS mezi aktuálním časem a cílovým časem. Zobrazí t- a odpočítávání, pokud je cíl v budoucnosti, nebo t+ a odpočítávání, pokud je cíl v minulosti.

Chcete -li upravit aktuální nebo cílový čas, vyberte zobrazení aktuálního času nebo cílového času. Chcete -li změnit čas, podržte tlačítko nabídky na 2 sekundy a uvolněte, čímž se dostanete do režimu nastavení. Sousední „/“nebo „:“se změní na „“, což značí, kterou číslici upravujete. Pomocí tlačítek nahoru/dolů upravte jednotlivé hh/mm/ss a mm/dd/rr. Nepřidal jsem nastavení pro přepínání mezi mm/dd/rr a dd/mm/rr, to je třeba v kódu změnit nebo je někdo ochoten přidat tuto funkci.

Všimnete si, že pokud posunete minuty nad 59 nebo pod 00, upraví se také zobrazení hodin. totéž platí pro sekundy, hodiny a dny, které mění další vyšší hodnotu, pokud překročí pod 0 nebo nad maximum pro tuto číslici. Udělal jsem to, abych se vyhnul programování různých limitů jednotlivých měsíců a pokud únor potřebuje 29 dní v přestupném roce. Nastavení času se ve skutečnosti provádí v epochovém čase, v sekundách od 1. ledna 1970.

Přidal jsem jednoduché video, které ukazuje počítání. Chtěl jsem to udělat jako displej s otočným kolem. Pokud chcete upravit dobu trvání změny, řádek 69 v INO vám nabízí několik možností, jak změnu urychlit nebo zpomalit. Po 120 ms by se číslice posouvaly dostatečně pomalu, protože by to bylo nepřetržitě běžící kolo.

Doufám, že se vám tento návod líbil.

Patrick Geschwindner

Doporučuje: