Innholdsfortegnelse:

Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: 7 trinn (med bilder)
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: 7 trinn (med bilder)

Video: Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: 7 trinn (med bilder)

Video: Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino: 7 trinn (med bilder)
Video: You can learn Arduino in 15 minutes. 2024, Desember
Anonim
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino
Hvordan bygge en 8x8x8 LED -kube og kontrollere den med en Arduino

Januar 2020 rediger:

Jeg lar dette ligge igjen hvis noen vil bruke det til å generere ideer, men det er ikke lenger noe poeng i å bygge en terning basert på disse instruksjonene. LED -driver -ICene er ikke lenger laget, og begge skissene ble skrevet i gamle versjoner av Arduino og Processing og ble ikke lenger kjørt. Jeg vet ikke hva som må endres for å få dem til å fungere. Min konstruksjonsmetode resulterte også i et skremmende, skævt rot. Mitt forslag er å følge instruksjonene på en annen instruerbar eller kjøpe et sett. Denne terningen kostet rundt $ 50 tilbake i 2011, du kan kjøpe et sett på eBay for rundt $ 20 nå.

Original introduksjon:

Det er mange LED -terninger på Instructables, så hvorfor gjøre en annen? De fleste er for små terninger som består av 27 eller 64 lysdioder, sjelden større siden de er begrenset til antall utganger som er tilgjengelige på mikrokontrolleren. Denne kuben vil ha 512 lysdioder, og trenger bare 11 utgangskabler fra Arduino. Hvordan er dette mulig? Ved å bruke Allegro Microsystems A6276EA LED -driveren.

Jeg skal vise deg hvordan jeg lagde selve terningen, kontrollkortet og til slutt koden for å få den til å skinne.

Trinn 1: Materialer

Materialer
Materialer

Alle delene du trenger for å bygge kuben: 1 Arduino/Freeduino med Atmega168 eller høyere chip 512 lysdioder, størrelse og farge er opp til deg, jeg brukte 3 mm røde 4 A6276EA LED -driverchips fra Allegro 8 NPN -transistorer for å kontrollere spenningsstrømmen, Jeg brukte BDX53B Darlington transistor 4 1000 ohm motstander, 1/4 watt eller høyere 12 560 ohm motstander, 1/4 watt eller høyere 1 330uF elektrolytisk kondensator 4 24 -pins IC -kontakt 9 16 -pins IC -kontakter 4 "x4" (eller større) stykke perfboard for å holde alle delene, En gammel datamaskinvifte En gammel diskettkontrollkabel En gammel datamaskinens strømforsyning Mye tilkoblingstråd, loddetinn, loddejern, flux, alt annet for å gjøre livet ditt enklere mens du gjør dette. 7 "x7" (eller større) treverk som ble brukt til å lage LED -loddejiggen Et fint etui for å vise den ferdige kuben Min Arduino/Freeduino du foretrekker, er Bare Bones Board (BBB) fra www.moderndevice.com. Lysdiodene ble kjøpt av eBay og kostet $ 23 for 1000 lysdioder sendt fra Kina. Gjenværende elektronikk ble kjøpt fra Newark Electronics (www.newark.com) og skulle bare koste rundt $ 25. Hvis du må kjøpe alt, bør dette prosjektet bare koste rundt $ 100. Jeg har mye gammelt datautstyr, så disse delene kom av skraphaugen.

Trinn 2: Monter lagene

Sett sammen lagene
Sett sammen lagene
Monter lagene
Monter lagene
Monter lagene
Monter lagene
Sett sammen lagene
Sett sammen lagene

Hvordan lage 1 lag (64 lysdioder) av denne 512 LED -terningen: Lysdiodene jeg kjøpte var 3 mm i diameter. Jeg bestemte meg for å bruke små lysdioder for å redusere kostnadene og gjøre den endelige størrelsen på terningen liten nok til å sitte på skrivebordet eller hyllen min uten å ta over skrivebordet eller hyllen helt. Jeg tegnet et 8x8 rutenett med omtrent 0,6 tommer mellom linjene. Dette ga meg en kubestørrelse på rundt 4,25 tommer per side. Bor 3 mm hull der linjene møtes for å lage en jigg som holder lysdiodene mens du lodder hvert lag. A6276EA er en nåværende vaskenhet. Dette betyr at den gir en vei til bakken i stedet for en vei til kildespenningen. Du må bygge kuben i felles anodekonfigurasjon. De fleste kuber er bygget som vanlig katode. Langsiden av LED -en er vanligvis anoden, sjekk din for å være sikker. Det første jeg gjorde var å teste hver LED. Ja det er en lang og kjedelig prosess, og du kan hoppe over den hvis du vil. Jeg vil heller bruke tiden på å teste lysdiodene enn å finne et dødt sted i kuben min etter at den ble satt sammen. Jeg fant 1 død lysdiode av 1000. Ikke verst. Klipp 11 stykker solid, ikke-isolert hektetråd til 5 tommer. Plasser 1 LED i hver ende av en rad i jiggen din, og lodd deretter ledningen til hver anode. Plasser nå de resterende 6 lysdiodene i raden og lodd disse anodene til ledningen. Dette kan være vertikalt eller horisontalt, det spiller ingen rolle så lenge du gjør alle lagene på samme måte. Når du er ferdig med hver rad, beskjærer du overflødig bly fra anodene. Jeg forlot rundt 1/8 . Gjenta til du er ferdig med alle 8 radene. Nå lodder du 3 stykker krokledning på tvers av radene du nettopp laget for å koble dem til ett stykke. Jeg testet deretter laget ved å feste 5 volt for å koble til trådgitteret gjennom en motstand og berørte jordledningen til hver katode. Bytt ut alle lysdioder som ikke lyser. Fjern forsiktig laget fra jiggen og sett det til side. Hvis du bøyer ledningene, ikke bekymre deg, bare rette dem ut så godt du kan. Det er veldig enkelt å bøye. Som du kan se fra bildene mine, hadde jeg mange bøyde ledninger. Gratulerer, du er 1/8 ferdig. Lag 7 lag til. VALGFRITT: Å lage lodding lagene sammen (trinn 3) lettere, mens hvert påfølgende lag fremdeles er i jiggen, bøyer den øverste kvartstommen på katoden 45 til 90 grader fremover. Dette gjør at blyet kan nå rundt LED -en det kobles til og vil gjøre lodding mye enklere. Ikke gjør dette med det første laget, vi erklærer at det ene er det nederste laget og at lederne må være s rett.

Trinn 3: Monter terningen

Monter terningen
Monter terningen
Monter terningen
Monter terningen

Hvordan lodde alle lagene sammen for å lage en terning: Den harde delen er nesten over. Legg nå et lag forsiktig tilbake i jiggen, men ikke bruk for mye press, vi vil kunne fjerne det uten å bøye det. Dette første laget er kubens toppside. Legg et nytt lag på toppen av det første, sett opp ledningene og begynn å lodde. Jeg fant det lettest å gjøre hjørner først, deretter ytterkant, så inne i rader. Fortsett å legge til lag til du er ferdig. Hvis du har bøyd ledningene på forhånd, må du sørge for å lagre laget med rette ledninger til slutt. Det er bunnen. Jeg hadde litt for mye plass mellom hvert lag, så jeg fikk ikke helt en terningform. Ikke så farlig, jeg kan leve med det.

Trinn 4: Bygg kontrollpanelet

Bygge kontrollerkortet
Bygge kontrollerkortet
Bygge kontrollerkortet
Bygge kontrollerkortet
Bygge kontrollerkortet
Bygge kontrollerkortet

Hvordan bygge kontrollerkortet og feste det til Arduino: Følg skjemaet og bygg brettet slik du vil. Jeg plasserte kontrollerbrikkene i midten av brettet og brukte venstre side til å holde transistorer som styrer strømmen til hvert lag av kuben, og brukte høyre side til å holde kontaktene som går fra kontrollerbrikkene til katodene på Jeg fant en gammel 40 mm datamaskinvifte med en kvinnelig molex -kontakt for å koble den til en datamaskinens strømforsyning. Dette var perfekt. En liten mengde luftstrøm over brikken er nyttig, og jeg har nå en enkel måte å gi 5 volt til kontrollerbrikkene og selve Arduinoen. På skjematisk er RC gjeldende begrensningsmotstand for alle lysdiodene som er koblet til hver A6276EA. Jeg brukte 1000 ohm fordi den gir 5 milliampere til LED -en, nok til å tenne den. Jeg bruker High Brightness, ikke Super Brite LED, så nåværende avløp er lavere. Hvis alle 8 lysdiodene i en kolonne lyser samtidig, er det bare 40 milliampere. Hver utgang fra A6276EA kan håndtere 90 milliampere, så jeg er godt innenfor rekkevidde. RL er motstanden som er koblet til logikken eller signalledningene. Den faktiske verdien er ikke veldig viktig så lenge den eksisterer og er ikke for stor. Jeg bruker 560 ohm fordi jeg hadde en haug med dem tilgjengelig. Jeg brukte en effekttransistor som kan håndtere opptil 6 ampere for å kontrollere strømmen som går til hvert lag av kuben. Dette er overkill for dette prosjektet, ettersom hvert lag av kuben bare vil trekke 320 milliampere med alle lysdiodene tent. Jeg ønsket plass til å vokse og kan bruke kontrollerkortet til noe større senere. Bruk hvilken transistor som helst som passer dine behov. 330 uF kondensatoren over spenningskilden er der for å hjelpe til med å jevne ut eventuelle mindre spenningsfluktuasjoner. Siden jeg bruker en gammel datamaskinstrømforsyning, er dette ikke nødvendig, men jeg forlot den i tilfelle noen vil bruke en 5 volt veggadapter for å drive kuben. Hver A6276EA -kontrollerbrikke har 16 utganger. Jeg hadde ingen annen passende kontakt, så jeg loddet ledninger til noen 16 -pins IC -kontakter og vil bruke dem til å koble kontrollkortet til kuben. Jeg kuttet også en IC -kontakt i to og brukte den til å koble de 8 ledningene som kobler transistorene til lagene på kuben. Jeg kuttet omtrent 5 tommer fra enden av en gammel diskettkabel for å bruke som kontakten for Arduino. Diskettkabelen er 2 rader med 20 pinner, bare Bones Board har 18 pinner. Dette er en veldig billig måte (gratis) å koble Arduino til brettet. Jeg trakk båndkabelen fra hverandre i grupper på 2 ledninger, strippet endene og loddet dem sammen. Dette lar deg koble Arduino til hver rad i kontakten. Følg skjemaet og lodd kontakten på plass. Ikke glem å lodde 5 volt og jordledninger for kontakten for å gi strøm til Arduino. Jeg har tenkt å bruke dette kontrollkortet til andre prosjekter, så den modulære designen fungerer bra for meg. Hvis du vil koble til tilkoblingene hardt, er det greit.

Trinn 5: Bygg en vitrine

Bygg en vitrine
Bygg en vitrine
Bygg en vitrine
Bygg en vitrine
Bygg en vitrine
Bygg en vitrine
Bygg en vitrine
Bygg en vitrine

Få det endelige produktet ditt til å se fint ut: Jeg fant denne trekisten på Hobby Lobby for $ 4 og tenkte at den ville være perfekt siden den har plass inne til å holde all ledningen pluss at den ser fin ut. Jeg beiset denne ene røde, samme flekken som jeg brukte på skrivebordet mitt, slik at de passet sammen. Tegn et rutenett på toppen av samme størrelse som rutenettet som ble brukt til loddejiggen (.6 tommer mellom linjene). Bor hull for å slippe ledningene gjennom toppen, og bor et annet hull bak rutenettet for lag-/plantrådene (fra transistorene i trinn 4). Jeg lærte på den harde måten at det å prøve å stille 64 ledninger til å gå gjennom små hull er veldig vanskelig. Jeg bestemte meg til slutt for å bore alle hullene litt større for å få prosessen til å gå raskere. Jeg endte opp med å bruke rundt en.2 bor. Nå som terningen sitter på toppen av skjermen, bøy hjørneledene slik at terningen forblir på plass når du fester ledningene. Sørg for å feste alle ledningene i riktig rekkefø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 64Og koble ledningene mellom lagene (merket 'plan' på skjematikken) og transistorene. Transistoren på Arduino pin 6 er det øverste laget av kuben. Hvis du får feil ledninger, er det noe som kan korrigeres innenfor koden, men det kan kreve mye arbeid, så prøv å få dem i riktig rekkefølge. Ok, alt er bygget og klart til bruk, la oss få litt kode og prøve det.

Trinn 6: Kode

Kode
Kode

Koden for denne kuben er gjort annerledes enn de fleste, jeg skal forklare hvordan jeg skal tilpasse. De fleste kube -koder bruker direkte skriver til kolonnene. Koden sier at kolonne X må tennes, så gi den litt juice og vi er ferdige. Det fungerer ikke når du bruker kontrollerbrikker. Kontrollerbrikkene bruker fire ledninger for å snakke med Arduino: SPI-in, Clock, Latch og Enable. Jeg jordet Enable pin (pin 21) gjennom en motstand (RL), slik at utgang alltid er aktivert. Jeg har aldri brukt Enable, så jeg tok den ut av koden. SPI-in er dataene fra Arduino, Clock er et tidssignal mellom de to mens de snakker, og Latch forteller kontrolleren at det er på tide å godta nye data. Hver utgang for hver brikke styres av et 16-biters binært tall. For eksempel; Hvis du sender 1010101010101010 til kontrolleren, vil alle andre LED på kontrolleren lyse. Koden din må kjøre gjennom alt som trengs for en skjerm og bygge det binære nummeret, og deretter sende den til brikken. Det er lettere enn det høres ut. Teknisk sett er det en haug med bitvis tillegg, men jeg er elendig på bitvis matematikk, så jeg gjør alt i desimal. Desimal for de første 16 bitene 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 == 32768Dette betyr at hvis du vil lyser utgangene 2 og 10, du legger desimalene (2 og 512) sammen for å få 514. Send 514 til kontrolleren og utgangene 2 og 10 lyser. Men vi har mer enn 16 lysdioder, så det blir litt vanskeligere. Vi må bygge skjerminformasjon for 4 brikker. Som er like enkelt som å bygge det for 1, bare gjør det 3 ganger til. Jeg bruker en global variabel matrise for å holde kontrollkodene. Det er bare enklere på den måten. Når du har alle 4 skjermkoder klare til å sende, slipper du låsen (sett den til LAV) og begynner å sende kodene. Du må først sende den siste. Send kodene for brikke 4, deretter 3, deretter 2, deretter 1, og sett deretter låsen til HIGH igjen. Siden Enable pin alltid er koblet til bakken, endres displayet umiddelbart. De fleste kubikkoder jeg har sett på Instructables, og nettet generelt, består av en gigantisk blokk med kode for å utføre en forhåndsinnstilt animasjon. Det fungerer fint for mindre kuber, men trenger å lagre, lese og sende 512 biter binær hver gang du vil endre skjermen, tar mye minne. Arduinoen kunne ikke håndtere mer enn noen få rammer. Så jeg skrev noen enkle funksjoner for å vise kuben i aksjon som er avhengig av beregning i stedet for forhåndsinnstilte animasjoner. Jeg inkluderte en liten animasjon for å vise hvordan det gjøres, men jeg overlater det til deg å bygge dine egne skjermer. Cube8x8x8.pde er Arduino -koden. Jeg planlegger å fortsette å legge til funksjoner i koden og vil oppdatere programmet med jevne mellomrom. Matrix8x8.pde er et program i Processing for å bygge dine egne skjermer. Det første oppgitte tallet går inn i mønster1 , det andre i mønster2 , etc. Databladet for A6276EA er tilgjengelig på:

Trinn 7: Vis håndarbeidet ditt

Vis håndarbeidet ditt
Vis håndarbeidet ditt

Du er ferdig, nå er det på tide å nyte kuben din. Som du kan se, kom terningen min litt skjev. Jeg er ikke veldig opptatt av å bygge en til, så jeg vil leve med at den er skjev. Jeg har et par døde flekker som jeg må se på. Det kan være en dårlig tilkobling, eller jeg trenger kanskje en ny kontrollerbrikke. Jeg håper denne instruksjonsboken inspirerer deg til å bygge din egen kube, eller et annet LED -prosjekt ved hjelp av A6276AE. Legg ut en lenke i kommentarene hvis du bygger en. Jeg har prøvd å bestemme hvor jeg skal gå herfra. Kontrollkortet vil også kontrollere en 4x4x4 RGB -kube, så det er en mulighet. Jeg tror det ville være greit å gjøre en sfære, og måten jeg har koden skrevet på, ville det ikke være for vanskelig å gjøre.

Anbefalt: