Sisällysluettelo:

Sateenkaarinen sanakello, jossa on täysi sateenkaaritehoste ja paljon muuta: 13 vaihetta (kuvilla)
Sateenkaarinen sanakello, jossa on täysi sateenkaaritehoste ja paljon muuta: 13 vaihetta (kuvilla)

Video: Sateenkaarinen sanakello, jossa on täysi sateenkaaritehoste ja paljon muuta: 13 vaihetta (kuvilla)

Video: Sateenkaarinen sanakello, jossa on täysi sateenkaaritehoste ja paljon muuta: 13 vaihetta (kuvilla)
Video: Millaista Nato-Suomea pitäisi rakentaa? ft. Alexander Stubb | Presidenttiperjantai 2024 2024, Heinäkuu
Anonim
Sateenkaarinen sanakello, jossa on täysi sateenkaaritehoste ja paljon muuta
Sateenkaarinen sanakello, jossa on täysi sateenkaaritehoste ja paljon muuta

Tavoitteet

1) Yksinkertainen

2) Ei kallis

3) Mahdollisimman energiatehokas

Sateenkaari -sanakello, jossa on täysi sateenkaariefekti.

Hymiö sanakellossa.

Yksinkertainen IR -kaukosäädin

Päivitä 03-nov-18 LDR neopikselien kirkkauden säätöä varten

Päivitys 01.1.2019 WS2812B-virrankulutuksen vähentäminen

Päivitys 15.1.-19 Smiley.

Päivitys 23.1.-19 Koodi 1.6

Päivitä 10.3. – 19. Kirjastojen linkit

Päivitä 14. huhtikuuta-19 versio 1.7 Valitse hymiö päälle/pois collor rainbow/fix enz.

Viimeisin päivitys 01-jun-19 versio 2.0 IR-kaukosäädin ja koodin uudelleensuunnittelu

Vaihe 1: Kellon kotelo

Kellon kotelo
Kellon kotelo
Kellon kotelo
Kellon kotelo
Kellon kotelo
Kellon kotelo

Joillakin yksinkertaisilla työkaluilla ja hiukan taitoa ei ole vaikea tehdä kirjainkelloaKäytin käytettävissä olevia materiaaleja.

Kotelossa käytin karkeaa mäntypalkkia, jossa sahattiin muutama runko. Nämä tekisivät kotelon neljä sivua, jotka liimattiin yhteen ja vahvistettiin pienellä puukappaleella kulmissa. Sitten puu tarvitsee hiontaa ja maalausta.

Kirjain leikkaa kirjaimet peilikirjoituksella foliosta. Kalvo on lasilevyn takana ja on peitetty kaksikerroksisella kuviopaperilla paremman valonjaon varmistamiseksi. Lasi on kiinnitetty silikonitiivisteellä.

Vaihe 2: Neopikselit

Neopikselit
Neopikselit
Neopikselit
Neopikselit
Neopikselit
Neopikselit
Neopikselit
Neopikselit

Neopixels -LEDit on järjestetty puulevyyn, jolloin poraat ensin 3 mm: n reiät. Edestä ne on suurennettu kirjainkokoon 3/4 syvyyteen. Sen jälkeen 3 mm takana kasvatetaan 10 mm: ksi, tämä on neopikselin koko. Joidenkin merkkien, kuten W: n, reikää on säädettävä hieman.

Käytin vaneria, joka halkeili nopeasti, MDF saattaa olla parempi.

Yksittäisten LED -valojen kanssa et ole sidottu kiinteään etäisyyteen, kuten LED -nauhoissa, LED -valot on kytkettävä toisiinsa. Voit tehdä tämän kaikilla lyhyillä lankakappaleilla. Mutta kaksi min (-) -liitäntää ovat aivan kuin kaksi plus (+) -yhteyttä, jotka on kytketty sisäisesti, joten sama yhteys.

Voit säästää paljon työtä juottamalla johdinpalan vasemmalle ja sitten oikealle LED -valolle. Juotetaan sitten välituotteet.

Tietoyhteyden on tietysti oltava lyhyitä, koska datalähtö menee datatuloon.

Vaihe 3: Etutekstin säätäminen

Etutekstin säätäminen
Etutekstin säätäminen
Etutekstin säätäminen
Etutekstin säätäminen
Etutekstin säätäminen
Etutekstin säätäminen

Etulevy on nyt hollanniksi, mutta yksinkertaisesti muunnettava millä tahansa kielellä.

NeoPixels-ledit vaihdetaan täällä peräkkäin 0-167. Numerointi siirtyy ensimmäisestä rivistä vasemmassa yläkulmassa oikealle ja sitten toiselle riville oikealta vasemmalle jne. Säätö voidaan tehdä omien tarpeidesi mukaan. NeoPikselien määrä määräytyy merkkien määrän mukaan. Vähemmän tai enemmän neopikseleitä voidaan säätää seuraavalla rivillä

#define NUMPIXELS 168 // Kuinka monta NeoPixeliä on liitetty Arduinoon?

168 on kuin toinen numero. Numerointi alkaa nollasta. Voit tehdä mitä tahansa tekstiä. Jos muutat tekstiä, sinun on myös säädettävä vastaavat sanat. Numerointi pysyy samana.

Esimerkkinä DRIE of the minutes, määritetään koodissa

void zetmDrie () {

Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // min-kuiva

}

Jos haluat tehdä sanan Arduino, se menee näin:

void zetArduino () {

Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;

Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; // Sana-arduino

}

Joten voit tehdä sanoja väliltä.

Kellosanoille on hyödyllistä, jos ne muodostavat vierekkäisen sanan, mutta se ei ole ehdottoman välttämätöntä. Käyttämättömät kirjaimet eivät tarvitse neonpikseleitä. Minulla on kaikki ne täynnä, jotta voin käyttää muita mahdollisuuksia kuin ajan näyttäminen.

Jos muutat aloituspistettä tai peräkkäisjärjestystä, numeroinnin tulee muuttua vastaavasti.

Vaihe 4: Täysi sateenkaaritehoste

Täysi sateenkaariefekti
Täysi sateenkaariefekti

Kello on nyt ohjelmoitu niin, että monta kertaa sekunnissa lasketaan, kuinka monta neopikseliä on kytketty päälle.

Kokonaispektri on noin jaettujen ja sitten hieman siirtyneiden lukumäärä. Tämän seurauksena jokainen neopikseli on eri väri, joka muuttuu jatkuvasti. Neopixel nro 1 ja nro 167 seuraavat toisiaan joidenkin värien yhteydessä.

Jos haluat vähemmän eri värejä samanaikaisesti, tämä on helppo säätää. Väri muuttuu edelleen koko spektrissä, mutta pienemmällä osalla sitä. Neopixel nr 1 ja nr 167 eivät enää seuraa toisiaan joidenkin värien kanssa.

Kirkkaus voidaan asettaa seuraavalla rivillä:

pixels.setBrightness (150);

Pienempi luku on pienempi ja suurempi luku kirkkaampi.

Vaihe 5: Erilaiset komponentit

Erilaiset komponentit
Erilaiset komponentit
Erilaiset komponentit
Erilaiset komponentit
Erilaiset komponentit
Erilaiset komponentit

Seuraavia komponentteja käytin

Arduino Pro Mini ATMEGA328 5V/16MHz

Kellomoduuli DS3231

168 kappaletta Neopixels ledin WS2812 LED-siru ja jäähdytyselementti 5V 5050 RGB WS2811 IC Sisäänrakennettu

Foliokirjaimen kaavain

DCF77 -vastaanotin

Vaihe 6: Kellon koodi

Tässä on koodi. Lisätty kirkkauden säätö ja virta pois päältä, kun ketään ei ole paikalla ja yöllä.

Lisätty RCWL-0516-tutkan mikroaaltouuni-liiketunnistin (etsi RADAR)

Kun 10 minuuttia ei ole liikkunut, NeoPixels sammuu.

Tietoja versiosta 2.0

Muistin käyttö oli liikaa, ja kääntäjässä oli loppunut muistivaroitukset. Siksi olen muuttanut koodin kokonaan, mutta toiminta on pysynyt samana ja IR -vastaanotin on lisätty.

EEPROM tarjoaa tietoja koodilla. Suorita tämä kerran poistamalla väliaikaisesti / * ja * /. Etsi => suorita tämä kerran antaaksesi EEPROMille tietoja

Tyhjän silmukan alussa on koodi, jolla voit lukea koodin omasta kaukosäätimestäsi. Voit suorittaa tämän poistamalla väliaikaisesti / * ja * /, älä unohda laittaa niitä myöhemmin. Voit myös määrittää omat painikkeet. Koodin lukeminen on syötettävä kohtaan => Määritä omat painikkeet täällä

Samsungin kaukosäädin toimii paremmin kuin (erittäin halpa) yksinkertainen.

Vaihe 7: Laitteiston kuvaus

Laitteiston kuvaus
Laitteiston kuvaus
Laitteiston kuvaus
Laitteiston kuvaus
Laitteiston kuvaus
Laitteiston kuvaus

Arduino Pro Ministä on erilaisia versioita. Huomaa, että liitännät voivat olla erilaisia.

Lisätty RCWL-0516 mikroaaltouuni-liiketunnistin.

NeoPixel pysyy päällä niin kauan kuin kellon läheisyydessä on liikettä

ja heti kun liikettä ei enää ole, NeoPixel sammuu muutaman minuutin kuluttua.

Versiossa 2.0 DCF77 -vastaanotin saa virran nastan 13 kautta. Tämä nasta määritetään ulostulona ja asetetaan korkealle, kun DCF77 -rutiinia käsitellään. DCF77 -vastaanotin käyttää 0,28 mA, ja sitä tarvitaan vain muutaman minuutin ajan päivässä.

Sammuttaminen säästää

5 volttia * 0,28 mA / 1000 * 24 tuntia * 365 päivää * 1 / 0,85 tehokkuusvirtalähde = 14,4 wattia vuodessa

Tämä ei tunnu paljolta, mutta jokainen piste auttaa.

Vaihe 8: LDR neopikselien kirkkauden säätöä varten

LDR neopikselien kirkkauden säätöä varten
LDR neopikselien kirkkauden säätöä varten
LDR neopikselien kirkkauden säätöä varten
LDR neopikselien kirkkauden säätöä varten

Lisätty LDR neopikselien kirkkauden säätöön.

Olen liimannut LDR: n neopikselin 103 tilaan. Tätä ei käytetä aikanäytössä, joten se ei vaikuta asetukseen. Paperi vaimentaa tulevaa valoa, mutta se ei ole ongelma.

LDR: n ja 20 kohmin vastuksen jännitteenjakaja menee Arduino Pro Minin A0: een. Jännite on valon voimakkuuden indikaattori ja siten myös neopikselien antaman valon määrä.

Käyttämäni kaava antaa minulle hyvän valonhallinnan, sitä voidaan säätää olosuhteiden mukaan. Valon määrästä riippuen jännite voi vaihdella 0–5 voltin välillä, joka muunnetaan 0–1024 lukemaksi, jotka ovat "LDRValue" -arvossa.

Jos uusi mitattu arvo on suurempi kuin viimeksi laskettu arvo, intensiteettiä lisätään yhdellä, jos se on pienempi kuin pienennetty yhdellä ja jos se on sama, mitään ei tehdä. Jotta arvo etenee hitaasti, niin ettei vilkkumista esiinny, vain 1 lisätään tai pienennetään ja koska laskenta on silmukassa, se lasketaan uudelleen vasta silmukan 25 kertaisen läpikäymisen jälkeen.

Voimakkuus on teoriassa vähintään 20 ja enintään 1024/7 + 45 = 191. Suurin mittaamani arvo oli 902, mikä vastaa intensiteettiä 173. Tämä sopii hyvin oletusarvoksi asettamani 150: n kanssa. (katso pixels.setBrightness (150))

Versiossa 2.0 voit asettaa ohjaimen kaukosäätimellä. Seuraavat parametrit on lisätty: Kirkkaus_min minimi ja Kirkkaus_maksimi maksimiasetuksena ja Kirkkaus_Ohjaus asetusparametrina. Brightness_min ja _max ovat arvoja, jotka voivat riippua omasta tilanteestasi. Brightness_Offset on arvo, joka voidaan asettaa kaukosäätimellä ja jolla voidaan asettaa enemmän tai vähemmän kirkkautta.

Myös mitattu LDRValue ja lasketut BerLDRValue -arvot ovat 3: n kuolleella alueella.

Tarkista kirkkausasetus käyttämällä tyhjässä BrightnessControlissa olevia tulostuslausekkeita.

Vaihe 9: WS2812B -virrankulutuksen vähentäminen

WS2812B -virrankulutuksen vähentäminen
WS2812B -virrankulutuksen vähentäminen

Osoitettavien WS2812B -neopikselien ohjaimet käyttävät virtaa myös silloin, kun neopikselit ovat pois päältä, asetettu väri 0 (ei neopikselielementtejä).

Kun kaikki 169 neopikseliä ovat poissa, mittaan neopikseleille 69 mA. Jos oletetaan, että kello on pois päältä 12 tuntia vuorokaudessa, täydellinen sammutus säästää sitten: 5 (voltin virtalähde) * 69/1000 (Miliampere / 1000 = ampeeri) * 12 (tuntimäärä päivässä) * 365 (päivien määrä vuosi) = 1511 Wattituntia. Vuositasolla siis 1,5 kWh. Olen samaa mieltä, se ei ole paljon sinänsä, mutta monet pienet tekevät suuren.

Virtapiiri on yksinkertainen, ja virtalähteen plussan kytkee P-kanavainen MosFet. Tutka -anturi määrittää, ovatko neopikselit päällä vai pois päältä. Olen asettanut kaksi MosFet -rinnakkaista pitääkseen ON -vastuksen mahdollisimman pienenä MosFetsin menetyksen vuoksi. Normaalikäytössä mittaan 4, 5 mili volttia MosFetsin päällä. Porttia ohjataan Arduinon ulostulolla 4 470 Kohm -vastuksen kautta. Jos ulostulo laskee digitaalisesti alhaiseksi (0), neopikselit ovat päällä ja korkealla (1) ne ovat pois päältä.

Vaihe 10: Hymiö Word -kellossa

Hymiö sanakellossa
Hymiö sanakellossa
Hymiö sanakellossa
Hymiö sanakellossa

Hymiö sanakellossa.

Ajoittain kellossa näkyy hymiö, joka kuitenkin tekee sinut onnelliseksi.

Hymiön laukaisee tutkatunnistin. Liikkeiden määrä (säädettävä) on Smileyn ulkonäön mitta. % -Merkit osoittavat, että liike on havaittu. Joka kymmenennellä (säädettävällä) liikkeellä Smiley keksii Winky Face -mallin ja kolme kertaa Winky Face tulee neljännen kerran Smiley Face -kielen.

Hymiö on pieni muutos koodissa.

Vaihe 11: Mitä kirjastoja käytetään

Mitä kirjastoja käytetään.

Käytän niitä Windows 7: ssä Arduino IDE 1.6: n kanssa ja niitä on myös testattu Windows 10: ssä Adruino IDE 1.8.8: n kanssa

RTClib-master

Arduino-DS3231-master

Adafruit_NeoPixel-master

Arduino-DCF77-master

Ken Shirriffin IRremote-kirjasto

Koska käytetystä kirjastosta on aina sekaannusta, lisään käyttämäni.

IRremote -kirjasto käyttää paljon muistia. IRremote.h -osoitteen avulla voit poistaa käytöstä käyttämättömät protokollat

// Jokainen sisällytetty protokolla maksaa muistia ja dekoodauksen aikana aikaa // Poista käytöstä (aseta 0) kaikki protokollat, joita et tarvitse/halua!

Minulla on kaikki pois käytöstä paitsi NEC- ja Samsung -protokolla. Tämä säästää muistia 10%. Tällä hetkellä muistin määrässä ei ole enää ongelmia, joten käytöstä poistaminen ei ole toistaiseksi tarpeen.

Vaihe 12: Yksinkertainen IR -kaukosäädin

Yksinkertainen IR -kaukosäädin
Yksinkertainen IR -kaukosäädin
Yksinkertainen IR -kaukosäädin
Yksinkertainen IR -kaukosäädin
Yksinkertainen IR -kaukosäädin
Yksinkertainen IR -kaukosäädin

Kokoontuminen

Kuten kuvista näkyy, LED 132: n reikä on osoittautunut hieman liian suureksi. Käytin tätä hyvin ja lisäsin siihen IR -vastaanottimen. Liitä IR -vastaanottimen VS1838 datatappi Arduinon nastaan 7. Liitä lisäksi plus- ja miinusvirtalähde. Infrapunavastaanotin käyttää 0,21 mA, ja se voidaan kytkeä myös plus -virtalähteeseen FET -kytkimen jälkeen. Tämä säästää 5 volttia * 0,21 mA / 1000 * 12 tuntia * 365 päivää * 1 / 0,85 teholähdettä = 5,4 wattia vuodessa, jos kello on 50% ajasta. Tämä ei tunnu paljolta, mutta jokainen piste auttaa.

Toiminta on seuraava

Paina mitä tahansa IR -kaukosäätimen näppäintä ja sitten OK -näppäintä. Kun painat ensimmäistä kertaa, päädyt IR -käsittelyyn ja toisen kerran huomaat, oliko pyyntö perusteltu. Toisen kerran OK: n on seurattava nopeasti ensimmäistä näppäimen painallusta, koska muuten se palaa takaisin. Tein tämän rakenteen niin, että tuskin sain ensimmäisen koodin oikein dekoodatuksi, joten en päässyt IR -käsittelyyn.

Kun IR -käsittely on suoritettu, useat LED -valot syttyvät etsimään tietoja, lue selitykset ja katso ensimmäinen kuva.

Kuvaus koskee yksinkertaista kaukosäädintä, mutta voit käyttää mitä tahansa kauko -ohjainta ja määrittää omat avaimesi. Käytin myös Samsungin kaukosäädintä.

Neljä ensimmäistä näppäintä vastaavat neljää ylintä LED -riviä. Neljä LEDiä kääntyvät vasemmalle tai oikealle asetuksesta riippuen. Kun näppäimiä 1-4 painetaan, tila muuttuu ja tallennetaan muistiin.

1 kiinteä väri tai sateenkaari

2 sekunnin salama pois päältä tai toinen salama päällä

3 hymiö pois hymiö päällä

4 DCF77 pois päältä tai DCF77 päällä

Näppäimen numero näkyy seuraavissa näppäimissä

5 hymiölaskuri

6 sateenkaaren spektrin leveys

7 korjaa punainen asetus

8 korjaa vihreä asetus

9 kiinteä sininen asetus

LEDien rivit 6, 7 ja 8 vastaavat nyt asetettua arvoa, rivi 6 osoittaa yksiköt, rivi 7 kymmeniä ja rivi 8 sataa. Jokainen rivi alkaa arvolla nolla. Joten rivin ensimmäinen led on 0, toinen on 1 jne.

0 aika -asetus

/\ kirkkausasetus

Kun 0 -painiketta painetaan, "kymmenen" LED -merkkivaloa syttyy ilmaisemaan, että haluat asettaa ajan, ja kun painat 0 -painiketta toisen kerran, asetettu aika näkyy näytössä.

Aika voidaan nyt asettaa ja se näkyy näytössä.

Aseta oikea aika ja sitten, jos minuutit ovat samat viitekellossa, paina OK -painiketta.

Aika säädetään.

Jos et käytä minuutti- tai tuntipainiketta, aikaa ei muuteta. Jos painat niitä, aika asetetaan heti.

Näppäinten 5 - 9 arvoa voidaan muuttaa näppäimillä

oikea on plus 1

vasen on miinus 1

eteenpäin on plus 10

käänteinen on miinus 10.

ja aika -asetukselle

oikea on plus 1 minuutti

jäljellä on miinus 1 minuutti

eteenpäin on plus 1 tunti

taaksepäin on miinus 1 tunti

Joskus tapahtuu, että näppäimen painallusta ei tunnisteta tai se suoritetaan kahdesti. Joten kiinnitä huomiota, jos asetus menee hyvin, yritä tai korjaa uudelleen. Samsungin kaukosäädin, jota myös testasin, toimi monta kertaa paremmin kuin (erittäin halpa) yksinkertainen kaukosäädin.

Kun asetat väriä, näet muutoksen suoraan koko näytössä. Sivusto, jossa on yleiskatsaus väreihin, on osoitteessa https://www.helderester.nl/kleurentabel.html. Voit tietysti asettaa minkä tahansa arvon.

Jos sateenkaaren spektrin leveyden arvo on 0, spektri on hyvin kapea ja näytön väri muuttuu jatkuvasti.

Ajan asettamisen haittapuoli on, että et voi laskea kesän / talven siirtymää, koska päivämäärä on virheellinen. Sillä ei ole väliä itse kellolle, koska emme käytä sitä nyt.

Vaihe 13: Mitä Nexts?

Mitä Nexts?
Mitä Nexts?

Mitä seuraa, ääni, jos vapaa muisti on edelleen riittävä.

Minulla on jo kaiutinlaatikot. Ne ovat peräisin vanhasta kannettavasta tietokoneesta.

Suositeltava: