Sisällysluettelo:

Eläke kello / Count Up / Dn Clock: 4 vaihetta (kuvien kanssa)
Eläke kello / Count Up / Dn Clock: 4 vaihetta (kuvien kanssa)

Video: Eläke kello / Count Up / Dn Clock: 4 vaihetta (kuvien kanssa)

Video: Eläke kello / Count Up / Dn Clock: 4 vaihetta (kuvien kanssa)
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Marraskuu
Anonim
Eläkkeellä oleva kello / Laske ylös / Dn -kello
Eläkkeellä oleva kello / Laske ylös / Dn -kello

Minulla oli muutama näistä 8x8 LED-pistematriisinäytöistä laatikossa ja mietin, mitä tehdä niille. Muiden ohjeiden innoittamana sain idean rakentaa laskuri alas/ylös -näyttö, joka laskee alas tulevaan päivämäärään/aikaan, ja jos tavoiteaika kuluu, laske siitä. Tein tämän nyt eläkkeelleni kellonaikana.

Ajatus laittaa se pulloon oli enemmän onnettomuus, kun ajateltiin koteloa. Toiset laittavat aluksia pulloon, miksi ei kelloa?

Halusin myös saada kellon noudattamaan kesäaikaa ja tietysti muistaa asetukset ja ajan, kun se irrotetaan pistorasiasta. Käytän kelloa USB: n kautta, mikä tekee siitä ohjelmoitavan uudelleen, jos haluat tehdä jotain erilaista tai vain lisätä ominaisuuksia koodiin. Koodi on melko yksinkertainen ja voi myös käyttää paljon optimointia. En pitänyt hyvää huolta RAM -muistin kulutuksesta. Jos minulla on aikaa ja motivaatiota, palaan asiaan.

Tarvikkeet

1. Arduino Nano

2. RTC (käytin yleistä DS3231: tä, jossa on myös EEPROM)

3. 12x 8x8 pistematriisimoduuli. (Minulla oli quad -moduulit, jotka on helpompi järjestää)

4. LDR näytön kirkkauden säätämiseksi

5. Vastus 10 kOhm

6. Kondensaattori 5x 100 uF vaimentavat piikkejä näytöstä

7. 8x8 moduulin kontrastin lisäämiseksi käytin tummaa sävytettyä "Window Film" -kalvoa. Näyttö näyttää LEDit valkoisina pisteinä, jos ne eivät pala. Ikkunakalvo tekee siitä kiiltävän mustan.

Vaihe 1: Liitä komponentit

Liitä osat
Liitä osat
Liitä osat
Liitä osat

Käytin kolmea nelinäyttöä näytön kokoamiseen. Tarvitsemme tilaa kahdeksalle merkille, jotta voimme näyttää päivämäärän, jossa on kauttaviivat ja aika kaksoispisteillä. Käyttämällä tyypillistä 5x7 -fonttia tarvitsemme kuusi 8x8 -lohkoa per rivi. Leikkasin yhden nelosista lohkoista puoliksi ja järjestin ne kahdeksi riviksi kuusi lohkoa leipälaudan kaavion mukaisesti.

Vaihe 2: 3D -tulostetut osat

3D -tulostetut osat
3D -tulostetut osat
3D -tulostetut osat
3D -tulostetut osat
3D -tulostetut osat
3D -tulostetut osat

Pidäkseni kiinni näytön kahdesta rivistä ja sijoittaaksesi ne pulloon tulostin pyöreitä etäisyysrenkaita näytön kehykseen. Lisäsin alla käyttämäni tiedostot. Jotta nämä voidaan tulostaa ilman tukea, ne on jaettu osiin. Kuvakaappaus näyttää kaksi rengasta, jotka on liimattu näytön kehykseen. Pullon kaulan kannessa on kolme painiketta, joilla vaihdetaan näyttötilojen välillä sekä asetetaan nykyinen aika ja tavoiteaika. Pullon kaulan kansi, jonka painoin TPU -painikkeella, mahdollistaa USB -kaapelin liu'uttamisen suojukseen katkaisematta liittimiä ja sitomalla sen muutamalla langan käämityksellä. Unohdin mainita, että käytin 1,5 litran viinipulloa, jonka leikkasin aivan pohjasta. Kaikki tulostettavat osat sopivat 20x20 cm: n (8x8 tuuman) tulostusalustalle.

Vaihe 3: Koodi

Arduino -koodi käyttää muutamia yleisesti käytettyjä kirjastoja.

MD_MAX72xx

SPI

Johto

RTClib

Aikavyöhyke

TimeLib

INO -tiedostossa on muutama rivi, jotka on ehkä muutettava:

Rivi 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- riippuu 8x8-moduulista ja sen suunnasta

FC16_HW: n sijaan se voisi olla jokin seuraavista:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Koodi käyttää Yhdysvaltain keskisen ajan asetuksia ja sitä on muutettava muille aikavyöhykkeille:

Rivi 53/54:

TimeChangeRule myDST = {"CDT", toinen, su, maalis, 2, -300}; // Kesäaika UTC -5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Vakioaika UTC -6

Tämä on helppo säätää. Nimi CST/CDT on vain viittaus. En näytä kolmikirjaimista lyhennettä, joten sillä ei ole väliä. Seuraavat parametrit viittaavat siihen, minkä kuukauden päivänä vaihto tapahtuu. Säätö tapahtuu minuuteissa, joten myös +/- 30 minuutin säätöjä käyttävät sijainnit toimivat.

RTC toimii sisäisesti UTC-aikana, jolloin aikavyöhykekirjasto toimii suunnitellusti. Saatat ihmetellä, miksi koodi viittaa vanhempaan DS1307 -siruun käyttämäni kellosirun vastaisesti, mutta tällä ei ole väliä. Kirjasto toimii hyvin molemmilla siruilla. DS1307: llä on taipumus ajautua pois enemmän kuin DS3132. DS3132 on paras kello. Niille, jotka haluavat lisätä Internet -aikaa, ESP8266 tekee työn melko helposti. Tämä voi tehdä RTC: n vanhentuneeksi. Jos teet näitä muutoksia, tallenna tavoiteaika Arduino EEPROM -laitteella, minä käytin siihen RTC EEPROMia.

Vaihe 4: Käyttö ja asetukset

Käyttö ja asetukset
Käyttö ja asetukset
Käyttö ja asetukset
Käyttö ja asetukset
Käyttö ja asetukset
Käyttö ja asetukset

Painikkeita on kolme

1. Valikko / asetukset

2. Ylös

3. Alas

Valikkopainikkeella voit selata kolmea näyttötyyppiä: nykyinen aika, tavoiteaika, delta -aika. Delta -aika näyttää päivien määrän, HH/MM/SS nykyisen ajan ja tavoiteajan välillä. Se näyttää t- ja laskee alas, jos tavoite on tulevaisuudessa tai t+, ja laskee ylöspäin, jos tavoite on menneisyydessä.

Voit säätää nykyistä tai tavoiteaikaa valitsemalla nykyisen ajan tai tavoiteajan näytön. Jos haluat muuttaa aikaa, pidä valikkopainiketta painettuna 2 sekuntia ja vapauta se, jolloin pääset asetustilaan. Viereinen "/" tai ":" muuttuu "" osoittamaan, mitä numeroa säädät. Käytä ylös/alas -painikkeita säätääksesi yksittäisiä hh/mm/ss ja mm/dd/yy. En lisännyt asetusta vaihtaaksesi kk/pp/vv ja pp/kk/vv välillä, tätä on muutettava koodissa tai ehkä joku on valmis lisäämään tämän ominaisuuden.

Huomaat, että jos asetat minuutit yli 59 tai alle 00, myös tuntinäyttö muuttuu. sama pätee sekunteihin, tunteihin ja päiviin, jotka muuttavat seuraavan korkeamman arvon, jos ylität tämän numeron alle tai yli maksimin. Tein tämän välttääkseni yksittäisten kuukausien eri rajojen ohjelmoimista ja jos helmikuu tarvitsee 29 päivää karkausvuonna. Ajan säätö tapahtuu itse asiassa aikakaudella, sekunneissa 1.1.-1970.

Lisäsin yksinkertaisen videon laskemisen osoittamiseksi. Halusin tehdä niistä kuin pyörivän näytön. Jos haluat säätää muutoksen kestoa, INO -rivillä 69 on muutamia vaihtoehtoja nopeuttaa tai hidastaa muutosta. 120 ms saisi numerot vierittämään tarpeeksi hitaasti, koska se olisi jatkuvasti pyörivä pyörä.

Toivottavasti pidit tästä opettavaisesta.

Patrick Geschwindner

Suositeltava: