Sadržaj:

Sat za umirovljenje / Brojanje sati / Dn sat: 4 koraka (sa slikama)
Sat za umirovljenje / Brojanje sati / Dn sat: 4 koraka (sa slikama)

Video: Sat za umirovljenje / Brojanje sati / Dn sat: 4 koraka (sa slikama)

Video: Sat za umirovljenje / Brojanje sati / Dn sat: 4 koraka (sa slikama)
Video: Одна в городе_Рассказ_Слушать 2024, Studeni
Anonim
Umirovljenički sat / Brojanje gore / Dn sat
Umirovljenički sat / Brojanje gore / Dn sat

U ladici sam imao nekoliko ovih 8x8 LED matričnih zaslona i razmišljao sam što ću s njima. Nadahnut drugim instrukcijama, došao sam na ideju da napravim zaslon za odbrojavanje/povećanje za odbrojavanje do budućeg datuma/vremena, a ako je ciljno vrijeme prošlo, odbrojavajte od njega. Sada sam svoj sat za umirovljenje napravio na polici.

Ideja da se stavi u bocu bila je više nesreća dok se razmišljalo o kućištu. Drugi stavljaju brodove u bocu, zašto ne i sat?

Također sam htio natjerati sat da poštuje ljetno računanje vremena i naravno zapamtiti postavke i vrijeme kada je isključen. Napajam sat putem USB -a što ga čini reprogramiranim ako želite učiniti nešto drugačije ili samo dodati značajke kodu. Kôd je prilično jednostavan i također bi mogao koristiti puno optimizacije. Moram priznati da nisam dobro vodio računa o potrošnji RAM -a. Ako imam vremena i motivacije, vratit ću se na to.

Pribor

1. Arduino Nano

2. RTC (koristio sam zajednički DS3231 koji također ima EEPROM)

3. 12x 8x8 matrični modul. (Imao sam quad module koji se lakše slažu)

4. LDR za podešavanje svjetline zaslona

5. Otpornik 10 kOhm

6. Kondenzator 5x 100 uF koji potiskuje šiljke s zaslona

7. Kako bih povećao kontrast modula 8x8, upotrijebio sam tamno zatamnjeni "film za prozor". Zaslon prikazuje LED diode kao bijele točke ako ne svijetle. Prozorski film daje sjajan crni izgled.

Korak 1: Spojite komponente

Spojite komponente
Spojite komponente
Spojite komponente
Spojite komponente

Za sastavljanje zaslona upotrijebio sam tri quad ekrana. Za prikaz datuma s kosim crtama i vremena s dvotočkama potreban nam je prostor za 8 znakova. Koristeći tipični font 5x7, bilo bi nam potrebno šest blokova 8x8 po retku. Prerezao sam jedan od četverokutnih blokova na pola i rasporedio ih u dva reda po šest blokova kako je prikazano na shemi matične ploče.

Korak 2: 3D ispisani dijelovi

3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi
3D ispisani dijelovi

Da bih zadržao dva reda zaslona i pozicionirao ih u bočicu, otisnuo sam okrugle prstene za okvir zaslona. Dolje sam dodao datoteke koje sam koristio. Da biste ih mogli ispisivati bez podrške, podijeljeni su na dijelove. Snimak zaslona prikazuje dva prstena zalijepljena za okvir zaslona. Na poklopcu boce nalaze se tri gumba za prebacivanje između načina prikaza i postavljanja trenutnog i ciljnog vremena. Poklopac grla boce ispisao sam u TPU -u koji omogućuje umetanje USB kabela u poklopac bez presijecanja konektora i vezanje s nekoliko namota žice. Zaboravio sam napomenuti da sam koristio bocu vina od 1,5 L koju sam izrezao na samom dnu. Svi dijelovi za ispis uklapaju se u ležište za pisač dimenzija 20x20 cm (8x8 inča).

Korak 3: Kôd

Arduino kôd koristi nekoliko često korištenih knjižnica.

MD_MAX72xx

SPI

Žica

RTClib

Vremenska zona

TimeLib

U INO datoteci postoji nekoliko redaka koje je možda potrebno promijeniti:

Redak 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- ovisi o modulu 8x8 i njegovoj orijentaciji

umjesto FC16_HW mogao bi jedno od:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Kôd koristi postavke za američko centralno vrijeme i potrebno ga je prilagoditi za druge vremenske zone:

Redak 53/54:

TimeChangeRule myDST = {"CDT", Drugo, ned, ožujak, 2, -300}; // Ljetno vrijeme UTC -5TimeChangeRule mySTD = {"CST", Prvo, Ned, 2. studenoga, -360}; // Standardno vrijeme UTC -6

Ovo je lako prilagoditi. Naziv CST/CDT služi samo za referencu. Ne prikazujem kraticu od tri slova pa nije važno. Sljedeći parametri odnose se na to koji dan u mjesecu se mijenja. Podešavanje je u minutama, pa će raditi i lokacije koje koriste podešavanja +/- 30 minuta.

RTC interno radi na UTC-vremenu što knjižnici vremenskih zona radi kako je predviđeno. Možda se pitate zašto kôd upućuje na stariji čip DS1307 suprotno od čipa sata koji sam koristio, ali to nije važno. Knjižnica radi dobro s bilo kojim čipom. DS1307 ima tendenciju skretanja više od DS3132. DS3132 je preferirani sat. Za one koji žele dodati vrijeme na internetu, ESP8266 će posao obaviti prilično lako. To bi moglo učiniti RTC zastarjelim. Ako unosite ove izmjene, upotrijebite Arduino EEPROM za spremanje ciljnog vremena, a za to sam koristio RTC EEPROM.

Korak 4: Rad i postavke

Rad i postavke
Rad i postavke
Rad i postavke
Rad i postavke
Rad i postavke
Rad i postavke

Postoje tri gumba

1. Izbornik / postavke

2. Gore

3. Dolje

Gumb izbornika omogućuje vožnju kroz tri vrste prikaza: Trenutno vrijeme, Ciljano vrijeme, Delta vrijeme. Delta vrijeme prikazuje broj dana, HH/MM/SS između trenutnog i ciljnog vremena. Pokazat će t- i odbrojavanje ako je cilj u budućnosti ili t+ te odbrojavanje ako je cilj u prošlosti.

Za podešavanje trenutnog ili ciljnog vremena odaberite trenutno ili ciljno vrijeme prikaza. Za promjenu vremena držite gumb izbornika 2 sekunde i otpustite što će vas dovesti u način postavljanja. Susjedni "/" ili ":" će se pretvoriti u "" da označi koju znamenku prilagođavate. Pomoću gumba za gore/dolje podesite pojedinačne hh/mm/ss i mm/dd/yy. Nisam dodao postavku za prebacivanje između mm/dd/yy i dd/mm/yy, to treba promijeniti u kodu ili je možda netko spreman dodati ovu značajku.

Primijetit ćete da ako se minute pomaknu iznad 59 ili ispod 00, prikaz sata će se također prilagoditi. isto vrijedi za sekunde, sate i dane mijenjajući sljedeću višu vrijednost ako prijeđete ispod 0 ili iznad maksimuma za ovu znamenku. Učinio sam to kako bih izbjegao programiranje različitih granica pojedinih mjeseci i ako veljači treba 29 dana u prijestupnoj godini. Podešavanje vremena se zapravo vrši u epohi-vremenu, sekundama od 1. siječnja 1970. godine.

Dodao sam jednostavan video za prikaz brojanja. Htio sam ih napraviti kao zaslon za okretanje kotača. Ako želite prilagoditi trajanje promjene, redak 69 u INO -u daje vam nekoliko mogućnosti za ubrzanje ili usporavanje promjene. 120 ms učinilo bi da se znamenke pomiču dovoljno sporo jer bi to bio kotač koji se neprestano pokreće.

Nadam se da ste uživali u ovom uputstvu.

Patrick Geschwindner

Preporučeni: