Kazalo:

Ura za upokojitev / štetje navzgor / ura Dn: 4 koraki (s slikami)
Ura za upokojitev / štetje navzgor / ura Dn: 4 koraki (s slikami)

Video: Ura za upokojitev / štetje navzgor / ura Dn: 4 koraki (s slikami)

Video: Ura za upokojitev / štetje navzgor / ura Dn: 4 koraki (s slikami)
Video: ДРАКОН ЛЕГЕНДАРНО НЮХАЕТ ШЛЯПУ В ФИНАЛЕ ► 5 Прохождение New Super Mario Bros. Nintendo Wii 2024, November
Anonim
Ura za upokojitev / Odštevanje / Ura Dn
Ura za upokojitev / Odštevanje / Ura Dn

V predalu sem imel nekaj teh 8-palčnih matričnih zaslonov LED in razmišljal, kaj naj naredim z njimi. Navdihnjen z drugimi navodili sem dobil idejo, da bi sestavil zaslon za odštevanje/navzgor za odštevanje do prihodnjega datuma/časa, in če je ciljni čas minil, odštejte od njega. To sem zdaj naredil za upokojitveno uro na polici.

Zamisel, da bi jo dali v steklenico, je bila bolj naključje, ko smo razmišljali o ohišju. Drugi dajo ladje v steklenico, zakaj ne ura?

Želel sem tudi, da bi ura upoštevala poletni čas in si seveda zapomnila nastavitve in čas, ko je bila izključena. Napajam uro prek USB -ja, zato jo je mogoče ponovno programirati, če želite narediti nekaj drugačnega ali samo dodati funkcije kodi. Koda je precej preprosta in bi lahko uporabila tudi veliko optimizacije. Moram priznati, da nisem dovolj skrbel za porabo RAM -a. Če bom imel čas in motivacijo, se bom vrnil k temu.

Zaloge

1. Arduino Nano

2. RTC (uporabil sem skupni DS3231, ki ima tudi EEPROM)

3. Matrični modul 12x 8x8. (Imel sem štirikolesne module, ki jih je lažje postaviti)

4. LDR za prilagoditev svetlosti zaslona

5. Upor 10 kOhm

6. Kondenzator 5x 100 uF, ki zavira konice z zaslona

7. Za povečanje kontrasta modulov 8x8 sem uporabil temno obarvan "Window Film". Zaslon prikazuje LED diode kot bele pike, če ne svetijo. Okenski film postane sijoč črn.

Korak: Povežite komponente

Povežite komponente
Povežite komponente
Povežite komponente
Povežite komponente

Za sestavo zaslona sem uporabil tri štirikotne zaslone. Za prikaz datuma s poševnicami in časa z dvopičjem potrebujemo prostor za 8 znakov. Z uporabo tipične pisave 5x7 bi potrebovali šest blokov 8x8 na vrstico. Enega od štirikolesnih blokov sem prerezal na pol in jih razporedil v dve vrsti po šest blokov, kot je prikazano na shemi matične plošče.

2. korak: 3D natisnjeni deli

3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli
3D natisnjeni deli

Za držanje dveh vrstic zaslona in njihovo postavitev v steklenico sem natisnil okrogle obroče za okvir zaslona. Spodaj sem dodal datoteke, ki sem jih uporabil. Če jih želite tiskati brez podpore, so razdeljeni na dele. Posnetek zaslona prikazuje dva obroča, prilepljena na okvir zaslona. Na pokrovu steklenice so trije gumbi za preklapljanje med načini prikaza in nastavitvijo trenutnega in ciljnega časa. Ovitek za vrat steklenice, ki sem ga natisnil v TPU -ju, je omogočil, da kabel USB potisnete v pokrov, ne da bi odrezali priključke in ga privezali z nekaj navitji žice. Pozabil sem omeniti, da sem uporabil 1,5 -litrsko steklenico vina, ki sem jo prerezal na dnu. Vsi deli za tiskanje so nameščeni na ležišču za tiskalnik velikosti 20x20 cm (8x8 palcev).

3. korak: Koda

Koda Arduino uporablja nekaj pogosto uporabljanih knjižnic.

