Sadržaj:

Dugin sat sa riječima sa punim efektom duge i više: 13 koraka (sa slikama)
Dugin sat sa riječima sa punim efektom duge i više: 13 koraka (sa slikama)

Video: Dugin sat sa riječima sa punim efektom duge i više: 13 koraka (sa slikama)

Video: Dugin sat sa riječima sa punim efektom duge i više: 13 koraka (sa slikama)
Video: Halil Cibran / Kırık Kanatlar (Sesli Kitap-Tek Parça) 2024, Novembar
Anonim
Rainbow sat sa riječima sa punim efektom duge i više
Rainbow sat sa riječima sa punim efektom duge i više

Ciljevi

1) Jednostavno

2) Nije skupo

3) Što je moguće energetski efikasnije

Rainbow Word Clock sa punim efektom duge.

Smajlić na satu riječi.

Jednostavan IC daljinski upravljač

Ažurirajte LDR 03-nov-18 za kontrolu svjetline neopiksela

Ažuriranje 01-jan-19 Smanjuje potrošnju energije WS2812B.

Update 15-jan-19 Smiley.

Ažuriranje 23-jan-19 Kod 1.6

Ažurirajte veze biblioteka 10. marta

Ažuriranje 14. aprila 19. verzija 1.7 Izbor smajlija za uključivanje/isključivanje boje duge/popravljanje enz.

Zadnje ažuriranje 01. jun-19 verzija 2.0 IR daljinski upravljač i redizajn koda

Korak 1: Futrola za sat

Futrola za sat
Futrola za sat
Futrola za sat
Futrola za sat
Futrola za sat
Futrola za sat

Uz neke jednostavne alate i malo vještine, nije teško napraviti sat za slova. Koristio sam materijale koji su mi dostupni.

Za kućište sam upotrijebio grubu borovu šipku u koju sam izrezao nekoliko okvira. Tako bi nastale četiri strane kućišta, koje su zalijepljene zajedno i ojačane malim komadom drveta u uglovima. Tada drvo treba brusiti i bojati.

Slova štampačem izrezuju slova iz folije. Folija se nalazi na stražnjoj strani staklene ploče i prekrivena je dvoslojnim papirom za bolju raspodjelu svjetlosti. Staklo je učvršćeno silikonskim brtvilom.

Korak 2: Neopikseli

Neopikseli
Neopikseli
Neopikseli
Neopikseli
Neopikseli
Neopikseli
Neopikseli
Neopikseli

LED diode Neopiksela postavljene su na drvenu ploču. Ovdje prvo izbušite rupe od 3 mm. Na prednjoj strani su uvećane do veličine slova do 3/4 dubine. Nakon toga 3 mm straga se povećava na 10 mm, ovo je veličina neopiksela. Za neke znakove, između ostalih i W, rupu treba malo prilagoditi.

Koristio sam šperploču koja se brzo raspala, MDF bi mogao biti bolji.

Sa pojedinačnim LED diodama niste vezani na fiksnu udaljenost, što je slučaj sa LED trakama. LED diode moraju biti povezane jedna s drugom. To možete učiniti sa svim kratkim komadima žice. Ali dvije min (-) veze su isto kao dvije plus (+) veze interno povezane, dakle ista veza.

Možete uštedjeti mnogo posla lemljenjem komada žice na lijevu LED, a zatim na desnu LED. Zatim lemite srednje.

Podatkovna veza mora, naravno, biti kratka jer podaci izlaze na ulaz podataka.

Korak 3: Podešavanje prednjeg teksta

Podešavanje prednjeg teksta
Podešavanje prednjeg teksta
Podešavanje prednjeg teksta
Podešavanje prednjeg teksta
Podešavanje prednjeg teksta
Podešavanje prednjeg teksta

Prednja ploča sada je na holandskom, ali jednostavno za pretvaranje na bilo kojem jeziku.

LED diode NeoPixels se ovdje uzastopno mijenjaju od 0-167. Numeracija ide od prvog reda gore slijeva nadesno, a zatim do drugog reda zdesna nalijevo itd. Podešavanje se može izvršiti prema vašim potrebama. Broj NeoPixela određen je količinom znakova. Manje ili više Neopiksela može se podesiti u sljedećoj liniji

#define NUMPIXELS 168 // Koliko je NeoPixela priključeno na Arduino?

168 je veći broj od drugog. Numerisanje počinje sa 0. Možete napraviti bilo koji tekst. Ako promijenite tekst, morat ćete prilagoditi i odgovarajuće riječi. Numeracija ostaje ista.

Na primjer, DRIE minuta određuje se u kodu

void zetmDrie () {

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

}

Ako želite napraviti riječ Arduino, to ide ovako:

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; // Riječ-arduino

}

Tako da možete stvarati riječi između.

Za satne riječi korisno je ako tvore susjednu riječ, ali to nije apsolutno potrebno. Neiskorištena slova ne trebaju neonpiksele. Sve sam ih napunio za korištenje budućih mogućnosti osim prikazanog vremena.

Ako promijenite početnu točku ili promijenite sukcesivni niz, numeracija bi se trebala promijeniti u skladu s tim.

Korak 4: Potpuni efekat duge

Potpuni efekat duge
Potpuni efekat duge

Sat je sada tako programiran da se broj puta u sekundi broji koliko je neopiksela uključeno.

Ukupni spektar je otprilike broj podijeljenih, a zatim malo pomaknutih. Kao rezultat toga, svaki Neopixel ima drugu boju koja se stalno mijenja. Neopixel br. 1 i br. 167 slijede jedan drugog na određenoj boji.

Ako istovremeno volite manje različitih boja, to je lako prilagoditi. Boja se i dalje mijenja po cijelom spektru, ali s manjim dijelom. Neopixel nr 1 i nr 167 više ne slijede jedan drugog u nekoj boji.

Osvjetljenje se može postaviti u sljedećoj liniji, pixels.setBrightness (150);

Manji broj je manji, a veći broj više svjetline.

Korak 5: Različite komponente

Razne komponente
Razne komponente
Razne komponente
Razne komponente
Razne komponente
Razne komponente

Sljedeće komponente sam koristio

Arduino Pro Mini ATMEGA328 5V/16MHz

Modul sata DS3231

168 komada LED dioda od neopiksela WS2812 LED čip i hladnjak 5V 5050 RGB WS2811 IC Ugrađeno

Šablona za slova u foliji

DCF77 prijemnik

Korak 6: Kôd za sat

Evo koda. Dodana je kontrola svjetline i isključivanje kada nema nikoga i noću.

Dodan radarski mikrotalasni senzor pokreta RCWL-0516 (potražite RADAR)

Nakon 10 minuta bez kretanja, NeoPixels se gasi.

O verziji 2.0

Upotreba memorije je bila prevelika, upozorenja o nedostatku memorije u kompajleru. Zato sam potpuno promijenio kôd, ali je operacija ostala ista i dodan je IR prijemnik.

Postoji dio koda koji EEPROM -u daje podatke. Pokrenite ovo jednom privremenim uklanjanjem / * i * /. Potražite => pokrenite ovo jednom kako biste EEPROM -u dali podatke

Na početku void petlje je kôd za čitanje koda sa vašeg daljinskog upravljača. Ovo možete pokrenuti privremenim uklanjanjem / * i * /, ne zaboravite ih nakon toga vratiti. Takođe možete definisati sopstvene tastere. Pročitani kôd se mora unijeti u => Ovdje definirajte vlastite tipke

Samsungov daljinski upravljač radi bolje od (vrlo jeftinog) jednostavnog.

Korak 7: Opis hardvera

Opis hardvera
Opis hardvera
Opis hardvera
Opis hardvera
Opis hardvera
Opis hardvera

Postoje različite verzije Arduino Pro Mini. Imajte na umu da se veze mogu razlikovati.

Dodan mikrotalasni senzor pokreta RCWL-0516.

Sve dok postoji pomak u blizini sata, NeoPixel ostaje uključen

i čim nema više pokreta NeoPixel se isključuje nakon nekoliko minuta.

U verziji 2.0, DCF77 prijemnik se napaja preko pina 13. Ovaj pin je definiran kao izlaz i postavlja se visoko kada se adresira DCF77 rutina. DCF77 prijemnik koristi 0,28 mA i potreban je samo nekoliko minuta dnevno.

Isključivanje sprema

5 volti * 0,28 mA / 1000 * 24 sata * 365 dana * 1 / 0,85 efikasno napajanje = 14,4 vata godišnje.

Ovo ne izgleda previše, ali svaki dio pomaže.

Korak 8: LDR za kontrolu svjetline neopiksela

LDR za kontrolu svjetline neopiksela
LDR za kontrolu svjetline neopiksela
LDR za kontrolu svjetline neopiksela
LDR za kontrolu svjetline neopiksela

Dodan LDR za kontrolu svjetline neopiksela.

LDR sam zalijepio u prostor neopiksela 103. Ovaj se ne koristi u prikazu vremena i stoga ne utječe na regulaciju. Papir prigušuje upadno svjetlo, ali to nije problem.

Razdjelnik napona LDR -a i otpornika od 20 koma ide na A0 Arduino Pro Mini. Napon je pokazatelj intenziteta svjetlosti, a time i pokazatelj količine svjetlosti koju neopikseli moraju dati.

Formula koju koristim daje mi dobru kontrolu svjetla, može se prilagoditi ovisno o okolnostima. Ovisno o količini svjetla, napon može varirati između 0 i 5 volti, što se pretvara u 0 do 1024 broja koji su u "LDRValue".

Ako je nova izmjerena vrijednost veća od posljednje izračunate vrijednosti, intenzitet se povećava za 1, ako je manji od smanjenog za 1 i ako je jednak, ništa se ne radi. Kako bi se vrijednost polako odvijala, kako ne bi došlo do treptanja, samo 1 se povećava ili smanjuje, a budući da je proračun u petlji, ponovno se izračunava nakon što je petlju prešao petlju.

Intenzitet je teoretski minimum 20, a maksimum 1024/7 + 45 = 191. Maksimalna vrijednost koju sam izmjerio je 902, što iznosi intenzitet 173. To se dobro uklapa sa 150 koje sam postavio kao zadanu vrijednost. (vidi piksele.setBrightness (150))

U verziji 2.0 možete postaviti kontrolu putem daljinskog upravljača. Dodani su sljedeći parametri: Brightness_min kao minimalna i Brightness_max kao maksimalna postavka i Brightness_Offset kao parametar postavke. Svjetlina_min i _max su vrijednosti koje mogu ovisiti o vašoj situaciji. Brightness_Offset je vrijednost koja se može postaviti daljinskim upravljačem i pomoću koje se može postaviti manje ili više svjetline.

Postoji također mrtva zona 3 između izmjerene LDRValue i izračunatih BerLDRValue vrijednosti.

Pomoću izjava za štampanje u void BrightnessControl provjerite postavku svjetline.

Korak 9: Smanjivanje potrošnje energije WS2812B

Smanjenje potrošnje energije WS2812B
Smanjenje potrošnje energije WS2812B

Upravljački programi na WS2812B adresabilnim neopikselima crpe struju čak i kada su neopikseli isključeni, postavljeni na boju 0 (elementi neopiksela nisu upaljeni).

Kad istekne svih 169 neopiksela, mjerim 69 mA na neopiksele. Pod pretpostavkom da je sat isključen 12 sati dnevno, ukupno isključivanje tada štedi: 5 (napajanje voltom) * 69/1000 (miliampere / 1000 = amperi) * 12 (broj sati dnevno) * 365 (broj dana u godina) = 1511 Watt hours. Dakle na godišnjoj osnovi 1,5 kWh. Slažem se, nije mnogo samo po sebi, ali mnoge male čine veliku.

Krug je jednostavan. Plus napajanja se uključuje pomoću P-kanalnog MosFet-a. Radarski senzor određuje jesu li neopikseli uključeni ili isključeni. Postavio sam dva MosFeta paralelno kako bi otpor ON bio što manji zbog gubitka MosFeta. U normalnoj upotrebi mjerim 4, 5 milivolta preko MosFeta. Kapijom se upravlja izlazom 4 iz Arduina preko otpornika od 470 Kohm. Ako izlaz digitalno padne na (0), neopikseli su uključeni, a na visokom (1) isključeni.

Korak 10: Nasmijani na satu za riječi

Smajlić na satu riječi
Smajlić na satu riječi
Smajlić na satu riječi
Smajlić na satu riječi

Smajlić na satu riječi.

Na satu se povremeno pojavi smiješak. Međutim, to vas čini sretnima.

Smiley se aktivira pomoću radarskog senzora. Broj kretanja (podesivo) mjera je izgleda Smileyja. Znakovi % ukazuju na to da je kretanje otkriveno. Sa svakim desetim (podesivim) pokretom, Smiley dolazi s Winky Faceom, a nakon tri puta Winky Face dolazi četvrti put Smiley Face izbacuje jezik.

Smiley je mala promjena u kodu.

Korak 11: Koje se biblioteke koriste

Koje se biblioteke koriste.

Koristim ih u sustavu Windows 7 s Arduino IDE 1.6, a testirani su i u sustavu Windows 10 s Adruino IDE 1.8.8

RTClib-master

Arduino-DS3231-master

Adafruit_NeoPixel-master

Arduino-DCF77-master

IRremote biblioteka Kena Shirriffa

Budući da uvijek postoji zabuna oko korištene biblioteke, dodajem onu koju koristim.

Biblioteka IRremote koristi puno memorije. U IRremote.h je naznačeno da možete onemogućiti sve neiskorištene protokole

// Svaki protokol koji uključite košta memoriju, a tokom dekodiranja troši vrijeme // Onemogućite (postavite na 0) sve protokole koji vam nisu potrebni/želite!

Sve mi je onemogućeno osim NEC i Samsung protokola. Ovo štedi memoriju od 10%. Trenutno više nema problema s količinom memorije, pa zasad onemogućavanje nije potrebno.

Korak 12: Jednostavno IC daljinsko upravljanje

Jednostavno IC daljinsko upravljanje
Jednostavno IC daljinsko upravljanje
Jednostavno IC daljinsko upravljanje
Jednostavno IC daljinsko upravljanje
Jednostavno IC daljinsko upravljanje
Jednostavno IC daljinsko upravljanje

Skupština

Kao što možete vidjeti na fotografijama, pokazalo se da je rupa za LED 132 malo prevelika. Ovo sam dobro iskoristio i dodao mu IR prijemnik. Spojite pin podataka IC prijemnika VS1838 na pin 7 Arduina. Nadalje priključite plus i minus napajanje. IC prijemnik koristi 0,21 mA i mogao bi se spojiti na plus napajanje nakon prekidača FET. Ovo rezultira uštedom, ako je sat uključen na 50% vremena, od 5 volti * 0,21 mA / 1000 * 12 sati * 365 dana * 1 / 0,85 efikasnog napajanja = 5,4 vata godišnje. Ovo ne izgleda previše, ali svaki dio pomaže.

Operacija je sledeća

Pritisnite bilo koji taster na daljinskom upravljaču, a zatim taster OK. Prvi put kada pritisnete, završit ćete u IC obradi, a drugi put ćete otkriti je li to bio opravdan zahtjev. Drugi put OK mora brzo slijediti prvi pritisak tipke jer se u suprotnom vraća natrag. Napravio sam ovu konstrukciju tako da jedva da sam ispravno dekodirao prvi kôd i stoga nisam završio u rukovanju IC -om.

Jednom u rukovanju infracrvenim zračenjem, zatim se uključuje niz LED dioda radi informacija, radi objašnjenja pročitajte dalje i pogledajte prvu sliku.

Opis je za jednostavan daljinski upravljač, ali možete koristiti bilo koji daljinski upravljač i definirati vlastite ključeve. Koristio sam i Samsung daljinski upravljač.

Prva četiri ključa odgovaraju četiri gornja reda LED -a. Četiri LED -a okreću se lijevo ili desno ovisno o postavci. Kada se pritisnu tipke 1 do 4, stanje se obrće i pohranjuje u memoriju.

1 efekt fiksne boje ili duga

2 sekunde isključen ili drugi uključen

3 smajli isključeni smiley on

4 DCF77 isključen ili DCF77 uključen

Broj ključa prikazan je na sljedećim tipkama

5 brojač smajlija

6 širina spektra duginih boja

7 popravi crvenu postavku

8 popravi zelenu postavku

9 popravi plavu postavku

Red 6, 7 i 8 LED dioda sada odgovaraju postavljenoj vrijednosti, red 6 označava jedinice, red 7 desetice, a red 8 stotinu. Svaki red počinje s vrijednošću nula. Dakle, prva led u redu je 0, druga je 1 itd.

0 podešavanje vremena

/\ postavka osvetljenosti

Kada pritisnete dugme 0, "deset" LED lampica zasvijetli kako bi pokazalo da želite postaviti vrijeme, a kada pritisnete 0 drugi put, na ekranu se prikazuje postavljeno vrijeme.

Sada se može podesiti vrijeme i prikazuje se na ekranu.

Podesite tačno vreme, a zatim, ako su minute iste na referentnom satu, pritisnite dugme OK.

Vreme je podešeno.

Ako ne pritisnete dugme za minute ili sate, neće se izvršiti promjena vremena. Ako ih pritisnete, vrijeme će se odmah postaviti.

Vrijednost tipki 5 do 9 može se promijeniti pomoću tipki

desno je plus 1

lijevo je minus 1

napred je plus 10

rikverc je minus 10.

i za podešavanje vremena

desno je plus 1 minuta

lijevo je minus 1 minuta

naprijed je plus 1 sat

rikverc je minus 1 sat

Ponekad se dogodi da pritisak na tipku nije prepoznat ili se izvede dva puta. Zato obratite pažnju ako postavka ide dobro. U suprotnom pokušajte ili ispravite ponovo. Samsungov daljinski upravljač koji sam takođe testirao radio je mnogo puta bolje od (vrlo jeftinog) jednostavnog daljinskog upravljača.

Prilikom postavljanja boje vidite promjenu direktno na cijelom ekranu. Za web lokaciju s pregledom boja pogledajte https://www.helderester.nl/kleurentabel.html. Naravno, možete postaviti bilo koju vrijednost.

Ako širina spektra duge ima vrijednost 0, spektar je vrlo uzak i zaslon ima jednu boju koja se stalno mijenja.

Nedostatak postavljanja vremena na ovaj način je što ne možete izračunati prijelaz ljeto / zima jer imamo pogrešan datum. Za sat nije važno jer ga sada ne koristimo.

Korak 13: Koji Nexts?

Koji Nexts?
Koji Nexts?

Slijedi zvuk ako je slobodne memorije još uvijek dovoljno.

Već imam kutije za zvučnike. Oni su sa starog laptopa.

Preporučuje se: