Kredsløb

Sådan bygger du en 8x8x8 LED-kub og styrer den med en Arduino: 7 trin (med billeder)

OTECKOVIA - Nehanebná Stella. S Alexom ich takmer pristihli

OTECKOVIA - Nehanebná Stella. S Alexom ich takmer pristihli

Indholdsfortegnelse:

Anonim

Der er mange LED-kuber på Instructables, så hvorfor gør en anden? De fleste er for små kuber bestående af 27 eller 64 LED'er, sjældent større, da de er begrænset til antallet af udgange, der er tilgængelige på mikrocontrolleren. Denne kube vil være 512 lysdioder, og vil kun have brug for 11 udgangstråde fra Arduino. Hvordan er det muligt? Ved at bruge Allegro Microsystems A6276EA LED driver.
Jeg vil vise dig, hvordan jeg lavede kuben selv, controllerkortet og endelig koden for at få det til at skinne.


forsyninger:

Trin 1: Materialer

Alle dele skal du bygge kuben:
1 Arduino / Freeduino med Atmega168 eller højere chip
512 lysdioder, størrelse og farve er op til dig, jeg brugte 3mm rød
4 A6276EA LED driver chips fra Allegro
8 NPN transistorer til styring af spændingstrømmen, brugte jeg BDX53B Darlington transistoren
4 1000 ohm modstande, 1/4 watt eller højere
12 560 ohm modstande, 1/4 watt eller højere
1 330uF elektrolytisk kondensator
4 24 pin IC stik
9 16 pin IC stik
4 "x4" (eller større) stykke paraply til at holde alle de dele,
En gammel computer fan
Et gammelt diskettedrev kabel
En gammel computer strømforsyning
En masse hookup, loddemetal, loddejern, flux, alt andet til
gøre dit liv lettere, mens du gør dette.
7 "x7" (eller større) stykke træ bruges til at lave LED loddejig
Et godt tilfælde at vise din færdige terning
Min valgfri Arduino / Freeduino er Bare Bones Board (BBB) ​​fra www.moderndevice.com. LED'erne blev købt fra eBay og kostede $ 23 for 1000 LED'er afsendt fra Kina. Den resterende elektronik blev købt hos Newark Electronics (www.newark.com) og bør kun koste omkring 25 dollar. Hvis du skal købe alt, bør dette projekt kun koste omkring $ 100.
Jeg har en masse gammelt computerudstyr, så de dele kom ud af skrothøjen.

Trin 2: Saml lagene

Sådan laver du 1 lag (64 lysdioder) af denne 512 LED-terning:
De LED'er jeg købte var 3 mm i diameter. Jeg besluttede at bruge små LED'er til at reducere omkostningerne og gøre den endelige størrelse af terningen lille nok til at sidde på mit skrivebord eller hylde uden helt at overtage skrivebordet eller hylderne.
Jeg tegner et 8x8 gitter med ca. 6 inches mellem linjerne. Dette gav mig en kubestørrelse omkring 4,25 tommer per side. Bor 3 mm huller, hvor linjerne møder for at lave en jig, der holder LED'erne, mens du lodner hvert lag.
A6276EA er en strømforsyningsanordning. Dette betyder, at det giver en vej til jorden i stedet for en vej til kildespænding. Du skal bygge kuben i almindelig anode konfiguration. De fleste terninger er bygget som almindelig katode.
LED'ens lange side er generelt anoden, kontroller din for at sikre. Det første jeg gjorde var at teste alle LED'er. Ja det er en lang og kedelig proces, og du kan springe over det, hvis du vil. Jeg vil helst bruge tiden til at teste LED'erne end at finde et dødpunkt i min terning efter at den var samlet. Jeg fandt 1 død LED ud af 1000. Ikke dårlig.
Skær 11 stykker af solid, ikke-isoleret krogtråd til 5 tommer. Placer 1 LED i hver ende af en række i din jig og lod derefter ledningen til hver anode. Anbring nu de resterende 6 LED'er i rækken og lod dem anode til ledningen. Dette kan være lodret eller vandret, det betyder ikke noget, så længe du gør alle lagene på samme måde. Når du afslutter hver række, skal du trimme overskydende bly fra anoderne. Jeg gik omkring 1/8 ".
Gentag indtil du er færdig med alle 8 rækker. Løft nu 3 stk. Krogkabel over de rækker, du lige har lavet for at forbinde dem alle sammen i et enkelt stykke. Jeg testede derefter laget ved at vedhæfte 5 volt til
Tilslut wire gitteret gennem en modstand og rørt jordledningen til hver katode. Udskift eventuelle lysdioder, der ikke lyser.
Fjern forsigtigt laget fra jig og sæt det til side. Hvis du bøjer ledningerne, skal du ikke bekymre dig, bare rette dem ud så godt du kan. Det er meget nemt at bøje. Som du kan fortælle fra mine billeder, havde jeg mange bøjede ledninger.
Tillykke med, du er 1/8 færdig. Lav 7 flere lag.
VALG: For at lette lagene sammen (Trin 3) lettere, mens hvert efterfølgende lag stadig ligger i jigbøjningen, dækker katodens øverste kvart tommer 45 til 90 grader. Dette vil tillade
føre til at nå rundt om LED'en, den forbinder til og vil gøre lodning meget lettere. Gør ikke dette til dit første lag, vi vil erklære, at man er bundlaget, og lederne skal være lige.

Trin 3: Saml terningen

Sådan loddes alle lagene sammen for at gøre en terning:
Den hårde del er næsten forbi. Nu skal du forsigtigt placere et lag tilbage i jiggen, men brug ikke for meget pres, vi vil kunne fjerne det uden at bøje det. Dette første lag er kubens overflade. Placer et andet lag oven på den første, rør ledningerne og start loddet. Jeg fandt det nemmest at lave hjørner først, derefter udenfor, derefter indenfor rækker.
Fortsæt med at tilføje lag, indtil du er færdig. Hvis du forbøjede lederne, så sørg for at gemme laget med lige ledninger til sidst. Det er bunden.
Jeg havde lidt for meget plads mellem hvert lag, så jeg fik ikke helt en terningform. Ikke en stor ting, jeg kan leve med det.

Trin 4: Opbygning af Controller Board

Hvordan man opbygger controllerkortet og vedhæfter det til din Arduino:
Følg skematisk og bygg bestyrelsen, men du vælger. Jeg lagde controller chips i midten af ​​brættet og bruge venstre side til at holde transistorer, der styrer strømmen til hvert lag af terningen, og brugt den højre side for at holde de stik, der går fra controller chips til katoderne af LED-kolonnerne.
Jeg fandt en gammel 40mm computer fan med en kvindelig molex stik for at tilslutte den til en computer strømforsyning. Dette var perfekt. En lille mængde luftstrøm på tværs af chippen er nyttig, og jeg har nu en nem måde at levere 5 volt til controller chips og Arduino selv.
På skematisk er RC den nuværende begrænsningsmodstand for alle de lysdioder, der er tilsluttet hver A6276EA. Jeg brugte 1000 ohm, fordi det giver 5 milliamps til LED'en, nok til at tænde det. Jeg bruger høj lysstyrke, ikke super brite lysdioder, så det nuværende afløb er lavere. Hvis alle 8 lysdioder i en søjle tændes på en gang, er det kun 40 milliamps. Hver udgang fra A6276EA kan klare 90 milliampere, så jeg er godt inden for rækkevidde.
RL er modstanden forbundet til logik- eller signalledningerne. Den faktiske værdi er ikke særlig vigtig, så længe den eksisterer og ikke er for stor. Jeg bruger 560 ohm, fordi jeg havde en masse af dem til rådighed.
Jeg brugte en effekt transistor i stand til at håndtere op til 6 ampere for at styre strømmen går til hvert lag af terningen. Dette er overkill for dette projekt, da hvert lag af terningen kun vil tegne 320 milliampere med alle lysdioder tændt. Jeg ville have plads til at vokse og kunne bruge controllerkortet til noget større senere. Brug hvilken størrelse transistor passer til dine behov.
330 uF kondensatoren over spændingskilden er der for at hjælpe med at udjævne eventuelle mindre spændingsudsving. Da jeg bruger en gammel computer strømforsyning, er dette ikke nødvendigt, men jeg forlod det, bare hvis nogen vil bruge en 5 volt vægadapter til at strømme deres terning.
Hver A6276EA controller chip har 16 udgange. Jeg havde ikke nogen anden egnet stik, så jeg loddede fører til nogle 16 pin IC stik og vil bruge dem til at forbinde controller board til terningen. Jeg skar også en IC-stikkontakt i halvdelen og brugte den til at forbinde de 8 ledninger, der forbinder transistorerne med kubens lag.
Jeg skærer ca. 5 tommer ud af enden af ​​et gammelt diskettekabel til brug som stik til Arduino. Floppy-kablet er 2 rækker med 20 stifter, den bare Bones Board har 18 stifter. Dette er en meget billig måde (gratis) at forbinde Arduino til bestyrelsen. Jeg trak båndkablet fra hinanden i grupper af 2 ledninger, strippede enderne og loddede dem sammen. Dette giver dig mulighed for at tilslutte Arduino til begge rækker af stikket. Følg skematisk og loddet stikket på plads. Glem ikke at lodde 5 volt og jordledningerne til stikket for at give strøm til Arduino.
Jeg har til hensigt at bruge denne controller board til andre projekter, så det modulære design fungerer fint for mig. Hvis du vil tilslutte forbindelserne hårdt, er det fint.

Trin 5: Byg skærmen

Få dit sidste produkt til at se godt ud:
Jeg fandt denne trækiste på Hobby Lobby for $ 4 og troede det ville være perfekt, da det har plads inde for at holde hele ledningen plus det ser godt ud. Jeg farvede denne en rød, samme plet jeg brugte på min computer skrivebord, så de matcher.
Tegn et gitter oven på samme størrelse som gitteret, der anvendes til loddejiggen (.6 inches mellem linjerne). Bor huller for at lade førererne gennem toppen og bore et andet hul bag nettet for lag / flyledninger (fra transistorerne i trin 4). Jeg lærte den hårde måde at forsøge at rette op på 64 fører til at gå gennem små huller, er meget svært. Jeg besluttede endelig at genborre alle hullerne lidt større for at gøre processen hurtigere. Jeg endte med at bruge omkring en .2 borekrone.
Nu når kuben sidder øverst på skærmen, bøj ​​hjørneledningerne, så kuben forbliver på plads, når du vedhæfter ledningerne. Sørg for at fastgøre alle ledninger i den rigtige rækkefølge.
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
Og forbind ledningerne mellem lagene (mærket "fly" på skematisk) og transistorerne. Transistoren på Arduino pin 6 er det øverste lag af kassen.
Hvis du får ledningerne forkert, er det noget korrigeret i koden, men det kan kræve meget arbejde, så prøv at få dem i den rigtige rækkefølge.
Okay, alt er bygget og klar til at gå, lad os få nogle kode og prøve det ud.

Trin 6: Kode

Koden til denne terning er udført forskelligt end de fleste, jeg forklarer, hvordan man tilpasser.
Mest kubik kode bruger direkte skriver til kolonnerne. Koden siger, at kolonne X skal være tændt, så giv det lidt juice og vi er færdige. Det virker ikke, når du bruger controller chips.
Controller chips bruger 4 ledninger til at tale med Arduino: SPI-in, Clock, Latch og Enable. Jeg jordede aktiveringsstiften (pin 21) gennem en modstand (RL), så udgangen er altid aktiveret. Jeg brugte aldrig Aktiver, så jeg tog den ud af koden. SPI-in er dataene fra Arduino, Clock er et timingsignal mellem de to, mens de snakker, og Latch fortæller controlleren, det er på tide at acceptere nye data.
Hver udgang for hver chip styres af et 16 bit binært tal. For eksempel; at sende 1010101010101010 til controlleren ville medføre, at alle andre LED'er på controlleren lyser. Din kode skal løbe gennem alt, hvad der behøves til et display og opbygge det binære nummer, så send det til chippen. Det er lettere end det lyder. Teknisk set er det en flok bitvis tilføjelse, men jeg er elendig ved bitvis matte, så jeg gør alt i decimal.
Decimalt for de første 16 bits er som følger:
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
Dette betyder, at hvis du vil tænde output 2 og 10, skal du tilføje decimalerne (2 og 512) sammen for at få 514. Send 514 til controlleren og udgange 2 og 10 lyser.
Men vi har mere end 16 lysdioder, så det bliver lidt sværere. Vi skal opbygge displayoplysninger til 4 chips. Det er lige så nemt at bygge det til 1, bare gør det 3 flere gange. Jeg bruger et globalt variabelt array til at holde kontrolkoderne. Det er bare nemmere på den måde.
Når du har alle 4 displaykoder klar til at sende, skal du slippe låsen (indstil den til LOW) og begynde at sende koderne. Du skal sende den første først. Send koderne til chip 4, derefter 3, derefter 2, derefter 1, og sæt latchen til HIGH igen. Da aktiveringsstiften altid er forbundet til jord, ændres displayet med det samme.
Mest kubekode, jeg har set på Instructables, og internettet generelt består af en kæmpe blok kode indstillet til at udføre en forudindstillet animation.Det fungerer fint for mindre terninger, men behøver at gemme, læse og sende 512 bit binære hver gang du vil skifte skærm, tager meget hukommelse op. Arduino kunne ikke håndtere mere end et par rammer. Så jeg skrev nogle enkle funktioner for at vise terningen i aktion, der stole på beregning snarere end forudindstillede animationer. Jeg inkluderede en lille animation for at vise, hvordan det er gjort, men jeg vil overlade det til dig at opbygge dine egne skærme.
cube8x8x8.pde er Arduino-koden. Jeg planlægger at fortsætte med at tilføje funktioner til koden og vil opdatere programmet med jævne mellemrum.
matrix8x8.pde er et program i Behandling for at opbygge dine egne skærme. Det første nummer er angivet i mønster1 , andet til mønster2 , osv.
Databladet til A6276EA er tilgængeligt på:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Trin 7: Vis dit håndværk

Du er færdig, nu er det tid til at nyde din terning.


Som du kan se, kom min terning ud lidt skævt. Jeg er ikke særlig opsat på at opbygge en anden, selvom jeg så vil leve med at det er skævt. Jeg har et par døde pletter, som jeg skal undersøge. Det kan være en dårlig forbindelse, eller jeg kan få brug for en ny controller chip.
Jeg håber, at denne instruktør inspirerer dig til at bygge din egen terning eller et andet LED-projekt ved hjælp af A6276AE. Send et link i kommentarerne, hvis du opbygger en.
Jeg har forsøgt at bestemme, hvor jeg skal hen herfra. Styringskortet styrer også en 4x4x4 RGB-terning, så det er en mulighed. Jeg synes, det ville være pænt at lave en kugle, og den måde jeg har skrevet på koden, ville det ikke være for svært at gøre.