Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Usean vuoden käytön jälkeen analoginen kelloni on lopullisesti kuollut.
Samaan aikaan etsin 3D -kelloprojektia tulostettavaksi Prusallani, joten löysin 7 -segmenttisen kellon, jota ohjaavat ws2812 -ledit ja Arduino.
Ajattelin, että ledien voima on näyttää laaja värivalikoima, ja kysymys oli, kuinka yhdistää useita värejä digitaaliseen kelloon?
Sitten idea mukauttaa kello seuraavilla ominaisuuksilla:
- 7 eri minuutin muutoksen siirtymää
- 3 esiasetettua väriä aikaväleille
- ympäristön valon voimakkuus automaattinen himmennys
- automaattinen sammutus/käynnistys, kun aikaa ei tarvitse näyttää
- automaattinen kesäajan säätö
Tarvikkeet
Projekti voidaan suorittaa käyttämällä 3D -tulostinta tai googlaamalla 7 -segmenttisten kellojen projekteja. Joku teki ne myös pahvilla.
Tarvitaan myös:
- Arduino nano
- valokuva chell
- hetkellinen painike
- on / off kytkin
- DC -pistoke
- 5V muuntaja
- nro 30 WS2812 -lediä (malli 30 lediä/metri)
- pcb
- DS3231 -moduuli
- ohuet kaapelit led -liitäntöihin
- vastukset 10K, 550
- juottaa
- liima
- puserot
- otsikot mies/nainen
Vaihe 1: Tulostus ja johdotus…
Alkuperäinen Thingverse -projekti on hieman muokattu. (Kiitos käyttäjän random1101)
Kaksi pistettä suurennettiin sopimaan tähän projektiin käytettyyn led -versioon. Yksi kolmesta takakannesta muutettiin myös sopivaksi piirilevylle. Myös kellopohja vaihdettu.
Päätehtävä on ledien juottaminen. Olen ensin juottanut ledit 3D -tulostusnumeron takakannen ulkopuolelle ja asettanut sen sitten siihen.
Ensimmäisen vasemmalta alkavan numeron seitsemäs led yhdistetään seuraavan numeron ensimmäiseen lediin. Yhdistä neljännen numeron lopussa kaksi piste -lediä, ne numeroidaan 28 ja 29 sarjan sisällä.
Led -sekvenssiä voidaan muuttaa muuttamalla joitain parametreja Arduino -kirjastoon seuraavasti.
Kun yhteys on muodostettu, suurin osa työstä on tehty.
Vaihe 2: Piirilevyn kokoaminen
Nyt on aika koota piirilevy, jossa juotetaan joitain vastuksia, otsikoita jne. Arduinon yhdistämiseen käytettävät komponentit ovat:
Painike, joka on kytketty Arduino-nastan 3 ja GND: n väliin sisäisellä vetovastuksella.
Valoanturi kytketty jännitteenjakajaksi Arduinon nastan A7 ja GND väliin. Lisää myös 10K vastus A7: n ja +5 V: n väliin ……… SUURI VIRHE
valoanturi +5V ja A7 nastan välillä ja 10K vastus A/ nastan ja GND: n välillä
DS3231 -moduuli, joka on kytketty i2c- ja SQW -nastan kautta Arduinon keskeytystapaan 2
Ledit kytketty nastaan 5 - 550 ohmia.
Vaihe 3: Luonnos
Luonnoksen sisällä voidaan tehdä monia mukautuksia.
Kesäaikaa säästävä kirjasto hoidetaan parametreilla TimeChangeRule, katso lisätietoja JChristensen -kirjastosta Githubissa.
Automaattinen sammutus silmukan sisällä hoitaa muuttuva int gotosleep. Minun tapauksessani 0:00 Arduino siirtyy lepotilaan, jolloin kello sammuu.
Kun asetat HÄLYTYKSEN DS3231 -moduuliin muuttuvan gotosleepin avulla, anna Arduinon herätä lepotilasta. Minun tapauksessani klo 7.00 aamulla.
Toinen ominaisuus on muuttaa kellon väriä päivän aikana sisätoiminnon aikana:
void printDateTime (time_t t, const char *tz)
Asetuksissani klo 0:00 - 12:00 aika näkyy punaisena, 12:00 - 17:00 vihreänä ja 17:00 - 0:00 enimmäkseen sinisenä. Tämä on paras tähän mennessä löydetty väritasapaino, joka on hyvä kontrasti takana olevan valkoisen seinän kanssa.
Siirtymäominaisuus mahdollistaa animoidun värinsiirron, kun minuutti muuttuu. On 6 erilaista, jotka voidaan valita painamalla hetkellistä painiketta, seitsemäs vaihtoehto on ilman siirtymiä. Se, josta pidän, on nimeltään newrandom (), joka on esiasetettu (int -tila = 1;).
Olen tehnyt joitakin muutoksia kirjastoon yhteensopivuuden led -sekvenssin kanssa. Tiedoston segment_display.cpp sisällä, lopussa, kytkin (i) voit muokata led -järjestystäsi. Kun olet valmis, korvaa sisällä oleva tiedosto
/Arduino/kirjastot/7segment_NeoPixel-master
Tarvittavat kirjastot:
- avr. uni
- segmentti_näyttö
- DS3231
- TimeLib
- Johto
- Adafruit NeoPixel
- Aikavyöhyke
Vaihe 4: On aika sanoa hyvästit
Pidän tästä kellosta, nykyinen aika näkyy selvästi kaukaa ja se sammuu, kun en tarvitse.
Miten kellolta voisi pyytää enemmän?