MD_MAX72xx

SPI

Žica

RTClib

Časovni pas

TimeLib

V datoteki INO je nekaj vrstic, ki jih bo morda treba spremeniti:

Vrstica 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- odvisno od modula 8x8 in njegove usmerjenosti

namesto FC16_HW bi lahko bil eden od:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Koda uporablja nastavitve za centralni čas ZDA in jo je treba prilagoditi za druge časovne pasove:

Vrstica 53/54:

TimeChangeRule myDST = {"CDT", Drugo, Sonce, Mar, 2, -300}; // Poletni čas UTC -5TimeChangeRule mySTD = {"CST", Prvi, Ned, 2., 2., -360}; // Standardni čas UTC -6

To je enostavno prilagoditi. Ime CST/CDT je samo referenca. Ne prikažem tričrkovne okrajšave, zato ni pomembno. Naslednji parametri se nanašajo na dan v mesecu, v katerem poteka preklop. Prilagajanje je v minutah, zato bodo delovale tudi lokacije, ki uporabljajo nastavitve +/- 30 minut.

RTC deluje interno v UTC-času, kar knjižnici časovnega pasu omogoča pravilno delovanje. Morda se sprašujete, zakaj se koda sklicuje na starejši čip DS1307 v nasprotju s čipom ure, ki sem ga uporabil, vendar to ni pomembno. Knjižnica dobro deluje z enim in drugim čipom. DS1307 se ponavadi oddaljuje bolj kot DS3132. najprimernejša ura je DS3132. Za tiste, ki bi radi dodali internetni čas, bo ESP8266 delo opravil precej enostavno. Zaradi tega bi bil RTC zastarel. Če izvajate te spremembe, uporabite Arduino EEPROM za shranjevanje ciljnega časa, za to sem uporabil RTC EEPROM.

4. korak: Delovanje in nastavitve

Delovanje in nastavitve
Delovanje in nastavitve
Delovanje in nastavitve
Delovanje in nastavitve
Delovanje in nastavitve
Delovanje in nastavitve

Obstajajo trije gumbi

1. Meni / nastavitve

2. Navzgor

3. Dol

Menijski gumb omogoča kolesarjenje po treh vrstah prikaza: trenutni čas, ciljni čas, čas delte. Delta čas prikazuje število dni, HH/MM/SS med trenutnim časom in ciljnim časom. Prikazal bo t- in odštevanje, če je cilj v prihodnosti ali t+, ter odštevanje, če je cilj v preteklosti.

Če želite prilagoditi trenutni ali ciljni čas, izberite trenutni čas ali prikaz ciljnega časa. Če želite spremeniti čas, držite gumb menija 2 sekundi in ga spustite, kar vas bo pripeljalo v način nastavitve. Sosednje "/" ali ":" se spremeni v "", da označi, katero številko prilagajate. Z gumboma gor/dol prilagodite posamezne hh/mm/ss in mm/dd/yy. Nisem dodal nastavitve za preklop med mm/dd/yy in dd/mm/yy, to je treba spremeniti v kodi ali pa je morda kdo pripravljen dodati to funkcijo.

Opazili boste, da se bo, če stopite čez minute nad 59 ali pod 00, prikaz ure tudi prilagodil. enako velja za sekunde, ure in dneve, ki spremenijo naslednjo višjo vrednost, če prečkate pod 0 ali nad največjo vrednostjo te številke. To sem storil, da bi se izognil programiranju različnih omejitev posameznih mesecev in če februar v prestopnem letu potrebuje 29 dni. Prilagoditev časa se dejansko izvede v času epohe, sekunde od 1. januarja 1970.

Za prikaz štetja sem dodal preprost video. Hotel sem jih narediti kot zaslon za obračanje koles. Če želite prilagoditi trajanje spremembe, vrstica 69 v INO ponuja nekaj možnosti za pospešitev ali upočasnitev spremembe. Zaradi 120 ms bi se številke pomikale dovolj počasi, saj bi to bilo neprekinjeno tečeče kolo.

Upam, da ste uživali v tem navodilu.

Patrick Geschwindner

Priporočena: