Kazalo:

Mavrična besedna ura s popolnim mavričnim učinkom in še več: 13 korakov (s slikami)
Mavrična besedna ura s popolnim mavričnim učinkom in še več: 13 korakov (s slikami)

Video: Mavrična besedna ura s popolnim mavričnim učinkom in še več: 13 korakov (s slikami)

Video: Mavrična besedna ura s popolnim mavričnim učinkom in še več: 13 korakov (s slikami)
Video: Ура ! Она ПРИЕХАЛА ! Орхидея "Змеиная Кожа" из ЗАКАЗА 2024, November
Anonim
Mavrična besedna ura s popolnim mavričnim učinkom in še več
Mavrična besedna ura s popolnim mavričnim učinkom in še več

Cilji

1) Enostavno

2) Ni drago

3) Čim bolj energetsko učinkovit

Mavrična besedna ura s polnim mavričnim učinkom.

Nasmeh na besedni uri.

Enostaven IR daljinski upravljalnik

Posodobite LDR 03-nov-18 za nadzor svetlosti neopikslov

Posodobitev 01-jan-19 Zmanjšanje porabe energije WS2812B.

Posodobite 15-jan-19 Smiley.

Posodobitev 23-jan-19 Koda 1.6

Posodobite povezave knjižnic 10. marca 19

Posodobitev 14. april-19 različica 1.7 Izbira smeška za vklop/izklop barvnega vzorca mavrica/popravek enz.

Zadnja posodobitev 01-jun-19 različica 2.0 IR daljinski upravljalnik in prenova kode

1. korak: Ohišje za uro

Ohišje za uro
Ohišje za uro
Ohišje za uro
Ohišje za uro
Ohišje za uro
Ohišje za uro

Z nekaj preprostimi orodji in malo spretnosti ni težko narediti ure za črke. Uporabil sem materiale, ki so mi na voljo.

Za primer sem uporabil grobo borovo palico, v katero sem zarezal nekaj okvirjev. Tako bi nastale štiri strani ohišja, ki so bile zlepljene skupaj in ojačane z majhnim kosom lesa v vogalih. Nato les potrebuje brušenje in barvanje.

Črke tiskalnik izreže iz folije v zrcalnem pisanju. Folija je na zadnji strani steklene plošče in je prekrita z dvoslojnim vzorčnim papirjem za boljšo porazdelitev svetlobe. Steklo je pritrjeno s silikonsko tesnilno maso.

2. korak: Neopiksli

Neopikslov
Neopikslov
Neopikslov
Neopikslov
Neopikslov
Neopikslov
Neopikslov
Neopikslov

LED diode Neopixels so razporejene na leseni plošči. Pri tem najprej izvrtate 3 mm luknje. Spredaj so povečane na črko do globine 3/4. Nato se 3 mm zadaj poveča na 10 mm, to je velikost neopiksela. Za nekatere znake, med drugim W, je treba luknjo nekoliko prilagoditi.

Uporabil sem vezane plošče, ki so se hitro razcepile, MDF je morda boljši.

Pri posameznih LED diodah niste vezani na fiksno razdaljo, kar velja za LED trakove. LED morajo biti povezani med seboj. To lahko storite z vsemi kratkimi kosi žice. Toda dve min (-) povezavi sta podobni dvema plus (+) povezavama, ki sta notranje povezani, torej ista povezava.

Prihranite si lahko veliko dela, tako da kos žice spajkate na levo LED in nato na desno LED. Nato vmesne spajkajte.

Podatkovna povezava mora biti seveda s kratkimi kosi, ker izhod podatkov gre v podatkovni vhod.

3. korak: Prilagajanje sprednjega besedila

Prilagajanje sprednjega besedila
Prilagajanje sprednjega besedila
Prilagajanje sprednjega besedila
Prilagajanje sprednjega besedila
Prilagajanje sprednjega besedila
Prilagajanje sprednjega besedila

Sprednja plošča je zdaj v nizozemščini, vendar jo preprosto pretvorite v kateri koli jezik.

Lučke NeoPixels se tukaj zaporedoma preklopijo od 0-167. Oštevilčenje poteka od prve vrstice zgoraj levo proti desni, nato pa do druge vrstice od desne proti levi itd. Prilagoditev je možna glede na vaše potrebe. Število NeoPixels je določeno s količino znakov. V naslednji vrstici lahko prilagodite manj ali več neopikslov

#define NUMPIXELS 168 // Koliko NeoPixel je priključenih na Arduino?

168 je več kot drugo število. Številčenje se začne pri 0. Ustvarite lahko poljubno besedilo. Če spremenite besedilo, boste morali prilagoditi tudi ustrezne besede. Številčenje ostaja enako.

Kot primer se DRIE zapisnika določi v kodi

void zetmDrie () {

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

}

Če želite izgovoriti besedo Arduino, gre takole:

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; // Beseda-arduino

}

Tako lahko vmes pišete besede.

Za ure z uro je koristno, če tvorijo sosednjo besedo, vendar to ni nujno. Neuporabljene črke ne potrebujejo neonskih slikovnih pik. Vse imam napolnjene za uporabo prihodnjih možnosti, razen prikazanega časa.

Če spremenite začetno točko ali spremenite zaporedje, se bo oštevilčenje ustrezno spremenilo.

4. korak: Popoln mavrični učinek

Popoln mavrični učinek
Popoln mavrični učinek

Ura je zdaj tako programirana, da se šteje število krat na sekundo, koliko neopikslov je vklopljenih.

Celoten spekter je približno število razdeljenih in nato rahlo premaknjenih. Posledično ima vsak Neopixel drugačno barvo, ki se nenehno spreminja. Neopixel nr 1 in nr 167 si sledita pri nekaterih barvah.

Če imate raje manj različnih barv hkrati, je to enostavno prilagoditi. Barva se še vedno premika po celotnem spektru, vendar z manjšim delom. Neopixel nr 1 in nr 167 si ne sledita več neke barve.

Svetlost lahko nastavite v naslednji vrstici, pixels.setBrightness (150);

Manjše število je manj, večje število pa svetlost.

5. korak: Različne komponente

Različne komponente
Različne komponente
Različne komponente
Različne komponente
Različne komponente
Različne komponente

Uporabil sem naslednje komponente

Arduino Pro Mini ATMEGA328 5V/16MHz

Modul ure DS3231

168 kosov LED-čipov WS2812 LED in hladilnika Neopixel 5V 5050 RGB WS2811 IC Vgrajen

Šablona iz črne folije

Sprejemnik DCF77

6. korak: Koda za uro

Tukaj je koda. Dodan je nadzor svetlosti in izklop, ko ni nikogar in ponoči.

Dodan radarski mikrovalovni senzor gibanja RCWL-0516 (poiščite RADAR)

Po 10 minutah brez premikanja NeoPixels ugasne.

O različici 2.0

Uporaba pomnilnika je bila prevelika, opozorila v prevajalniku pa zmanjkajo. Zato sem kodo popolnoma spremenil, vendar je operacija ostala enaka in dodan je IR sprejemnik.

Obstaja del kode, ki EEPROM -u posreduje podatke. To zaženite enkrat tako, da začasno odstranite / * in * /. Poiščite => enkrat zaženite to, da EEPROM -u zagotovite podatke

Na začetku void zanke je koda za branje kode z vašega daljinskega upravljalnika. To lahko zaženete tako, da začasno odstranite / * in * /, nato pa jih ne pozabite postaviti nazaj. Določite lahko tudi svoje gumbe. Prebrano kodo morate vnesti v => Tu določite svoje gumbe

Samsungov daljinski upravljalnik deluje bolje kot (zelo poceni) preprost.

7. korak: Opis strojne opreme

Opis strojne opreme
Opis strojne opreme
Opis strojne opreme
Opis strojne opreme
Opis strojne opreme
Opis strojne opreme

Obstajajo različne različice Arduino Pro Mini. Upoštevajte, da se povezave lahko razlikujejo.

Dodan mikrovalovni senzor gibanja RCWL-0516.

Dokler se giblje v bližini ure, NeoPixel ostane vklopljen

in takoj, ko ni več gibanja, se NeoPixel po nekaj minutah ugasne.

V različici 2.0 se napajalnik DCF77 napaja prek zatiča 13. Ta zatič je definiran kot izhod in je nastavljen visoko, ko je naslovljena rutina DCF77. Sprejemnik DCF77 uporablja 0,28 mA in je potreben le nekaj minut na dan.

Izklop shrani

5 voltov * 0,28 mA / 1000 * 24 ur * 365 dni * 1 / 0,85 učinkovito napajanje = 14,4 vata na leto.

To se ne zdi veliko, a vsak delček pomaga.

8. korak: LDR za nadzor svetlosti neopikslov

LDR za nadzor svetlosti neopikslov
LDR za nadzor svetlosti neopikslov
LDR za nadzor svetlosti neopikslov
LDR za nadzor svetlosti neopikslov

Dodan LDR za nadzor svetlosti neopikslov.

LDR sem zlepil v prostor neopixela 103. Ta se ne uporablja v prikazu časa in zato ne vpliva na regulacijo. Papir duši vpadno svetlobo, vendar to ni problem.

Delilnik napetosti LDR in 20 kohm upor gre na A0 Arduino Pro Mini. Napetost je pokazatelj jakosti svetlobe in zato tudi pokazatelj količine svetlobe, ki jo morajo dati neopiksli.

Formula, ki jo uporabljam, mi omogoča dobro kontrolo svetlobe, ki jo lahko prilagodimo glede na okoliščine. Odvisno od količine svetlobe se lahko napetost giblje med 0 in 5 voltov, kar se pretvori v 0 do 1024 števk, ki so v "LDRValue".

Če je nova izmerjena vrednost večja od zadnje izračunane vrednosti, se intenzivnost poveča za 1, če je nižja od zmanjšane za 1 in če je enaka, se ne naredi nič. Da bi vrednost potekala počasi, tako da ni utripajočega učinka, se samo 1 poveča ali zmanjša in ker je izračun v zanki, se preračuna šele po 25 -kratnem prehodu zanke.

Intenzivnost je teoretično najmanj 20 in največ 1024/7 + 45 = 191. Največja vrednost, ki sem jo izmeril, je bila 902, kar pomeni intenzivnost 173. To se dobro ujema s 150, ki sem jih nastavil kot privzeto vrednost. (glejte slikovne pike. setBrightness (150))

V različici 2.0 lahko nadzor nastavite z daljinskim upravljalnikom. Dodani so bili naslednji parametri: Brightness_min kot minimalna in Brightness_max kot največja nastavitev in Brightness_Offset kot nastavitveni parameter. Svetlost_min in _max sta vrednosti, ki so lahko odvisne od vašega položaja. Brightness_Offset je vrednost, ki jo lahko nastavite z daljinskim upravljalnikom in s katero lahko nastavite več ali manj svetlosti.

Obstaja tudi mrtvi pas 3 med izmerjeno vrednostjo LDRValue in izračunanimi vrednostmi BerLDRValue.

Za preverjanje nastavitve svetlosti uporabite izjave o tiskanju v void BrightnessControl.

9. korak: Zmanjšajte porabo energije WS2812B

Zmanjšanje porabe energije WS2812B
Zmanjšanje porabe energije WS2812B

Gonilniki na naslovnih neopikslih WS2812B črpajo tok tudi, ko so neopiksli izklopljeni, nastavljeno na barvo 0 (elementi neopikslov ne svetijo).

Ko izgine vseh 169 neopikslov, merim 69 mA na neopiksle. Ob predpostavki, da je ura 12 ur na dan izklopljena, skupni izklop prihrani: 5 (napajanje z voltom) * 69/1000 (miliampere / 1000 = amper) * 12 (število ur na dan) * 365 (število dni v leto) = 1511 vatnih ur. Torej na letni ravni 1,5 kWh. Strinjam se, samo po sebi ni veliko, a veliko majhnih je veliko.

Vezje je preprosto. Plus napajalnika preklopi P-kanalni MosFet. Radarski senzor določa, ali so neopiksli vklopljeni ali izklopljeni. Dva parametra MosFet sem postavil vzporedno, da bi ohranili upor ON čim manjši zaradi izgube MosFetov. Pri normalni uporabi merim 4, 5 milivoltov preko MosFetov. Vrata se upravljajo z izhodom 4 iz Arduina preko upora 470 Kohm. Če se digitalno izhod spusti na (0), so neopiksli vklopljeni, na visoki (1) pa izklopljeni.

10. korak: Nasmeh na ure Word

Nasmeh na Besedni uri
Nasmeh na Besedni uri
Nasmeh na Besedni uri
Nasmeh na Besedni uri

Nasmeh na besedni uri.

Na uri se občasno pojavi smehljaj, ki pa vas razveseli.

Nasmeh sproži radarski senzor. Število premikov (nastavljivo) je merilo videza smeška. Znaki % kažejo, da je bilo zaznano gibanje. Z vsakim desetim (nastavljivim) gibom se Smiley prikaže z Winky Faceom in po treh krat Winky Face prihaja četrtič Smiley Face, ki drži jezik ven.

Nasmeh je majhna sprememba kode.

11. korak: Katere knjižnice se uporabljajo

Katere knjižnice se uporabljajo.

Uporabljam jih v sistemu Windows 7 z Arduino IDE 1.6, testirani pa so bili tudi v sistemu Windows 10 z Adruino IDE 1.8.8

RTClib-master

Arduino-DS3231-master

Adafruit_NeoPixel-master

Arduino-DCF77-master

Knjižnica IRremote Kena Shirriffa

Ker je glede uporabljene knjižnice vedno zmeda, dodam tisto, ki jo uporabljam.

Knjižnica IRremote uporablja veliko pomnilnika. V IRremote.h je navedeno, da lahko onemogočite kateri koli neuporabljen protokol

// Vsak vključen protokol stane pomnilnik in med dekodiranjem stane čas // Onemogoči (nastavljeno na 0) vse protokole, ki jih ne potrebujete/ne želite!

Onemogočil sem vse razen protokola NEC in Samsung. Tako prihranite 10%pomnilnika. Trenutno ni več težav s količino pomnilnika, zato onemogočanje zaenkrat ni potrebno.

Korak: Enostaven IR daljinski upravljalnik

Enostaven IR daljinski upravljalnik
Enostaven IR daljinski upravljalnik
Enostaven IR daljinski upravljalnik
Enostaven IR daljinski upravljalnik
Enostaven IR daljinski upravljalnik
Enostaven IR daljinski upravljalnik

Montaža

Kot lahko vidite na fotografijah, se je izkazalo, da je luknja za LED 132 malo prevelika. To sem dobro izkoristil in ji dodal IR sprejemnik. Priključite podatkovni zatič IR sprejemnika VS1838 na pin 7 Arduina. Nadalje priključite plus in minus napajanje. IR sprejemnik porabi 0,21 mA in bi ga lahko po stikalu FET priključili tudi na plus napajanje. S tem prihranite 5 V * 0,21 mA / 1000 * 12 ur * 365 dni * 1 / 0,85 učinkovitosti napajanja = 5,4 W na leto, če ura deluje na 50% časa. To se ne zdi veliko, a vsak delček pomaga.

Delovanje je naslednje

Pritisnite katero koli tipko na daljinskem upravljalniku IR in nato tipko OK. Ko prvič pritisnete, boste končali v IR obdelavi, drugič pa boste ugotovili, ali je bila to upravičena zahteva. Drugič mora OK hitro slediti prvemu pritisku tipke, ker se drugače vrne nazaj. To konstrukcijo sem naredil tako, da prve kode skoraj nisem pravilno dekodiral in zato ni končal pri IR obdelavi.

Ko ste v IR -upravljanju, se za informacije vklopijo nekatere LED diode, za pojasnilo preberite več in si oglejte prvo sliko.

Opis je za preprost daljinski upravljalnik, lahko pa uporabite kateri koli daljinski upravljalnik in določite svoje ključe. Uporabil sem tudi daljinski upravljalnik Samsung.

Prve štiri tipke ustrezajo zgornjim štirim vrstam LED. Štiri LED svetijo levo ali desno, odvisno od nastavitve. Ko pritisnete tipke 1 do 4, se stanje obrne in shrani v pomnilnik.

1 fiksna barva ali mavrični učinek

2 sekundi izklopljena ali druga vklopljena bliskavica

3 smeh izklop smeško naprej

4 DCF77 izklopljen ali DCF77 vklopljen

Številka ključa je prikazana na naslednjih tipkah

5 števec smeškov

6 širina mavričnega spektra

7 popravi rdečo nastavitev

8 Popravi zeleno nastavitev

9 popravi modro nastavitev

Vrstice 6, 7 in 8 LED sedaj ustrezajo nastavljeni vrednosti, vrstica 6 označuje enote, vrstica 7 desetice in vrstica 8 sto. Vsaka vrstica se začne z vrednostjo nič. Torej je prva led v vrsti 0, druga je 1 itd.

0 nastavitev časa

/\ nastavitev svetlosti

Ko pritisnete gumb 0, zasvetijo "deset" LED, ki označujejo, da želite nastaviti čas, in ko drugič pritisnete 0, se na zaslonu prikaže nastavljeni čas.

Zdaj lahko nastavite čas in se prikaže na zaslonu.

Nastavite pravilen čas in nato, če so minute enake na referenčni uri, pritisnite gumb OK.

Čas je prilagojen.

Če ne pritisnete gumbov minut ali ur, se čas ne spremeni. Če jih pritisnete, bo čas nastavljen takoj.

Vrednost tipk 5 do 9 lahko spremenite s tipkami

desno je plus 1

levo je minus 1

naprej je plus 10

vzvratno je minus 10.

in za nastavitev časa

desno je plus 1 minuta

levo je minus 1 minuta

naprej je plus 1 ura

vzvratna vožnja je minus 1 ura

Včasih se zgodi, da pritisk tipke ne prepozna ali se izvede dvakrat. Zato bodite pozorni, če je nastavitev v redu, sicer poskusite ali popravite znova. Samsungov daljinski upravljalnik, ki sem ga tudi preizkusil, je deloval velikokrat bolje kot (zelo poceni) preprost daljinski upravljalnik.

Pri nastavljanju barve vidite spremembo neposredno na celotnem zaslonu. Za spletno mesto s pregledom barv glejte https://www.helderester.nl/kleurentabel.html. Seveda lahko nastavite katero koli vrednost.

Če ima širina mavričnega spektra vrednost 0, je spekter zelo ozek in zaslon ima eno barvo, ki se nenehno spreminja.

Pomanjkljivost nastavitve časa na ta način je, da ne morete izračunati prehoda poletje / zima, ker imamo datum napačen. Za uro samo to ni pomembno, ker je zdaj ne uporabljamo.

13. korak: Kakšni sosedje?

Kakšni Nexti?
Kakšni Nexti?

Sledi zvok, če je prostega pomnilnika še dovolj.

Škatle za zvočnike že imam. So iz starega prenosnika.

Priporočena: