Sisukord:

Pensionikell / loendamis- / dn -kell: 4 sammu (piltidega)
Pensionikell / loendamis- / dn -kell: 4 sammu (piltidega)

Video: Pensionikell / loendamis- / dn -kell: 4 sammu (piltidega)

Video: Pensionikell / loendamis- / dn -kell: 4 sammu (piltidega)
Video: Можно ли пить соду, и к чему это приведёт 2024, November
Anonim
Pensionikell / loendus / Dn -kell
Pensionikell / loendus / Dn -kell

Mul oli sahtlis paar sellist 8x8 LED-maatriksekraani ja mõtlesin, mida nendega teha. Inspireerituna teistest juhenditest, tekkis mul idee ehitada loendur alla/üles kuva, mis loendab tulevase kuupäeva/kellaajani ja kui sihtaeg möödub, loe sellest üles. Tegin selle nüüd oma pensionikellaks riiulil istudes.

Idee see pudelisse panna oli pigem juhus, kui mõtlesin ümbrisele. Teised panid laevad pudelisse, miks mitte ka kella?

Samuti tahtsin panna kella järgima suveaega ja muidugi meeles pidada seadeid ja aega, kui see vooluvõrgust lahti ühendatakse. Toitan kella USB kaudu, mis muudab selle ümberprogrammeeritavaks, kui soovite midagi muud teha või lihtsalt koodile funktsioone lisada. Kood on üsna lihtne ja võib kasutada ka palju optimeerimist. Pean tunnistama, et ma ei hoolitsenud RAM -i tarbimise eest hästi. Kui mul on aega ja motivatsiooni, tulen selle juurde tagasi.

Tarvikud

1. Arduino Nano

2. RTC (kasutasin tavalist DS3231, millel on ka EEPROM)

3. 12x 8x8 punktmaatriksi moodul. (Mul olid neljamoodulid, mida on lihtsam rivistada)

4. LDR ekraani heleduse reguleerimiseks

5. Takisti 10 kOhm

6. Kondensaator 5x 100 uF summutades naelu ekraanilt

7. 8x8 moodulite kontrasti suurendamiseks kasutasin tumedat toonitud "Window Film". Ekraanil kuvatakse LED -id valgete punktidena, kui need ei põle. Aknakile muudab selle läikivaks mustaks.

Samm: ühendage komponendid

Ühendage komponendid
Ühendage komponendid
Ühendage komponendid
Ühendage komponendid

Ekraani kokkupanekuks kasutasin kolme nelikuvarist. Kuupäeva kuvamiseks kaldkriipsudega ja kellaajaga koolonitega vajame ruumi 8 tähemärgi jaoks. Kasutades tüüpilist 5x7 fonti, vajame kuus 8x8 plokki rea kohta. Lõikasin ühe nelikplokist pooleks ja paigutasin need kaheks reaks kuue plokiga, nagu on näidatud leivalaua skeemil.

2. samm: 3D -prinditud osad

3D trükitud osad
3D trükitud osad
3D trükitud osad
3D trükitud osad
3D trükitud osad
3D trükitud osad

Ekraani kahe rea hoidmiseks ja pudelisse paigutamiseks printisin ekraani raami jaoks ümmargused kaugusrõngad. Lisasin allpool kasutatud failid. Nende printimiseks ilma toeta on need jagatud osadeks. Ekraanipildil on näidatud kaks ekraani raami külge liimitud rõngast. Pudelikaela kaanel on kolm nuppu, mis võimaldavad kuvamisrežiimide vahel vahetada ning praeguse ja sihtaja seadistamiseks. Pudelikaela kate trükkisin TPU -s, mis võimaldas USB -kaabli kaane sisse libistada ilma pistikuid katkestamata ja mõne traadimähisega kinni siduda. Unustasin mainida, et kasutasin 1,5 -liitrist veinipudelit, mille lõikasin alt ära. Kõik trükitavad osad sobivad 20x20 cm (8x8 tolli) printerivoodile.

3. samm: kood

Arduino kood kasutab mõnda tavaliselt kasutatavat raamatukogu.

MD_MAX72xx

SPI

Traat

RTClib

Ajavöönd

TimeLib

INO -failis on paar rida, mis võivad vajada muutmist:

Rida 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- sõltub 8x8 moodulist ja selle suunast

FC16_HW asemel võiks see olla üks järgmistest:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Kood kasutab USA Kesk -Ameerika aja seadeid ja vajab kohandamist teiste ajavööndite jaoks.

Rida 53/54:

TimeChangeRule myDST = {"CDT", teine, püha, märts, 2, -300}; // suveaeg UTC -5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Standardaeg UTC -6

Seda on lihtne reguleerida. Nimi CST/CDT on lihtsalt viide. Ma ei kuva kolme tähega lühendit, nii et see pole oluline. Järgmised parameetrid viitavad sellele, millisel kuu päeval lüliti toimub. Reguleerimine toimub minutites, seega töötavad ka +/- 30 minutit reguleerivad kohad.

RTC töötab sisemiselt UTC-ajal, mis võimaldab ajavöönditeegal töötada ettenähtud viisil. Teil võib tekkida küsimus, miks kood viitab vanemale DS1307 kiibile, vastupidiselt minu kasutatud kiibile, kuid see pole oluline. Raamatukogu töötab hästi mõlema kiibiga. DS1307 kaldub triivima rohkem kui DS3132. eelistatud kell on DS3132. Neile, kes soovivad Interneti -aega lisada, teeb ESP8266 selle töö üsna lihtsalt ära. See võib muuta RTC vananenuks. Kui teete neid muudatusi, kasutage sihtaja salvestamiseks Arduino EEPROM -i, mina kasutasin selleks RTC EEPROM -i.

Samm 4: Kasutamine ja seaded

Toimimine ja seaded
Toimimine ja seaded
Toimimine ja seaded
Toimimine ja seaded
Toimimine ja seaded
Toimimine ja seaded

Nuppe on kolm

1. Menüü / seaded

2. Üles

3. Alla

Menüünupp võimaldab liikuda kolme ekraani tüübi vahel: praegune aeg, sihtaeg, delta aeg. Delta -aeg näitab päevade arvu, HH/MM/SS praeguse aja ja sihtaja vahel. See näitab t- ja loendamist, kui sihtmärk on tulevikus või t+, ja loendamist üles, kui sihtmärk on minevikus.

Praeguse või sihtaja reguleerimiseks valige praeguse aja või sihtaja kuvamine. Kellaaja muutmiseks hoidke menüünuppu 2 sekundit all ja vabastage, mis viib teid seadistusrežiimi. Naabruses olev "/" või ":" muutub "" -iks, et näidata, millist numbrit reguleerite. Kasutage üles/alla nuppe, et reguleerida individuaalseid hh/mm/ss ja mm/dd/yy. Ma ei lisanud seadet, et vahetada kk/pp/aaa ja pp/kk/aaa vahel, see vajab koodi muutmist või võib -olla on keegi valmis seda funktsiooni lisama.

Märkate, et kui liigutate minuteid üle 59 või alla 00, kohandub ka tunninäit. sama kehtib sekundite, tundide ja päevade kohta, mis muudavad järgmise kõrgema väärtuse, kui ületate selle numbri maksimumist alla 0 või üle selle. Tegin seda selleks, et vältida üksikute kuude erinevate piiride programmeerimist ja kui veebruar vajab liigaastal 29 päeva. Aega korrigeeritakse tegelikult epohhiajas, sekundites alates 1. jaanuarist 1970.

Lisasin loendamise näitamiseks lihtsa video. Tahtsin teha need nagu pöörleva ekraani. Kui soovite muudatuse kestust reguleerida, annab INO rida 69 mõned võimalused muudatuse kiirendamiseks või aeglustamiseks. 120 ms paneks numbrid kerima piisavalt aeglaselt, kuna see oleks pidevalt töötav ratas.

Loodan, et teile meeldis see õpetlik.

Patrick Geschwindner

Soovitan: