Publicitate
Dacă ați obișnuit cu unele proiecte Arduino pentru începători, dar căutați ceva puțin permanent și pe un alt nivel extraordinar, atunci umilul cub LED 4 x 4 x 4 este o alegere naturală. Construcția este mult mai ușoară decât ai putea crede și, folosind o multiplexare, putem controla toate ledurile direct dintr-o singură placă Arduino Uno. Este o practică excelentă de lipire, iar costul total al componentelor nu ar trebui să ajungă la peste 40 de dolari.
Astăzi voi detalia detaliat partea de construcție a lucrurilor și voi oferi un software care să funcționeze pe acesta, care arată atât impresionant, cât și te învață elementele de bază.
Vei avea nevoie
- Un Arduino. Codul furnizat presupune un Arduino Uno, dar ar putea fi ajustat și la un model mai mare.
- 64 LED-uri - alegerea exactă depinde de dvs., dar am folosit aceste superbright LED-uri albastre de 3 mm (3.2v 30ma) @ 2,64 lire sterline pentru 50.
- 16 Rezistori a valorii corespunzătoare pentru LED-urile dvs. Pentru LED-urile de mai sus, 99 de pence au cumpărat 100 dintre acestea. Utilizare ledcalc.com - introduceți 5v pentru tensiunea de alimentare, tensiunea LED-urilor (în cazul meu 3.2) și curentul în milimetri (3.2). Rezistența dorită va fi afișată în caseta etichetată „Cel mai apropiat rezistor cu cea mai mare evaluare”, atunci căutați doar acea valoare pe eBay.
- niste sârmă artizanală pentru a consolida structura de bază și pentru decorare - am folosit 0.8mm grosime.
- A placa de prototip de un anumit tip la care puteți vinde toate biți. Am folosit una care nu a avut piese complete de-a lungul ei, deoarece nu am un tăietor de piese, dar am folosit orice vi se potrivește. Cu toate acestea, un scut de prototipare Arduino este puțin prea mic, cu excepția cazului în care într-adevăr vă strângeți LED-urile.
- Fir de componente aleatoare - unele fire de cabluri de rețea și unele dintre firele de prototipare dintr-un kit vor funcționa bine.
- Clipsuri de crocodil sau „mâinile de ajutor” sunt utile pentru a ține biți în loc.
- Fier de lipit și lipit.
- Unele resturi de lemn.
- Un burghiu, cu aceeași dimensiune a bitului ca LED-urile tale.
Notă: desenele 3D din acest tutorial au fost realizate în câteva minute folosind TinkerCAD. Am urmat o compilare existentă detaliată pe Instructables de către utilizator forte1994, pe care s-ar putea să doriți să le citiți înainte de a încerca acest lucru.
Asigurați-vă că citiți toate aceste instrucțiuni primul înainte de a încerca asta pentru tine.
Principiul acestui design
Înainte de a începe construcția, este important să aveți o imagine de ansamblu asupra modului în care va funcționa acest lucru, astfel încât să puteți improviza și identifica erorile pe măsură ce mergeți. Unele cuburi LED folosesc un singur pin de ieșire pentru fiecare LED - oricum într-un cub 4x4x4, ar fi nevoie 64 de pini - ceea ce cu siguranță nu avem pe un Arduino Uno. O soluție ar fi să folosești registre de schimb Programare Arduino - joacă cu registrele Shift (a.k.a și mai multe leduri)Astăzi voi încerca să vă învăț un pic despre Registrele Shift. Acestea sunt o parte destul de importantă a programării Arduino, practic pentru că extind numărul de ieșiri pe care le puteți utiliza, în schimbul ... Citeste mai mult , dar acest lucru este inutil de complicat.
Pentru a controla toate ledurile în doar 20 de pini, vom folosi o tehnică numită multiplexare. Prin descompunerea cubului în 4 straturi separate, avem nevoie doar de pini de control pentru 16 LED-uri - astfel încât să aprindem un LED specific, trebuie să activăm atât stratul, cât și pinul de control, oferindu-ne o cerință totală de 16 + 4 pini. Fiecare strat are un catod comun - partea negativă a circuitului - astfel încât toate picioarele negative sunt unite și conectate la un singur ac pentru acel strat.
Pe anod (pozitiv) lateral, fiecare LED va fi conectat la LED-ul corespunzător din stratul de deasupra și de sub el. În esență, avem 16 coloane ale picioarelor pozitive și 4 straturi ale negativului. Iată câteva vizualizări 3D ale conexiunilor pentru a vă ajuta să înțelegeți:


Constructie
Deoarece nu vom folosi o structură metalică completă pentru a lipi, dorim ca toate picioarele LED-urilor să se suprapună cu aproape un sfert și să ofere rigiditate structurii. Îndoiți catodul LED-urilor dvs. - partea cu crestătul plat în cap și piciorul mai scurt - așa cum se arată în diagramă. (Nu contează cu adevărat dacă îl îndoiți la stânga sau la dreapta, atât timp cât sunteți consecvent și nu atinge niciodată anodul)

Prima parte critică a acestui proiect este realizarea unui pericul din lemn. Acest lucru va ține un strat de LED-uri în timp ce vindeți picioarele împreună, deci trebuie să fie exacte și să nu fie prea libere. Folosind un burghiu de aceeași dimensiune ca LED-urile dvs., măsurați și apoi găuriți o matrice 4 × 4 echidistant găuri. Rețineți că doriți ca aproximativ un sfert din picior să se suprapună cu vecinul său și folosiți o riglă reală. Verificați fiecare gaură pentru a vă asigura că un LED se poate încadra perfect, dar nu atât de strâns încât nu veți mai putea să îl scoateți din nou sau veți avea probleme atunci când încercați să eliminați un strat complet lipit.

Lipiți catodii de 4 rânduri de LED-uri. Aveți grijă să nu ardeți LED-urile - doriți un fier fierbinte și să fiți înăuntru și afară. Iată primele mele patru rânduri finalizate.

Acum, pentru a consolida rigiditatea stratului, tăiați și lipiți două bucăți drepte de sârmă de ambarcațiune la ambele capete, asigurându-vă că se conectează cu fiecare rând. Acesta este primul dvs. strat complet. Lăsați deocamdată toate picioarele în exces care se lipesc în lateral.
Acum ar fi un moment excelent pentru a testa - încărcați doar aplicația implicită de clipire Arduino și, cu un rezistor conectat, puneți pământul pe rama stratului și apăsați pe rând plumbul pozitiv pentru fiecare LED.

Sper să se aprindă cu toții. În caz contrar, asigurați-vă că nu ați lipsit doar de o articulație de lipit și unde este neapărat înlocuiți LED-ul.
Îndepărtați stratul respectiv de pe dispozitiv și repetați procesul Încă de 3 ori.
Nu vă faceți griji dacă lipirea dvs. nu este perfectă - atât timp cât nu se va rupe și conexiunea este solidă, nu va afecta produsul final. Recunosc, lipirea mea a fost destul de lipsită de speranță, jig-ul meu era stins și totul semăna cu turnul aplecat din Pisa. Totuși, sunt mândru de cubul terminat și, atunci când LED-urile sunt aprinse, nu veți mai privi rosturile de lipit!
Alăturarea straturilor
După ce aveți 4 straturi completate, veți dori să uniți toate picioarele verticale. Am considerat că aceasta este cea mai grea parte a construcției și, pentru a ajuta procesul, am tăiat un riser din card.

Acest lucru a menținut straturile la înălțimea corespunzătoare, dar o mulțime de picioare încă nu s-ar alinia perfect - pentru asta, am folosit câteva agrafe de crocodil pentru a le ține pe loc.

Prima greșeală prostie de evitat
Abia după ce am completat un strat complet, mi-am dat seama că cardul meu de carte a fost blocat în loc, așa că a trebuit să-l tai! Nu faceți aceeași greșeală pe care am făcut-o - faceți creșterea mai lungă pe partea laterală și alăturați-vă bucăților de card în afara cubului, astfel încât, după ce ați completat stratul, puteți deconstrui riserul și scoateți-l card.

A 2-a greșeală prostie de evitat
Nu vindeți piciorul vertical pe cadrul catodului, evident. Picioarele verticale trebuie să se conecteze doar la alte picioare verticale și nimic altceva.
Din nou, testează după ce fiecare strat a fost atașat. Testați toate straturile, de fapt, atingând doar plumbul pozitiv până la vârful stratului superior, asigurându-vă astfel că veți avea un contact bun prin toate straturile.
Când toate cele 4 straturi au fost lipite împreună, m-am gândit să curăț un pic - am lăsat un singur picior extinsă din fiecare strat într-un fel de pas cu pas - aceasta ar fi aruncată în jos bord mai târziu. Au fost tăiate alte bucăți exterioare de cadru și picioare metalice. Evident, nu tăiați niciunul dintre picioarele verticale - trebuie să le introducem în tabloul nostru de protoytping.

Fixarea la consiliu
Vă amintiți când am spus că fixarea fiecărui strat la sine a fost cea mai grea parte? Am mintit. Încercarea de a încadra 16 picioare LED în găuri minuscule de pe o placă de prototipare este de fapt mai dificilă. Cel mai simplu mod în care l-am găsit a fost să trag prin 4 la un moment dat, să le asigurați dedesubt cu agrafe de crocodil, apoi să treceți la următorul rând de 4. Folosiți un stilou pentru a marca distanța în avans dacă vă ajută.

În retrospectivă, aș fi așezat mai întâi rezistențele în protoboard, de fapt. Așa cum am spus, am lipit mai întâi toate picioarele cubului în tablă, apoi am încercat să strâng delicat rezistențele între ele. Aflați din greșeala mea și așezați-vă rezistențele mai întâi.
Am încercat să le spaționez în mod egal în trepte, așa că am putut folosi o parte întreagă a cubului pentru toate conexiunile finale cu Arduino. Iată schema cu care am mers:

Pentru cele patru straturi negative, am aruncat o singură sârmă în jos de la fiecare strat, apoi le-am scos în lateral, astfel:

În cele din urmă, am adăugat câteva fire de priză pe care aș putea apoi să le așez în pinii Arduino relevanți. Folosiți cel mai lung tip pe care îl aveți. Notă Am încărcat comanda în locuri din cauza unei planificări deficitare. Totuși, fiecare rând de LED-uri a fost codat în culori.

Asta e. Terminat!

Programarea cubului tău
Știu că nu puteți aștepta să obțineți acest lucru, așa că conectați cele 4 straturi negative I / O analogică porturi A2 (strat inferior) prin A5 (strat superior)(acestea pot acționa și ca I / O digitale). Apoi conectați cele 16 pini de control LED, începând cu +1 în extrema dreaptă la I / O digitală port 0, cu +15 și +16 intrând în analog A0 și A1. (Nu folosiți AREF și GND)

Descărcați modele și cod demo de la un utilizator instructiv forte1994. De asemenea, a oferit un instrument online util pentru proiectarea modelelor de octeți pentru a personaliza propria secvență. Iată un videoclip cu acest cod în acțiune pe cubul meu (Am ajustat viteza la 5, în loc de valoarea implicită 20).
Acesta nu este singurul mod de a vă programa cubul, bineînțeles, așa că permiteți-mi să petrec câteva minute învățându-vă elementele de bază pentru a vă crea propriile modele. programatică, mai degrabă decât să redați tipare presetate așa cum o face demo-ul de mai sus.
Există câteva lucruri pe care ar trebui să le știi când încerci să-ți programezi cubul:
- Pentru a vă adresa unui singur LED, utilizați un avion (strat) numărul 0–3 și un indicator LED numărul 0–15. Întoarceți avionul către ieșire LOW (deoarece acesta este piciorul negativ) și numărul de pin LED HIGH (piciorul pozitiv) pentru a activa ledul.
- Înainte de a activa un singur LED, asigurați-vă că toate celelalte avioane sunt oprite - asta înseamnă că setați-le la ieșire înaltă. Nerespectarea acestui lucru va duce la aprinderea unei coloane de LED-uri decât a unui singur LED.
În acest sens, am făcut două secvențe programatice foarte simple pentru a le examina - descărcați codul de aici. Primul luminează pur și simplu fiecare LED unul câte unul, în succesiune. Folosim două pentru bucle pentru aceasta, iterativ pe fiecare strat și pe fiecare pin de control.
Al doilea este o buclă aleatorie (va trebui să comentați prima și să o activați în bucla principală pentru a o testa). Pur și simplu alege un strat aleatoriu și un pin de control aleatoriu, aprinderea și oprirea acestora.
rezumat
Nu mă lăsați intimidat de această construcție - îmi lipsesc serios abilitățile de lipire și am reușit acest lucru bine (Cred?). Timpul total de construire a fost o oră cam o zi pe săptămână. Data viitoare, voi încerca să vă învăț o programare mai ambițioasă pentru cub, așa că sper să vă alăturați mie pentru a construi propriul dvs. cub săptămâna asta și încărcarea unor coduri noi săptămâna viitoare - și dacă creați propriile aplicații sau secvențe nemaipomenite, vă rugăm să le încărcați în Pastebin și anunțați-o în comentarii!
James are licență în inteligență artificială și este certificat CompTIA A + și Network +. Este dezvoltatorul principal al MakeUseOf și își petrece timpul liber jucând VR paintball și boardgames. Construiește calculatoare de când era mic.