Cuprins:
- Pasul 1: Carcasa pentru ceas
- Pasul 2: Neopixeli
- Pasul 3: Ajustarea textului frontal
- Pasul 4: Efect curcubeu complet
- Pasul 5: Diversele componente
- Pasul 6: Cod pentru ceas
- Pasul 7: Descrierea hardware-ului
- Pasul 8: LDR pentru controlul luminozității neopixelilor
- Pasul 9: Reducerea consumului de energie WS2812B
- Pasul 10: Smiley la Word Clock
- Pasul 11: Ce biblioteci sunt utilizate
- Pasul 12: Telecomandă IR simplă
- Pasul 13: Ce Nexte?
Video: Ceas Word Rainbow cu efect Rainbow complet și multe altele: 13 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Obiective
1) Simplu
2) Nu este scump
3) Cât mai eficientă din punct de vedere energetic
Rainbow Word Clock cu efect curcubeu complet.
Un zâmbet pe ceasul cuvântului.
Telecomandă IR simplă
Actualizare 03-nov-18 LDR pentru controlul luminozității neopixelilor
Actualizare 01-ianuarie-19 Reducerea consumului de energie WS2812B.
Actualizare Smiley 15-ianuarie-19.
Actualizare 23-ianuarie-19 Cod 1.6
Actualizați linkurile pentru biblioteci 10-mar-19
Actualizați versiunea 14-apr-19 1.7 Alegere smiley on / off curcubeu curcubeu / fix enz.
Ultima actualizare 01-jun-19 versiunea 2.0 Telecomanda IR și reproiectarea codului
Pasul 1: Carcasa pentru ceas
Cu câteva instrumente simple și un pic de îndemânare, nu este greu să creez un ceas cu scrisori Am folosit materialele disponibile pentru mine.
Pentru caz am folosit o bară de pin aspră în care am tăiat câteva cadre. Acestea ar face cele patru laturi ale carcasei, care au fost lipite între ele și întărite cu o mică bucată de lemn în colțuri. Atunci lemnul are nevoie de șlefuire și vopsire.
Literele sunt decupate din folie de o imprimantă care scrie în oglindă. Folia se află în spatele plăcii de sticlă și este acoperită cu o hârtie model dublu strat pentru o mai bună distribuție a luminii. Sticla este fixată cu etanșant siliconic.
Pasul 2: Neopixeli
LED-urile Neopixels sunt aranjate pe o placă de lemn, în care găuriți mai întâi găuri de 3 mm. În partea din față sunt mărite la dimensiunea literelor la 3/4 adâncime. După aceea, cei 3 mm din spate sunt mărite la 10 mm, aceasta este dimensiunea unui Neopixel. Pentru unele personaje, printre altele, W, gaura ar trebui să fie ușor ajustată.
Am folosit placaj care s-a despicat rapid, MDF poate fi mai bun.
Cu LED-uri individuale nu sunteți legat de o distanță fixă, așa cum este cazul benzilor cu LED-uri. LED-urile trebuie să fie conectate între ele. Puteți face acest lucru cu toate bucățile scurte de sârmă. Dar cele două conexiuni min (-) sunt la fel ca cele două conexiuni plus (+) conectate intern, deci aceeași conexiune.
Vă puteți economisi multă muncă prin lipirea unei bucăți de sârmă la LED-ul din stânga și apoi la LED-ul din dreapta. Apoi lipiți cele intermediare.
Conexiunea de date trebuie, desigur, cu piese scurte, deoarece ieșirea datelor se duce la introducerea datelor.
Pasul 3: Ajustarea textului frontal
Placa frontală este acum în olandeză, dar pur și simplu pentru a fi convertită în orice limbă.
Ledurile NeoPixels sunt comutate succesiv aici de la 0 la 167. Numerotarea merge de la primul rând din stânga sus la dreapta și apoi la al doilea rând de la dreapta la stânga etc. Ajustarea se poate face în funcție de propriile nevoi. Numărul de NeoPixeli este determinat de cantitatea de caractere. Mai puțini sau mai mulți Neopixeli pot fi reglați în următoarea linie
#define NUMPIXELS 168 // Câți NeoPixel sunt atașați la Arduino?
168 este mai mult decât un alt număr. Numerotarea începe de la 0. Puteți crea orice text. Dacă schimbați textul, va trebui, de asemenea, să ajustați cuvintele corespunzătoare. Numerotarea rămâne aceeași.
De exemplu, DRIE-ul procesului verbal este determinat în cod
void zetmDrie () {
Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // min-drie
}
Dacă doriți să faceți cuvântul Arduino, atunci merge așa:
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; // Word-arduino
}
Deci, puteți face cuvinte între.
Pentru cuvintele cu ceas este util dacă formează un cuvânt contigu, dar nu este absolut necesar. Literele neutilizate nu au nevoie de Neonpixeli. Le-am completat pe toate pentru utilizarea posibilităților viitoare, altele decât timpul afișat.
Dacă schimbați punctul de plecare sau modificați succesiunea succesiunii, numerotarea ar trebui să se schimbe în consecință.
Pasul 4: Efect curcubeu complet
Ceasul este acum atât de programat încât se contorizează numărul de ori pe secundă câte neopixeli sunt pornite.
Spectrul total este aproximativ numărul de divizați și apoi ușor deplasat. Ca urmare, fiecare Neopixel are o culoare diferită care se schimbă continuu. Neopixel nr 1 și nr 167 se succed pe o anumită culoare.
Dacă preferați culori mai puțin diferite în același timp, acest lucru este ușor de reglat. Culoarea se schimbă încă pe întregul spectru, dar cu o parte mai mică a acestuia. Neopixel nr 1 și nr 167 nu se mai urmează unul pe celălalt și implică o anumită culoare.
Luminozitatea poate fi setată în următoarea linie, pixeli.setBrightness (150);
Un număr mai mic este mai mic și un număr mai mare mai multă luminozitate.
Pasul 5: Diversele componente
Următoarele componente le-am folosit
Arduino Pro Mini ATMEGA328 5V / 16MHz
Modul de ceas DS3231
168 bucăți Neopixeli cu LED WS2812 LED Chip și radiator 5V 5050 RGB WS2811 IC încorporat
Șablon scrisoare din folie
Receptor DCF77
Pasul 6: Cod pentru ceas
Iată codul. S-a adăugat un control al luminozității și oprire atunci când nimeni nu este prezent și noaptea.
S-a adăugat senzorul de mișcare radar cu microunde RCWL-0516 (căutați RADAR)
După 10 minute fără mișcare, NeoPixels se sting.
Despre versiunea 2.0
Utilizarea memoriei a fost prea mare, fără avertismente de memorie în compilator. De aceea am schimbat complet codul, dar operația a rămas aceeași și s-a adăugat un receptor IR.
Există o bucată de cod pentru a furniza EEPROM-ului cu date. Rulați o dată eliminând temporar / * și * /. Căutați => rulați o dată pentru a furniza EEPROM cu date
La începutul buclei de gol este codul pentru a citi codul de la propria telecomandă. Puteți rula acest lucru eliminând temporar / * și * /, nu uitați să le puneți înapoi după aceea. De asemenea, vă puteți defini propriile butoane. Codul citit trebuie introdus în => Definiți propriile butoane aici
Telecomanda Samsung funcționează mai bine decât simpla (foarte ieftină).
Pasul 7: Descrierea hardware-ului
Există diferite versiuni ale Arduino Pro Mini. Vă rugăm să rețineți, conexiunile pot diferi.
S-a adăugat un senzor de mișcare cu microunde RCWL-0516.
Atâta timp cât există mișcare în vecinătatea ceasului, NeoPixel rămâne aprins
și imediat ce nu mai există mișcare, NeoPixel se stinge după câteva minute.
În versiunea 2.0, receptorul DCF77 este furnizat cu alimentare prin pinul 13. Acest pin este definit ca ieșire și setat la înaltă atunci când rutina DCF77 este adresată. Receptorul DCF77 folosește 0,28 mA și este necesar doar câteva minute pe zi.
Dezactivarea salvării
5 Volți * 0,28 mA / 1000 * 24 de ore * 365 de zile * Sursa de alimentare cu eficiență de 1 / 0,85 = 14,4 wați pe an.
Acest lucru nu pare prea mult, dar fiecare bit ajută.
Pasul 8: LDR pentru controlul luminozității neopixelilor
S-a adăugat un LDR pentru controlul luminozității neopixelilor.
Am lipit LDR în spațiul neopixelului 103. Acesta nu este utilizat în afișarea timpului și, prin urmare, nu influențează reglementarea. Hârtia umple lumina incidentă, dar nu este o problemă.
Divizorul de tensiune al rezistorului LDR și al rezistenței de 20 kohm merge la A0 al Arduino Pro Mini. Tensiunea este un indicator al intensității luminii și, prin urmare, un indicator al cantității de lumină pe care neopixelii trebuie să o dea.
Formula pe care o folosesc îmi oferă un control bun al luminii, poate fi ajustată în funcție de circumstanțe. În funcție de cantitatea de lumină, tensiunea poate varia între 0 și 5 volți, care este convertită la 0 la 1024 numere care sunt în „LDRValue”.
Dacă noua valoare măsurată este mai mare decât ultima valoare calculată, intensitatea este crescută cu 1, dacă este mai mică decât decrementată cu 1 și dacă este egală nu se face nimic. Pentru a face ca valoarea să se desfășoare încet, astfel încât să nu existe niciun efect de clipire, doar 1 este mărit sau micșorat și deoarece calculul este în buclă, acesta este recalculat numai după parcurgerea buclei de 25 de ori.
Intensitatea este teoretic minim 20 și maxim 1024/7 + 45 = 191. Valoarea maximă pe care am măsurat-o a fost 902, care se ridică la o intensitate de 173. Aceasta se potrivește bine cu 150 pe care le-am setat ca valoare implicită. (vezi pixels.setBrightness (150))
În versiunea 2.0 puteți seta comanda prin telecomandă. Au fost adăugați următorii parametri: Luminozitate_min ca minim și Luminozitate_max ca setare maximă și Luminozitate_Ofset ca parametru de setare. Luminozitatea_min și _max sunt valorile care pot depinde de propria situație. Brightness_Offset este o valoare care poate fi setată cu telecomanda și cu care poate fi setată mai mult sau mai puțin luminozitate.
Există, de asemenea, o bandă moartă de 3 între LDRValue măsurat și valorile BerLDRValue calculate.
Utilizați declarațiile de imprimare din butonul BrightnessControl pentru a verifica setarea de luminozitate.
Pasul 9: Reducerea consumului de energie WS2812B
Driverele de pe neopixeli adresabili WS2812B trag curent chiar și atunci când neopixeli sunt opriți, setat la culoarea 0 (nu există elemente de neopixeli aprinse).
Când toți cei 169 de neopixeli sunt în afara, măsoară 69 mA la neopixeli. Presupunând că ceasul este oprit 12 ore pe zi, oprirea totală salvează apoi: 5 (alimentare cu volt) * 69/1000 (Miliampere / 1000 = Ampere) * 12 (Număr de ore pe zi) * 365 (Număr de zile într-o an) = 1511 Watt ore. Deci, pe o bază anuală 1,5 Kwh. Sunt de acord, nu este mult în sine, dar multe mici fac una mare.
Circuitul este simplu. Plusul sursei de alimentare este comutat de un MosFet cu canal P. Senzorul radar determină dacă neopixelii sunt activi sau opriți. Am pus două MosFet parrelel pentru a menține rezistența la ON cât mai scăzută posibil datorită pierderii MosFet-urilor. În utilizare normală măsoară 4, 5 mili volți peste MosFets. Poarta este controlată de ieșirea 4 de la Arduino printr-un rezistor de 470 Kohm. Dacă ieșirea ajunge la scăzut (0) digital, neopixelii sunt aprinși și la un nivel ridicat (1) sunt opriți.
Pasul 10: Smiley la Word Clock
Un zâmbet pe ceasul cuvântului.
Apare ocazional câte un Smiley pe ceas, însă asta te face fericit.
Smiley este declanșat de senzorul radar. De câte ori mișcarea (reglabilă) este o măsură a aspectului Smiley. Semnele% indică faptul că mișcarea a fost detectată. Cu fiecare a zecea mișcare (reglabilă), Smiley vine cu o față Winky și după trei ori o față Winky vine a patra oară când un Smiley Face scoate limba.
Smiley este o mică modificare a codului.
Pasul 11: Ce biblioteci sunt utilizate
Ce biblioteci sunt utilizate.
Le folosesc în Windows 7 cu Arduino IDE 1.6 și au fost testate și în Windows 10 cu Adruino IDE 1.8.8
RTClib-master
Arduino-DS3231-master
Adafruit_NeoPixel-master
Arduino-DCF77-master
Biblioteca IRremote a lui Ken Shirriff
Deoarece există întotdeauna confuzie cu privire la biblioteca utilizată, o adaug pe cea pe care o folosesc.
Biblioteca IRremote folosește multă memorie. În IRremote.h este indicat faptul că puteți dezactiva orice protocol neutilizat
// Fiecare protocol pe care îl includeți costă memorie și, în timpul decodării, costă timpul // Dezactivați (setat la 0) toate protocoalele de care nu aveți nevoie / doriți!
Am totul dezactivat, cu excepția protocolului NEC și Samsung. Acest lucru oferă o economie de memorie de 10%. În acest moment nu mai există nicio problemă cu cantitatea de memorie, așa că deocamdată nu este necesară dezactivarea.
Pasul 12: Telecomandă IR simplă
Adunarea
După cum puteți vedea în fotografii, gaura pentru LED 132 s-a dovedit a fi puțin prea mare. Am folosit bine acest lucru și am adăugat receptorul IR la acesta. Conectați pinul de date al receptorului IR VS1838 la pinul 7 al Arduino. În plus, conectați sursa de alimentare plus și minus. Receptorul IR utilizează 0,21 mA și ar putea fi, de asemenea, conectat la sursa de alimentare plus după comutatorul FET. Acest lucru are ca rezultat o economie, dacă ceasul este pornit la 50% din timp, de 5 Volți * 0,21 mA / 1000 * 12 ore * 365 de zile * 1 / 0,85 sursă de energie eficientă = 5,4 wați pe an. Acest lucru nu pare prea mult, dar fiecare bit ajută.
Funcționarea este după cum urmează
Apăsați orice tastă de pe telecomanda IR și apoi tasta OK. Prima dată când apăsați, veți ajunge la procesarea IR și a doua oară veți detecta dacă a fost o cerere justificată. A doua oară OK trebuie să urmeze rapid prima apăsare a tastei, pentru că altfel se întoarce din nou. Am făcut această construcție, astfel încât cu greu am primit primul cod corect decodat și, prin urmare, nu am ajuns la manipularea IR.
Odată ajuns în gestionarea IR, mai multe LED-uri se aprind pentru informații, pentru explicații citiți mai departe și vizualizați prima imagine.
Descrierea este pentru telecomanda simplă, dar puteți utiliza orice telecomandă și puteți defini propriile chei. Am folosit și o telecomandă Samsung.
Primele patru taste corespund primelor patru rânduri de LED-uri. Patru LED-uri virează la stânga sau la dreapta în funcție de setare. Când se apasă tastele de la 1 la 4, starea este inversată și stocată în memorie.
1 culoare fixă sau efect curcubeu
Bliț de 2 secunde dezactivat sau al doilea bliț activat
3 smiley off smiley on
4 DCF77 oprit sau DCF77 activat
Numărul tastei este afișat pe următoarele taste
5 contor zâmbitor
6 lățimea spectrului curcubeu
7 fixează setarea roșie
8 fixează setarea verde
9 fixează setarea albastră
Rândul 6, 7 și 8 din LED-urile corespund acum valorii setate, rândul 6 indică unitățile, rândul 7 zecile și rândul 8 suta. Fiecare rând începe cu valoarea zero. Deci primul led din rând este 0 al doilea este 1 etc.
0 setare de timp
/ / setare luminozitate
Când este apăsat butonul 0, LED-urile „zece” se aprind pentru a indica faptul că doriți să setați ora și când apăsați 0 a doua oară, pe ecran apare ora setată.
Ora poate fi setată acum și este afișată pe afișaj.
Setați ora corectă și apoi dacă minutul este același pe un ceas de referință, apăsați butonul OK.
Ora este ajustată.
Dacă nu acționați butonul pentru minute sau ore, nu se va face nicio schimbare de oră. Dacă le apăsați, ora va fi setată imediat.
Valoarea tastelor 5-9 poate fi modificată cu tastele
dreapta este plus 1
stânga este minus 1
înainte este plus 10
invers este minus 10.
și pentru setarea orei
dreapta este plus 1 minut
stânga este minus 1 minut
înainte este plus 1 oră
inversarea este minus 1 oră
Uneori se întâmplă ca apăsarea tastelor să nu fie recunoscută sau să fie efectuată de două ori. Deci, acordați atenție dacă setarea merge bine, altfel încercați sau corectați din nou. Telecomanda Samsung pe care am testat-o, de asemenea, a funcționat de multe ori mai bine decât telecomanda simplă (foarte ieftină).
Când setați culoarea, vedeți modificarea direct pe întregul ecran. Pentru un site cu o prezentare generală a culorilor, consultați https://www.helderester.nl/kleurentabel.html. Desigur, puteți seta orice valoare.
Dacă lățimea spectrului curcubeu are o valoare 0, spectrul este foarte îngust și afișajul are o singură culoare care se schimbă constant.
Dezavantajul setării orei în acest mod este că nu puteți calcula o tranziție de vară / iarnă, deoarece data este incorectă. Nu contează pentru ceasul în sine, deoarece nu îl folosim acum.
Pasul 13: Ce Nexte?
Ce urmează, sună, dacă memoria liberă este încă suficientă.
Am deja cutiile pentru difuzoare. Sunt de la un laptop vechi.
Recomandat:
Seră minunată cu udare automată, conexiune la internet și multe altele: 7 pași (cu imagini)
Seră minunată cu udare automată, conexiune la internet și multe altele: Bine ați venit la acest instructable. La începutul lunii martie, eram într-un magazin de grădină și am văzut câteva sere. Și din moment ce am vrut să fac un proiect cu plante și electronice de mult, am continuat și am cumpărat unul: https://www.instagram.com/p
O-R-A Ceas de perete cu matrice LED RGB și multe altele ** actualizat în iulie 2019 **: 6 pași (cu imagini)
O-R-A Ceas de perete cu matrice LED RGB și multe altele ** actualizat în iulie 2019 **: Bună ziua. Iată-mă cu un nou proiect numit O-R-A Este un ceas de perete RGB LED Matrix care afișează: oră: minut temperatura umiditate pictograma condiției meteorologice curente Evenimente din Google Calendar și 1h de notificări de reamintire la o anumită oră care arată:
Blocare NFC - Când un PCB este, de asemenea, butoane, antenă și multe altele : 7 pași (cu imagini)
Blocare NFC - Atunci când un PCB este, de asemenea, butoane, antenă și multe altele …: Puteți lua unul din cele două lucruri din acest instructable. Puteți urmări și crea propria combinație de tastatură numerică și cititor NFC. Schema este aici. Aspectul PCB este aici. Veți găsi o listă de materiale pentru a comanda p
Tampoane sensibile la presiune (pentru locuri de joacă digitale - și multe altele): 11 pași (cu imagini)
Tampoane sensibile la presiune jucăușe (pentru terenuri de joacă digitale - și multe altele): Acesta este un instructiv pentru a vă arăta cum să realizați un tampon sensibil la presiune - care poate fi utilizat pentru a crea jucării sau jocuri digitale. Poate fi folosit ca un rezistor sensibil la forță la scară largă și, deși jucăuș, ar putea fi folosit pentru proiecte mai serioase
Distribuirea pieselor detaliate: Degete protetice (care strălucesc, schimbă culoarea cu căldură și multe altele ): 10 pași (cu imagini)
Turnarea pieselor detaliate: Degete protetice (care strălucesc, schimbă culoarea cu căldură și multe altele …): Acesta este un ghid despre turnarea pieselor mici și complexe - la prețuri reduse. Ar trebui spus că nu sunt expert în turnare, dar, deoarece necesitatea este adesea mama invenției - unele dintre procesele de aici au funcționat bine. L-am cunoscut pe Nigel Ackland la Future Fest din Londra și