Circuite

Cum se construiește un Cube LED 8x8x8 și se controlează cu un Arduino: 7 pași (cu imagini)

8x8x8 LED CUBE WITH ARDUINO UNO !

8x8x8 LED CUBE WITH ARDUINO UNO !

Cuprins:

Anonim

Există o mulțime de cuburi LED pe Instructables, deci de ce altceva? Cele mai multe sunt pentru cuburi mici formate din 27 sau 64 LED-uri, rareori mai mari, deoarece sunt limitate la numărul de ieșiri disponibile pe microcontroler. Acest cub va fi de 512 LED-uri și va avea nevoie doar de 11 fire de ieșire de la Arduino. Cum este posibil acest lucru? Utilizând driverul LED Allegro Microsystems A6276EA.
Vă voi arăta cum am făcut cubul însuși, placa controlerului și, în sfârșit, codul pentru a face să strălucească.


Furnituri:

Pasul 1: Materiale

Toate piesele de care ai nevoie pentru a construi cubul:
1 Arduino / Freeduino cu cip Atmega168 sau mai mare
512 LED-uri, dimensiunea și culoarea sunt la dvs., am folosit 3mm roșu
4 A6276EA LED-uri chips-uri de la Allegro
8 tranzistoare NPN pentru controlul fluxului de tensiune, am folosit tranzistorul BDX53B Darlington
4 rezistoare de 1000 ohmi, de 1/4 watt sau mai mult
12 560 ohmi rezistențe, 1/4 watt sau mai mult
1 condensator electrolitic 330uF
4 Soclu IC cu 24 pini
9 prize IC cu 16 pini
4 "x4" (sau mai mare) bucată de perfbor pentru a ține toate piesele,
Un ventilator vechi de calculator
Un cablu vechi de controler floppy
O sursă veche de alimentare cu computer
O mulțime de sârmă de legătură, lipire, fier de lipit, flux, orice altceva
face viața mai ușoară în timp ce faceți asta.
Bucata de lemn de 7 "x7" (sau mai mare) folosită pentru a face dispozitivul de lipit cu LED-uri
Un caz frumos pentru a afișa cubul tău finit
My Arduino / Freeduino de alegere este Bare Bones Board (BBB) ​​de la www.moderndevice.com. LED-urile au fost achiziționate de pe eBay și au costat 23 dolari pentru 1000 LED-uri expediate din China. Cele electronice rămase au fost achiziționate de la Newark Electronics (www.newark.com) și ar trebui să coste doar în jur de 25 USD. Dacă trebuie să cumperi totul, acest proiect ar trebui să coste doar în jur de 100 $.
Am o mulțime de echipament informatic vechi, astfel încât acele părți au ieșit din gramada de gunoi.

Pasul 2: Asamblați straturile

Cum se face un strat (64 de LED-uri) din acest cub LED 512:
LED-urile pe care le-am cumpărat au fost de 3mm în diametru. Am decis să folosesc LED-uri mici pentru a reduce costurile și pentru a mări dimensiunea finală a cubului suficient de mic pentru a sta pe birou sau pe raft fără a prelua complet biroul sau raftul.
Am desenat o grilă de 8x8, cu aproximativ 6 inci între linii. Acest lucru mi-a dat o dimensiune cub de aproximativ 4,25 cm pe fiecare parte. Găsuiți găuri de 3 mm unde liniile se întâlnesc pentru a face o jig care să țină LED-urile în timp ce lipiți fiecare strat.
A6276EA este un dispozitiv de chiuveta curent. Aceasta înseamnă că oferă mai degrabă o cale către sol decât o cale către sursa de tensiune. Va trebui să construiți cubul în configurația anodică obișnuită. Cele mai multe cuburi sunt construite ca un catod comun.
Partea lungă a LED-ului este, în general, anodul, verificați-vă pentru a vă asigura. Primul lucru pe care l-am făcut a fost să testez fiecare LED. Da, este un proces lung și plictisitor și îl puteți săriți dacă doriți. Prefer să-mi petrec timpul pentru a testa LED-urile decât pentru a găsi un loc mort în cubul meu după ce a fost asamblat. Am găsit 1 LED mort din 1000. Nu e rău.
Tăiați 11 bucăți de cablu solid, neizolat, până la 5 inci. Plasați 1 LED în fiecare capăt al unui rând în jig și apoi lipiți firul la fiecare anod. Acum puneți cele 6 LED-uri rămase în rând și lipiți acele anozi la fir. Acest lucru poate fi vertical sau orizontal, nu contează atâta timp cât faceți toate straturile în același mod. Pe măsură ce terminați fiecare rând, tăiați excesul de plumb din anozi. Am lăsat aproximativ 1/8 ".
Repetați până când ați terminat toate cele 8 rânduri. Acum, lipiți 3 bucăți de cârlig de sârmă de-a lungul rândurilor pe care tocmai le-ați făcut pentru a le conecta într-o singură bucată. Apoi am testat stratul atașând 5 volți la
prindeți o rețea de sârmă printr-o rezistență și atingeți solul la fiecare catod. Înlocuiți toate LED-urile care nu se aprind.
Scoateți cu grijă stratul din jig și lăsați-l deoparte. Dacă îndoiți firele, nu vă faceți griji, doar îndreptați-le cât puteți de bine. Este foarte ușor să te apleci. După cum puteți spune din imaginile mele, am avut multe fire îndoite.
Felicitări, ați terminat 1/8. Faceți încă 7 straturi.
OPȚIONAL: Pentru a face mai ușor de lipit straturile împreună (Pasul 3), în timp ce fiecare strat ulterior este încă în cotul jigului, partea superioară a centimetrului înainte de 45 până la 90 de grade. Acest lucru va permite
duce la atingerea în jurul LED-ului la care se conectează și va face mult mai ușor de lipit. Nu face acest lucru la primul tău strat, vom declara că unul este stratul inferior și că conductele trebuie să fie drepte.

Pasul 3: Asamblați Cubul

Cum de a lipi toate straturile împreună pentru a face un cub:
Partea greu este aproape de sfârșit. Acum, așezați cu atenție un strat înapoi în jig, dar nu folosiți prea multă presiune, vrem să îl putem îndepărta fără ao îndoi. Acest prim strat este partea superioară a cubului. Plasați un alt strat pe partea superioară a primului, aliniați cablurile și începeți să le lipiți. Mi sa părut mai ușor să faci colțuri mai întâi, apoi marginea exterioară, apoi în interiorul rândurilor.
Continuați să adăugați straturi până când ați terminat. Dacă presați cablurile, asigurați-vă că ați salvat stratul cu cabluri drepte pentru ultima. Este partea de jos.
Am avut un spațiu prea mic între fiecare strat, așa că nu am obținut o formă de cub. Nu e mare lucru, pot trăi cu ea.

Pasul 4: Construirea plăcii controlerului

Cum se construiește placa de control și se atașează la arduino:
Urmați schema și construiți bordul pe care îl alegeți. Am plasat chips-urile de control în centrul plăcii și am folosit partea stângă pentru a ține tranzistoarele care controlează curentul pe fiecare strat al cubului și am folosit partea dreaptă pentru a ține conectorii care merg de la cipurile controlerului la catodii coloanele LED.
Am găsit un ventilator vechi de 40 mm cu un conector molex de sex feminin pentru a-l conecta la o sursă de alimentare a calculatorului. A fost perfect. O cantitate mică de flux de aer în chip este utilă și acum am o modalitate ușoară de a furniza 5 volți chips-urilor de control și Arduino în sine.
Pe schematică, RC este rezistența limitatoare curentă pentru toate LED-urile conectate la fiecare A6276EA. Am folosit 1000 de ohmi, deoarece oferă 5 milliampuri LED-ului, suficient pentru ao lumina. Folosesc High Brightness, nu diode Super Brite, astfel încât scurgerea curentă este mai mică. Dacă toate cele 8 LED-uri dintr-o coloană sunt aprinse simultan, este vorba doar de 40 miliamperi. Fiecare ieșire a lui A6276EA se poate descurca cu 90 de milliampe, deci sunt bine în raza de acțiune.
RL este rezistența conectată la conductorii de semnal sau logică. Valoarea reală nu este foarte importantă atâta timp cât există și nu este prea mare. Folosesc 560 ohmi pentru că am o grămadă de ele disponibile.
Am folosit un tranzistor de putere capabil să manipuleze până la 6 amperi pentru a controla curentul care merge la fiecare strat al cubului. Acest lucru este overkill pentru acest proiect, deoarece fiecare strat al cubului va atrage doar 320 miliamperi cu toate LED-urile aprinse. Am vrut sa cresc spatiul si sa folosesc placa controlerului pentru ceva mai mare mai tarziu. Utilizați orice dimensiune tranzistor se potrivește nevoilor dumneavoastră.
Conductorul de 330 uF de-a lungul sursei de tensiune este acolo pentru a ajuta la eliminarea oricăror fluctuații de tensiune minore. Deoarece folosesc o sursă de alimentare veche a computerului, acest lucru nu este necesar, dar l-am lăsat doar în cazul în care cineva dorește să utilizeze un adaptor de perete de 5 volți pentru alimentarea cubului.
Fiecare cip de controler A6276EA are 16 ieșiri. Nu am avut nici un alt conector adecvat, așa că am sudat conduce la unele 16 pini IC prize și le va folosi pentru a conecta placa de controler la cub. De asemenea, am tăiat o mufă IC la jumătate și am folosit-o pentru a conecta cele 8 fire care leagă tranzistorii de straturile cubului.
Am tăiat aproximativ 5 centimetri de la capătul unui cablu vechi floppy pentru a fi folosit ca conector pentru Arduino. Cablul floppy este de 2 rânduri de 20 de pini, bordul Bones Bones are 18 pini. Acesta este un mod foarte ieftin (gratuit) pentru a conecta Arduino la bord. Am tras cablul de panglică în grupuri de câte 2 fire, am scos capetele și le-am lipit împreună. Acest lucru vă permite să conectați Arduino în oricare rând al conectorului. Urmați schema și lipiți conectorul în poziție. Nu uitați să lipiți conductorii de 5 volți și de masă pentru conector pentru a furniza energie Arduino.
Intenționez să folosesc această placă de controler pentru alte proiecte, astfel încât designul modular funcționează frumos pentru mine. Dacă doriți să conectați tare conexiunile, este bine.

Pasul 5: Construiți carcasa afișajului

Asigurați-vă că produsul dvs. este frumos:
Am gasit acest piept de lemn la lobby-ul Hobby pentru 4 dolari si am crezut ca ar fi perfect, deoarece are spatiu interior pentru a tine toate firele si se pare frumos. Am pățit o roșie, aceeași pată pe care am folosit-o pe biroul calculatorului, așa că se potrivesc.
Desenați o grămadă deasupra aceleiași dimensiuni ca și grila folosită pentru jigla de lipit (.6 inchi între linii). Găuriți găurile pentru a permite cablurilor să treacă prin partea superioară și trageți o altă gaură în spatele grila pentru firele de tip strat / plan (din tranzistoarele din pasul 4). Am învățat modul greu că încercarea de a alinia până la 64 de găuri pentru a trece prin găuri mici este foarte dificilă. În cele din urmă am decis să reîncărcați toate găurile un pic mai mari pentru a face procesul să meargă mai repede. Am terminat folosind un burghiu de circa 2.
Acum, cubul se află pe partea de sus a afișajului, îndoiți colțurile, astfel încât cubul să rămână în poziție pe măsură ce atașați firele. Asigurați-vă că atașați toate firele în ordinea corectă.
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
Conectați firele între straturile (denumite "planuri" pe schematică) și tranzistoarele. Tranzistorul de pe pinul 6 Arduino este stratul superior al cubului.
Dacă primiți firele greșite, acestea pot fi corectate într-o anumită măsură în cadrul codului, dar este posibil să necesite multă muncă, așa că încercați să le obțineți în ordinea corectă.
Bine, totul e construit și gata să meargă, să luăm niște cod și să-l încercăm.

Pasul 6: Cod

Codul pentru acest cub se face diferit decât majoritatea, îți voi explica cum să te adaptezi.
Majoritatea codurilor cubului utilizează scrierea directă în coloane. Codul spune că coloana X trebuie să fie aprinsă, deci da-i niște suc și am terminat. Acest lucru nu funcționează atunci când se utilizează chips-uri de controler.
Chipurile controlerului folosesc 4 fire pentru a vorbi cu Arduino: SPI-in, Ceas, Latch și Enable. Am împământat pinul Activare (pinul 21) printr-un rezistor (RL), astfel că ieșirea este întotdeauna activată. Nu am folosit niciodată funcția Activare, așa că am scos-o din cod. SPI-in este datele de la Arduino, Ceasul este un semnal de sincronizare între cele două în timp ce vorbesc și Latch îi spune controlorului că este timpul să accepte date noi.
Fiecare ieșire pentru fiecare cip este controlată de un număr binar de 16 biți. De exemplu; trimiterea 1010101010101010 către controler ar face ca toate celelalte LED-uri de pe controler să lumineze. Codul dvs. trebuie să ruleze prin tot ceea ce este necesar pentru un afișaj și să construiască acel număr binar, apoi să îl trimită cipului. E mai ușor decât suna. Din punct de vedere tehnic, este o grămadă de adăugare bitwise, dar sunt prost la matematica bitwise, deci fac totul în zecimal.
Zecimal pentru primii 16 biți sunt după cum urmează:
1 << 0 == 1
1 << 1 == 2
1 << 2 == 4
1 << 3 == 8
1 << 4 == 16
1 << 5 == 32
1 << 6 == 64
1 << 7 == 128
1 << 8 == 256
1 << 9 == 512
1 << 10 == 1024
1 << 11 == 2048
1 << 12 == 4096
1 << 13 == 8192
1 << 14 == 16384
1 << 15 == 32768
Aceasta înseamnă că dacă doriți să aprindeți ieșirile 2 și 10, adăugați zecimalele (2 și 512) împreună pentru a obține 514. Trimiteți 514 la controler și ieșirile 2 și 10 se vor aprinde.
Dar avem mai mult de 16 LED-uri, deci devine ceva mai dificil. Trebuie să construim informații de afișare pentru 4 jetoane. Care este la fel de ușor ca construirea lui pentru 1, face-o de trei ori mai mult. Folosesc o matrice variabilă globală pentru a ține codurile de control. Este mai ușor așa.
Odată ce ați pregătit toate cele 4 coduri de expediere, aruncați dispozitivul de blocare (setați-l la LOW) și începeți să trimiteți codurile. Trebuie să trimiteți mai întâi ultima. Trimiteți codurile pentru cipul 4, apoi 3, apoi 2, apoi 1, apoi setați din nou dispozitivul de blocare la HIGH. Deoarece pinul Activare este mereu conectat la masă, afișajul se schimbă imediat.
Cel mai mare cod de cub pe care l-am văzut pe Instructables, și web-ul în general, constă într-un bloc gigant de cod setat pentru a efectua o animație prestabilită.Acest lucru funcționează bine pentru cuburi mai mici, dar trebuie să stocați, să citiți și să trimiteți 512 biți binare de fiecare dată când doriți să modificați afișajul ocupă o mulțime de memorie. Arduino nu putea face față mai multor cadre. Așadar, am scris câteva funcții simple pentru a arăta cubul în acțiune care se bazează mai degrabă pe calcul decât pe animațiile prestabilite. Am inclus o animație mică pentru a arăta cum se face, dar vă las să vă construiți propriile display-uri.
cube8x8x8.pde este codul Arduino. Am de gând să continui adăugarea de funcții la cod și va actualiza programul periodic.
matrix8x8.pde este un program în Procesarea pentru a construi propriile display-uri. Primul număr dat merge în model1 , al doilea în model2 , etc.
Foaia de date pentru A6276EA este disponibilă la adresa:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Pasul 7: Afișați manopera

Ai terminat, acum e timpul să te bucuri de cubul tău.


După cum puteți vedea, cubul meu a ieșit puțin cam strâmb. Nu sunt foarte dornic să construiesc altul, deși voi trăi cu ea fiind strâmbă. Am câteva puncte moarte la care trebuie să mă uit. Ar putea fi o conexiune proastă sau am nevoie de un nou chip de controler.
Sper că acest Instructabil te inspiră să-ți construiești propriul cub, sau alt proiect cu LED-uri, folosind modelul A6276AE. Afișați un link în comentarii dacă construiți unul.
Am încercat să decid de unde să merg de aici. Panoul controlerului va controla, de asemenea, un cub RGB de 4x4x4, deci este o posibilitate. Cred că ar fi bine să faci o sferă și cum am scris codul, nu ar fi prea greu de făcut.