Bună după-amiaza, vreau să împărtășesc altul homebrew crenguță. De această dată am decis să scriu instrucțiuni pentru fabricarea matricei Led. Dimensiunea este mică diode 10x10. Dar, conform acestei instrucțiuni, este posibil să se facă matrici și dimensiuni mari. Pentru frumusețe adăugat iluminare de fundal. Baza a fost luată de LED-urile adresabile WS2812 montate pe o bandă la 60 de diode pe metru. Le vom gestiona prin Arduino Pro Mini. Există o mulțime de opțiuni pentru utilizarea matricei. De exemplu, am adăugat un senzor de temperatură și am scris firmware-ul ceasului fără RTC.
Vom avea nevoie de:
- Banda WS2812 cu 120 LED-uri, 60 bucăți pe metru
-
- Alimentare pentru 5V 1A
- senzor de temperatură ds18b20
- Rezistor 4,7 Kom 0,25 W
- PAL din grosime de 10 mm
- Plastic mat sau "Lapte"
- Carton gros
- banda electrica
- conectarea firelor
- placa de circuit
- Butoane
- Șuruburi autofiletante 19 mm
- fier de lipit
- Soldat, colofon
- bandă cu două fețe
- USB-TTL
- burghiu sau șurubelniță
- Fierăstrău electric
- burghie pentru lemn
Pasul 1 Pregătirea Diodelor
Luăm un carton dens și îl „căptușim”, adică desenăm linii orizontale cu o distanță între ele de 16 mm. Numărăm 100 diode din caseta noastră. Aceste 100 de diode se transformă în segmente de 10 diode. Restul de 20 sunt tăiate cu o diodă. Acest lucru trebuie făcut cu atenție și strict de-a lungul liniilor tăiate. Permiteți-mi să explic: sunt necesare 10 segmente din 10 diode în total 100 pentru matrice, restul de 20 sunt retroiluminate. Secțiuni de 10 diode sunt lipite pe carton de-a lungul liniilor. Atenție la direcția semnalului de control pentru diode! Semnalul de control trebuie furnizat în direcția corectă, în acest scop săgeata este afișată pe direcția benzii. Lipiți prima bandă de la stânga la dreapta, adică IN (intrare) pe bandă trebuie să fie la stânga, iar OUT (la dreapta). Astfel, IN (intrarea) primei benzi ar trebui să se afle în colțul din stânga sus! Lipiți următoarea bandă dimpotrivă, de la dreapta - la stânga. Al treilea din nou de la stânga la dreapta. Deci mai departe. Atunci când urmăm direcția semnalului de control, ar trebui să obținem o linie în zig-zag, pornind din colțul din stânga sus. Principalul lucru este să nu confundați nimic.
Între prima și a doua bandă, mai aproape de început, face o gaură pentru fire. Lipiți firele pe prima bandă, de preferință de mai multe culori, pentru a nu se amesteca. Le trecem prin gaura făcută. Apoi, lipați dungi noastre cu fire scurte. + 5 de la prima cavitate la +5 a doua. GND către GND. De la OUT al primei benzi până la IN a celei de-a doua benzi, de la OUT a celei de-a doua benzi la IN a celei de-a treia și așa mai departe. Rezultatul ar trebui să fie următorul:
Pasul 2 Crearea cazului.
Cazul este format din trei părți. În primul rând, trebuie să tăiați rama din PAL de 10 mm grosime. Cel mai bine este să tăiați cu un puzzle, dar în absență poate fi luat manual. Partea pătratului exterior este de 190 mm.Intern - 170 mm. Pentru frumusețe, este mai bine să rotunjiți colțurile. Astfel, trebuie să se obțină un cadru de 190 x 190 mm și o grosime a peretelui de 10 mm. După tăiere, curățăm cu șmirghel fin.
Procedăm la fabricarea celei de-a doua părți. Atașăm rama noastră pe tabla de PAL și desenăm un creion în jurul marginii exterioare. Îndepărtăm cadrul. Ne retragem 30 mm pe fiecare parte în interiorul pătratului și tragem un pătrat interior. Ar trebui să obțineți un alt cadru de 190 x 190, dar cu o grosime laterală de 30 mm. La o distanță de 5 mm de marginea exterioară a acestui cadru și la o distanță egală între ele, facem găuri cu un diametru de 3 mm. 2 găuri pe fiecare parte. Sunt necesare pentru șuruburi. De asemenea, trebuie să decideți unde va fi partea superioară, iar în colțul din stânga sus al pătratului interior, faceți un slot pentru fire.
Pe partea din spate a celui de-al doilea cadru, de-a lungul perimetrului laturii interioare, este necesar să înșurubați segmente de la același PAL de 10 mm grosime. Rezultatul ar trebui să arate astfel:
Mergi la adunare. Punem al doilea cadru pe masă. Sus, diodează, pune o cutie de carton cu diode. Și acoperim totul cu primul cadru. Așezați cartonul între cadre, astfel încât diodele să circule paralel cu laturile cadrului și la o distanță egală de margini. Îl întoarcem peste tot, cu foarte mare atenție, pentru a nu da jos diodele și o răsucim pe toate. După aceea, tăiem excesul de carton.
Mergeți la lumina de fundal. În partea diodelor, între penultima și ultima fâșie, mai aproape de marginea stângă, trebuie să găuriți o gaură pentru fire. Lipiți firele până la capătul ultimei benzi și trageți aceste fire prin orificiu. Celelalte rămase și tăiate câte 20 de diode trebuie lipite pe partea din spate, la o distanță egală între ele. 5 bucăți pe fiecare parte. Direcția semnalului de comandă este mîna pe oră pornind din colțul din dreapta jos. Le-am sudat precum și matricea. Firurile derivate de la capătul matricei sunt lipite la prima diodă. + 5 de la prima diodă la +5 din a doua. GND către GND. De la OUT al primei diode la IN a celei de-a doua, de la OUT a celei de-a doua la IN a celei de-a treia, etc.
Plasăm Arduino Pro Mini în interiorul cadrului posterior, în spatele matricei. Pentru alimentare folosiți o sursă stabilizată de 5 volți. Cu o putere curentă de cel puțin 1 amperi. Diodele sunt destul de vorace și dacă intenționați să le porniți imediat și pentru o lungă perioadă de timp, alimentarea este necesară mai puternic, vă recomand 1,5 - 2 amperi. Conectăm toate acestea împreună de la +5 alimentare la +5 Arduino și +5 WS2812. -5 alimentare cu GND Arduino și GND WS2812. Firul de control de la IN WS2812 este conectat la „pinul 6” Arduino.
Diodele sunt foarte luminoase și nu arată foarte plăcut din punct de vedere estetic. Prin urmare, este necesar să fabricați și să instalați un difuzor. Plasticul mat este cel mai potrivit pentru acest lucru sau cum se numește "lapte". Este necesar să atașați matricea la plastic și să cercuiți cu un creion. Apoi tăiați și fixați pe banda frontală pe față. Nu este întotdeauna posibil să găsești rapid un astfel de plastic, dar chiar vreau să încep produsul. În acest caz, puteți utiliza carton alb sau hârtie de peisaj în loc de plastic.
După același principiu, este posibil să se facă o matrice de dimensiuni mari. Este necesar să se reconstituie doar dimensiunile cazului.
Pasul 3 Conectați senzorul de temperatură.
Doar că acest ceas nu este interesant, așa că adăugați un senzor de temperatură. Pentru a măsura temperatura, vom folosi senzorul integrat DS18B20. Are o precizie de măsurare mare, eroarea nu este mai mare de 0,5 ° C. Deja din fabrică, senzorul este calibrat și nu sunt necesare setări suplimentare. Domeniu larg de măsurare a temperaturii -55 ... + 125 ° C. Poate fi utilizat în orice cameră. Dacă pe stradă, atunci trebuie să aveți grijă de protecția împotriva umidității. Există două moduri de funcționare: cu o sursă de alimentare externă și „putere spuriță”. Vă recomand să folosiți cu alimentare externă.
Mai mulți senzori pot fi incluși pe o singură linie de comunicare. Dar pentru noi, unul este suficient. +5 preluăm de la sursa de alimentare. GND până la -5. Sârmă de la pinul „DQ” ds18b20 la „pinul 9” Arduino.Nu uitați să puneți un rezistor de extragere între „DQ” și +5 la 4,7 kOhm. După părerea mea, este cel mai convenabil să faci acest lucru pe senzorul în sine. Îl afișăm în colțul din dreapta sus:
Pasul 4 Pregătirea unei plăci cu butoane.
În acest caz, folosim matricea ca un ceas. Ora poate fi setată folosind portul serial conectând Arduino la computer. Acest lucru nu este întotdeauna convenabil. Prin urmare, vom fabrica o placă cu trei butoane pentru a seta ora. Pe lângă aceasta, matricea poate fi folosită în alte scopuri, trebuie doar să scrieți o altă schiță. Apoi butoanele pot fi utilizate în alte scopuri.
Le conectăm după cum urmează: conectați cablul comun la toate cele trei butoane la „GND” Arduino. Primul buton, servește pentru a intra în modul de setare a orei și pentru a trece timpul și data, pentru a vă conecta la „Pin 2”. Al doilea, butonul pentru creșterea valorii, este „Pin 3”, iar al treilea, butonul pentru scăderea valorii, este „Pin 4”. Atașăm butoanele la banda dublu față din spatele matricei:
Pasul 5 Firmware.
După cum am spus, matricea poate fi folosită în diferite scopuri. În prezent am scris o schiță doar pentru ceasuri. În schema ulterioară și alte schițe. Pentru scriere și completare folosesc Arduino IDE 1.8.5. Puteți controla matricea în mai multe moduri. Controlează fiecare diodă individual sau ca o singură matrice. În schița mea folosesc prima opțiune. Pentru a face acest lucru, aveți nevoie de o bibliotecă de la Adafruit numită NeoPixel-master:
Pentru a lucra cu diode ca și cu matricea matrice Adafruit_NeoMatrix-master și Adafruit-GFX-Library-master:
Un senzor de temperatură are nevoie de biblioteca OneWire.
Pentru a edita și completa schița, trebuie să instalați mai întâi Arduino IDE de pe site-ul oficial al Arduino.cc, și apoi toate aceste biblioteci. Este necesar să dezarhivați aceste arhive și să plasați fișierele neambalate în folderul „biblioteci” situat în folderul cu Arduino IDE instalat. De asemenea, este posibil să instalați biblioteci direct în IDE Arduino. Fără a despacheta arhivele descărcate, în IDE Arduino, selectați meniul Sketch - Connect Library. În partea de sus a listei derulante, selectați „Adăugați biblioteca .Zip”. În fereastra de dialog care apare, selectați biblioteca pe care doriți să o adăugați. După toate manipulările, trebuie să reporniți ID-ul Arduino.
Senzorul de temperatură are o adresă unică pentru fiecare dispozitiv - un cod pe 64 de biți. Găsirea acestui cod este o sarcină solicitantă. Prin urmare, trebuie mai întâi să conectați senzorul la Arduino, completați schița aflată în meniul Fișier - Exemple - Dallas Temperatură - OneWireSearch. Apoi, executați Instrumente - Port Monitor. Arduino ar trebui să-ți găsească senzorul și să-i scrie adresa. Copiem sau notăm pur și simplu adresa senzorului. Deschideți schița Ard_Tic_Tak_WS2812_Matrix_10x10_Serial_Knopki_Term, căutați linia:
byte addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adresa senzorului meu
Notăm adresa senzorului dvs. între bretele, înlocuind adresa senzorului meu.
Acest ceas nu utilizează modulul RTC. Prin urmare, dacă se grăbesc sau în spate, ar trebui să schimbați valoarea din linie:
if (micros () - prevmicros & gt; 494000) {// schimbarea în alta pentru ajustare a fost 500.000
Este necesar să se determine acest număr empiric. Dacă ceasul tău se grăbește, ar trebui să crești acest număr, dacă sunt în urmă, scade.
Completați schița.
Imi cer scuze, dar nu am reusit sa fac o fotografie cu diodele pornite. Am încercat cu și fără lumini. Dar vă asigur că trăiesc că arată mult mai bine.