Obsah:

Hodiny pre odchod do dôchodku / Hodiny s odpočítavaním / Dn: 4 kroky (s obrázkami)
Hodiny pre odchod do dôchodku / Hodiny s odpočítavaním / Dn: 4 kroky (s obrázkami)

Video: Hodiny pre odchod do dôchodku / Hodiny s odpočítavaním / Dn: 4 kroky (s obrázkami)

Video: Hodiny pre odchod do dôchodku / Hodiny s odpočítavaním / Dn: 4 kroky (s obrázkami)
Video: 24. zasadnutie Mestského zastupiteľstva v Žiline | 29.06.2021 2024, Jún
Anonim
Hodiny pre odchod do dôchodku / Hodiny s odpočítavaním / Dn
Hodiny pre odchod do dôchodku / Hodiny s odpočítavaním / Dn

V zásuvke som mal niekoľko týchto 8x8 LED bodových displejov a premýšľal som, čo s nimi. Inšpirovaný inými pokynmi, dostal som nápad postaviť displej odpočítavania/odpočítavania, ktorý bude odpočítavať do budúceho dátumu/času, a ak uplynul cieľový čas, odpočítajte si to. Teraz som si vyrobil svoje hodiny pre dôchodcov, ktoré sedeli na poličke.

Myšlienka dať to do fľaše bola skôr náhoda, keď som premýšľal o puzdre. Ostatní dali lode do fľaše, prečo nie hodiny?

Tiež som chcel, aby hodiny dodržiavali letný čas a samozrejme si pamätali nastavenia a čas pri odpojení. Napájam hodiny cez USB, čo ich robí preprogramovateľnými, ak by ste chceli urobiť niečo iné alebo len pridať funkcie do kódu. Kód je veľmi jednoduchý a mohol by tiež použiť veľa optimalizácií. Musím priznať, že som sa poriadne nestaral o spotrebu RAM. Ak budem mať čas a motiváciu, vrátim sa k tomu.

Zásoby

1. Arduino Nano

2. RTC (použil som bežný DS3231, ktorý má tiež EEPROM)

3. Bodový maticový modul 12x 8x8. (Mal som štyri moduly, ktoré je jednoduchšie zoradiť)

4. LDR na úpravu jasu displeja

5. Rezistor 10 kOhm

6. Kondenzátor 5x 100 uF potláčajúci hroty z displeja

7. Na zvýšenie kontrastu modulov 8x8 som použil tmavý tónovaný „okenný film“. Ak displej nesvieti, LED diódy sa zobrazia ako biele bodky. Okenná fólia jej dodáva lesklý čierny vzhľad.

Krok 1: Pripojte komponenty

Pripojte komponenty
Pripojte komponenty
Pripojte komponenty
Pripojte komponenty

Na zostavenie displeja som použil tri zo štyroch displejov. Na zobrazenie dátumu s lomkami a času s dvojbodkami potrebujeme priestor na 8 znakov. Pri použití typického písma 5x7 by sme potrebovali šesť blokov 8x8 na riadok. Rozrezal som jeden zo štvorcových blokov na polovicu a usporiadal ich ako dva rady po šiestich blokoch, ako je znázornené na schéme breadboard.

Krok 2: 3D tlačené diely

3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely
3D tlačené diely

Aby som držal dva rady displeja a umiestnil ich do fľaše, vytlačil som kruhové dištančné krúžky pre rám displeja. Nižšie som pridal súbory, ktoré som použil. Aby ich bolo možné tlačiť bez podpory, sú rozdelené na časti. Na snímke obrazovky sú zobrazené dva krúžky prilepené k rámu displeja. Kryt hrdla fľaše obsahuje tri tlačidlá na prepínanie medzi režimami zobrazenia a nastavovanie aktuálneho a cieľového času. Kryt hrdla fľaše, ktorý som vytlačil v TPU, umožňuje zasunúť kábel USB do krytu bez odrezania konektorov a previazať ho niekoľkými vinutiami drôtu. Zabudol som spomenúť, že som použil 1,5 litrovú fľašu vína, ktorú som narezal úplne dole. Všetky diely, ktoré sa majú vytlačiť, sú namontované na lôžku tlačiarne 20 x 20 cm (8 x 8 palcov).

Krok 3: Kód

Kód Arduino používa niekoľko bežne používaných knižníc.

MD_MAX72xx

SPI

Drôt

RTClib

Časové pásmo

TimeLib

V súbore INO je niekoľko riadkov, ktoré možno bude potrebné zmeniť:

Riadok 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- závisí od modulu 8x8 a jeho orientácie

namiesto FC16_HW to môže byť jedno z:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Kód používa nastavenia pre centrálny čas USA a potrebuje úpravu pre ďalšie časové pásma:

Riadok 53/54:

TimeChangeRule myDST = {"CDT", sekunda, ned, mar, 2, -300}; // Daylight Time UTC -5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Štandardný čas UTC -6

Toto je ľahké nastaviť. Názov CST/CDT má len referenciu. Nezobrazujem trojpísmenovú skratku, takže na tom nezáleží. Nasledujúce parametre sa týkajú toho, v ktorý deň v mesiaci dochádza k prepnutiu. Úprava prebieha v minútach, takže budú fungovať aj polohy používajúce úpravy +/- 30 minút.

RTC funguje interne v čase UTC, čo umožňuje knižnici časových pásiem fungovať podľa plánu. Môžete sa čudovať, prečo kód odkazuje na starší čip DS1307 v rozpore s hodinovým čipom, ktorý som použil, ale na tom nezáleží. Knižnica funguje dobre s akýmkoľvek čipom. DS1307 má tendenciu unášať sa viac ako DS3132. DS3132 sú preferované hodiny. Pre tých, ktorí by chceli pridať internetový čas, ESP8266 prácu zvládne celkom jednoducho. To by mohlo spôsobiť, že RTC bude zastaraný. Ak robíte tieto zmeny, na uloženie cieľového času použite Arduino EEPROM, na to som použil ETCROM RTC.

Krok 4: Prevádzka a nastavenia

Prevádzka a nastavenia
Prevádzka a nastavenia
Prevádzka a nastavenia
Prevádzka a nastavenia
Prevádzka a nastavenia
Prevádzka a nastavenia

K dispozícii sú tri tlačidlá

1. Menu / nastavenia

2. Hore

3. Dole

Tlačidlo ponuky umožňuje prechádzať tromi typmi zobrazení: aktuálny čas, cieľový čas, delta čas. Čas Delta zobrazuje počet dní, HH/MM/SS medzi aktuálnym časom a cieľovým časom. Ukáže t- a odpočítavanie, ak je cieľ v budúcnosti, alebo t+ a odpočítavanie, ak je cieľ v minulosti.

Ak chcete upraviť aktuálny alebo cieľový čas, vyberte zobrazenie aktuálneho času alebo cieľového času. Ak chcete zmeniť čas, podržte tlačidlo ponuky na 2 sekundy a uvoľnite ho, čím sa dostanete do režimu nastavenia. Susedné „/“alebo „:“sa zmení na „“, aby označilo, ktorú číslicu upravujete. Pomocou tlačidiel hore/dole upravte jednotlivé hh/mm/ss a mm/dd/rr. Nepridal som nastavenie na prepínanie medzi mm/dd/rr a dd/mm/rr, je potrebné to zmeniť v kóde alebo je možno niekto ochotný pridať túto funkciu.

Všimnete si, že ak prekročíte minúty o 59 alebo menej ako 00, upraví sa aj zobrazenie hodín. to isté platí pre sekundy, hodiny a dni, ktoré menia nasledujúcu vyššiu hodnotu, ak pre túto číslicu prekračujú 0 alebo viac ako maximum. Urobil som to, aby som sa vyhnul programovaniu rôznych limitov jednotlivých mesiacov a ak február potrebuje 29 dní v priestupnom roku. Nastavenie času sa skutočne vykonáva v epochovom čase, v sekundách od 1. januára 1970.

Na zobrazenie počítania som pridal jednoduché video. Chcel som, aby to vyzeralo ako displej s otáčajúcim sa kolesom. Ak chcete upraviť trvanie zmeny, riadok 69 v INO vám ponúka niekoľko možností, ako zmenu urýchliť alebo spomaliť. Po 120 ms by sa číslice posúvali dostatočne pomaly, pretože by išlo o nepretržite bežiace koleso.

Dúfam, že sa vám tento návod páčil.

Patrick Geschwindner

Odporúča: