Circuits

Paano Gumawa ng isang 8x8x8 LED Cube at Kontrolin Ito Sa isang Arduino: 7 Mga Hakbang (na may Mga Larawan)

8x8x8 LED CUBE WITH ARDUINO UNO

8x8x8 LED CUBE WITH ARDUINO UNO

Talaan ng mga Nilalaman:

Anonim

Mayroong maraming mga LED cubes sa Instructables, kaya bakit iba pa? Karamihan ay para sa maliit na cube na binubuo ng 27 o 64 LEDs, bihirang mas malaki dahil sila ay limitado sa bilang ng mga outputs na magagamit sa microcontroller. Ang kubo na ito ay magiging 512 LEDs, at kakailanganin lamang ang 11 na mga wire ng output mula sa Arduino. Paano ito posible? Sa pamamagitan ng paggamit ng Allegro Microsystems A6276EA LED driver.
Ipapakita ko sa iyo kung paano ko ginawa ang kubo mismo, ang controller board, at sa wakas ang code upang gawing lumiwanag.


Mga Kagamitan:

Hakbang 1: Materyales

Lahat ng mga bahagi kakailanganin mong bumuo ng kubo:
1 Arduino / Freeduino na may Atmega168 o mas mataas na maliit na tilad
512 LEDs, laki at kulay ay nasa sa iyo, ginamit ko ang 3mm pula
4 A6276EA LED driver chips mula sa Allegro
8 NPN transistors upang kontrolin ang boltahe daloy, Ginamit ko ang BDX53B Darlington transistor
4 1000 oum resistors, 1/4 watt o mas mataas
12 560 oum resistors, 1/4 watt o mas mataas
1 330uF electrolytic capacitor
4 24 pin IC socket
9 16 pin IC sockets
4 "x4" (o mas malaki) na piraso ng perfboard upang i-hold ang lahat ng mga bahagi,
Isang lumang fan ng computer
Isang lumang floppy controller cable
Ang isang lumang computer power supply
Ang isang pulutong ng hookup wire, solder, paghihinang na bakal, pagkilos ng bagay, ano pa man
gawing mas madali ang iyong buhay habang ginagawa ito.
7 "x7" (o mas malaki) piraso ng kahoy na ginamit upang gawin ang LED paghihinang jig
Isang magandang kaso upang ipakita ang iyong natapos na kubo
Ang Aking Arduino / Freeduino ng pagpili ay ang Bare Bones Board (BBB) ​​mula sa www.moderndevice.com. Ang mga LEDs ay binili mula sa eBay at nagkakahalaga ng $ 23 para sa 1000 LEDs na naipadala mula sa China. Ang natitirang electronics ay binili mula sa Newark Electronics (www.newark.com) at dapat lamang magastos sa paligid ng $ 25. Kung kailangan mong bumili ng lahat ng bagay, ang proyektong ito ay dapat lamang gastos sa paligid ng $ 100.
Mayroon akong maraming mga lumang kagamitan sa computer upang ang mga bahagi ay dumating off ang scrap heap.

Hakbang 2: Magtipon ng Mga Layer

Paano gumawa ng 1 layer (64 LEDs) ng 512 LED cube na ito:
Ang LEDs na binili ko ay 3mm ang lapad. Nagpasya akong gumamit ng maliliit na LEDs upang mabawasan ang gastos at upang gawin ang pangwakas na sukat ng kubo sapat na maliit upang umupo sa aking desk o istante nang hindi ganap na pagkuha sa ibabaw ng desk o shelf.
Drew ko ang isang 8x8 grid na may humigit-kumulang .6 pulgada sa pagitan ng mga linya. Ito ay nagbigay sa akin ng isang kubo laki sa paligid ng 4.25 pulgada sa bawat panig. Mag-drill ng 3mm na butas kung saan ang mga linya ay nakakatugon upang makagawa ng isang jig na hawakan ang LEDs bilang maghinang mo sa bawat layer.
Ang A6276EA ay isang kasalukuyang aparato na lababo. Nangangahulugan ito na nagbibigay ito ng landas sa lupa sa halip na isang landas sa boltahe ng pinagmulan. Kakailanganin mong itayo ang kubo sa karaniwang pagsasaayos ng anod. Karamihan sa mga cube ay itinayo bilang karaniwang katod.
Ang mahabang bahagi ng LED ay karaniwang ang anod, suriin ang iyo upang tiyakin. Ang unang bagay na ginawa ko ay subukan ang bawat LED. Oo ito ay isang mahaba at mayamot na proseso at maaari mong laktawan ito kung gusto mo. Gusto kong gugulin ang oras upang masubukan ang LEDs kaysa makahanap ng isang patay na lugar sa aking kubo pagkatapos na ito ay binuo. Natagpuan ko ang 1 patay na humantong sa 1000. Hindi masama.
Gupitin ang 11 piraso ng solid, di-insulated hook up wire hanggang 5 pulgada. Lugar 1 LED sa bawat dulo ng isang hilera sa iyong dyig at pagkatapos maghinang ang kawad sa bawat anod. Ngayon ilagay ang natitirang 6 LEDs sa hilera at maghinang mga anodes sa kawad. Ito ay maaaring patayo o pahalang, hindi mahalaga kung gagawin mo ang lahat ng mga layer sa parehong paraan. Habang natapos mo ang bawat hilera, putulin ang labis na tingga mula sa anodes. Umalis ako sa paligid ng 1/8 ".
Ulitin hanggang natapos mo na ang lahat ng 8 na hanay. Ngayon solder 3 piraso ng hook up kawad sa mga hanay na ginawa mo lamang upang ikonekta ang lahat ng mga ito sa isang solong piraso. Pagkatapos ay sinubukan ko ang layer sa pamamagitan ng paglakip ng 5 volts sa
Hook up wire sala-sala sa pamamagitan ng isang risistor at hinawakan ang lupa humantong sa bawat katod. Palitan ang anumang mga LED na hindi ilaw.
Maingat na alisin ang layer mula sa jig at itabi ito. Kung yumuko ka sa mga wires, huwag mag-alala, ituwid mo lang ang mga ito bilang pinakamahusay na magagawa mo. Napakadali na yumuko. Tulad ng iyong masasabi mula sa aking mga larawan, marami akong mga bent wire.
Binabati kita, tapos na ang 1/8. Gumawa ng 7 higit pang mga layer.
OPTIONAL: Upang gawing mas pinagsama-sama ang mga layers (Hakbang 3), habang ang bawat kasunod na layer ay nasa gilid pa rin sa tuktok na quarter inch ng cathode forward na 45 hanggang 90 degrees. Papayagan nito ang
humantong sa maabot ang paligid ng LED ito ay pagkonekta sa at gagawin paghihinang lubhang mas madaling. Huwag gawin ito sa iyong unang layer, ipahahayag namin na ang isa ay ang ilalim na layer at ang mga lead ay kailangang tuwid.

Hakbang 3: Magtipon ng Cube

Kung paano maghinang lahat ang mga layer na magkasama upang makagawa ng kubo:
Ang mahirap na bahagi ay halos tapos na. Ngayon, maingat na ilagay ang isang layer pabalik sa jig, ngunit huwag gumamit ng masyadong maraming presyon, gusto naming maalis ito nang walang baluktot ito. Ang unang layer na ito ay ang tuktok na mukha ng kubo. Ilagay ang isa pang layer sa ibabaw ng unang isa, linya up ang mga lead at simulan ang paghihinang. Natagpuan ko ito pinakamadaling upang gawin unang sulok, pagkatapos ay sa labas ng gilid, pagkatapos ay sa loob ng mga hilera.
Panatilihin ang pagdaragdag ng mga layer hanggang tapos ka na. Kung ikaw pre-baluktot ang mga leads pagkatapos ay siguraduhin na i-save ang layer na may tuwid leads para sa huling. Ito ay sa ilalim.
Ako ay may isang maliit na masyadong maraming puwang sa pagitan ng bawat layer kaya hindi ko lubos na makakuha ng isang kubo hugis. Hindi isang malaking deal, maaari kong mabuhay dito.

Hakbang 4: Pagbuo ng Lupon ng Controller

Kung paano bumuo ng controller board at ilakip ito sa iyong Arduino:
Sundin ang eskematiko at bumuo ng lupon gayunpaman pinili mo. Inilagay ko ang mga chips ng controller sa gitna ng board at ginagamit ang kaliwang bahagi upang i-hold ang mga transistors na kontrolin ang kasalukuyang sa bawat layer ng kubo, at ginamit ang kanang bahagi upang i-hold ang mga konektor na lumalabas mula sa mga chips ng controller sa cathodes ng ang mga LED na haligi.
Nakakita ako ng isang lumang 40mm computer fan na may isang babae na molex connector upang plug ito sa isang computer power supply. Ito ay perpekto. Ang isang maliit na halaga ng daloy ng hangin sa kabila ng maliit na tilad ay kapaki-pakinabang at mayroon akong madaling paraan upang magkaloob ng 5 volts sa mga chips ng controller at ang Arduino mismo.
Sa eskematiko, RC ay ang kasalukuyang pumipigil sa risistor para sa lahat ng LEDs na konektado sa bawat A6276EA. Ginamit ko ang 1000 ohms dahil nagbibigay ito ng 5 milliamps sa LED, sapat na upang magaan ito. Gumagamit ako ng Mataas na Liwanag, hindi Super Brite LEDs, kaya mas mababa ang kasalukuyang alulod. Kung ang lahat ng 8 LEDs sa isang haligi ay sabay-sabay, ito ay lamang ng 40 milliamps. Ang bawat output ng A6276EA ay maaaring pangasiwaan ang 90 milliamps kaya mahusay ako sa loob ng range.
Ang RL ay ang resistor na konektado sa logic o signal leads. Ang aktwal na halaga ay hindi napakahalaga hangga't umiiral ito at hindi masyadong malaki. Gumagamit ako ng 560 ohms dahil mayroon akong isang grupo ng mga ito na magagamit.
Ginamit ko ang isang power transistor na may kakayahang paghawak ng hanggang 6 na amps upang kontrolin ang kasalukuyang pagpunta sa bawat layer ng kubo. Ito ay overkill para sa proyektong ito, dahil ang bawat layer ng kubo ay gumuhit lamang ng 320 milliamps sa lahat ng mga LEDs naiilawan. Gusto kong lumaki ang kuwarto at maaaring gamitin ang controller board para sa isang bagay na mas malaki mamaya. Gamitin ang laki ng transistor sa iyong mga pangangailangan.
Ang 330 uF kapasitor sa kabila ng boltahe pinagmulan ay doon upang makatulong sa makinis ang anumang mga menor de edad na boltahe pagbabagu-bago. Dahil gumagamit ako ng isang lumang computer power supply, hindi ito kinakailangan, ngunit iniwan ko ito kung sakaling may gustong gumamit ng isang 5 bolta na adaptor sa dingding upang mapalakas ang kubo.
Ang bawat A6276EA controller chip ay may 16 na output. Wala akong iba pang naaangkop na konektor kaya ako soldered humantong sa ilang 16 pin IC sockets at gagamitin ang mga upang ikonekta ang controller board sa kubo. Pinuputol ko rin ang isang IC socket sa kalahati at ginamit ito upang ikonekta ang 8 wires na kumonekta sa mga transistors sa mga layer ng kubo.
Pinutol ko ang tungkol sa 5 pulgada mula sa dulo ng isang lumang tumbahin cable upang magamit bilang ang connector para sa Arduino. Ang tumbahin cable ay 2 mga hilera ng 20 pin, ang hubad na Bones Board ay may 18 pin. Ito ay isang napaka-murang paraan (libre) upang ikonekta ang Arduino sa board. Kinuha ko ang ribon cable sa pagitan ng mga grupo ng 2 wires, hinubad ang mga dulo at pinagsama sila. Ito ay nagbibigay-daan sa iyo upang plug ang Arduino sa alinman sa hilera ng connector. Sundin ang eskematiko at panghinang ang konektor sa lugar. Huwag kalimutan na maghinang ang 5 bolta at mga lead lupa para sa connector upang magkaloob ng kapangyarihan sa Arduino.
Nais kong gamitin ang controller board na ito para sa iba pang mga proyekto upang ang modular na disenyo ay gumagana para sa akin. Kung nais mong hard-wire ang mga koneksyon, iyon ay multa.

Hakbang 5: Bumuo ng Display Case

Gawing maganda ang iyong huling produkto:
Nakita ko ang sahig na gawa sa dibdib na ito sa Hobby Lobby para sa $ 4 at naisip na magiging perpekto dahil mayroon itong puwang sa loob upang i-hold ang lahat ng kawad kasama itong mukhang maganda. Nagbabad ako ng isang pula, parehong mantsa na ginamit ko sa aking computer desk upang tumugma sila.
Gumuhit ng isang grid sa ibabaw ng parehong sukat tulad ng grid na ginagamit para sa paghihinang jig (.6 pulgada sa pagitan ng mga linya). I-drill ang mga butas upang payagan ang mga lead sa pamamagitan ng tuktok, at mag-drill ng isa pang butas sa likod ng grid para sa layer / plane wires (mula sa transistors sa Hakbang 4). Natutunan ko ang mahirap na paraan na sinusubukang i-line up 64 leads upang pumunta sa pamamagitan ng maliit na butas ay mahirap. Ako sa wakas ay nagpasiya na muling i-drill ang lahat ng mga butas ng isang maliit na mas malaki upang gawing mas mabilis ang proseso. Natapos ko ang gamit sa paligid ng isang .2 drill bit.
Ngayon na ang kubo ay nakaupo sa ibabaw ng display, yumuko ang mga sulok na humahantong upang ang kubo ay mananatili sa lugar habang iniuugnay mo ang mga wire. Tiyaking ilakip mo ang lahat ng mga wire sa tamang pagkakasunud-sunod.
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
At ikonekta ang mga wire sa pagitan ng mga layer (na may label na 'mga eroplano' sa eskematiko) at ang mga transistor. Ang transistor sa Arduino pin 6 ay ang tuktok na layer ng kubo.
Kung nakuha mo ang mga wires mali, ito ay medyo tama sa loob ng code, ngunit ito ay maaaring mangailangan ng maraming trabaho, kaya subukan upang makuha ang mga ito sa tamang pagkakasunud-sunod.
Okay, lahat ng bagay na binuo at handa na upang pumunta, kumuha ng ilang mga code at subukan ito.

Hakbang 6: Code

Ang code para sa kubo na ito ay naiiba kaysa sa karamihan, ipapaliwanag ko kung paano iangkop.
Karamihan sa code ng kubo ay gumagamit ng mga direktang magsusulat sa mga haligi. Sinasabi ng code na kailangang gawin ang Haligi X upang bigyan ito ng ilang juice at tapos na kami. Hindi ito gumagana kapag gumagamit ng mga chips ng controller.
Ang mga controller chips ay gumagamit ng 4 wires upang kausapin ang Arduino: SPI-in, Clock, Latch, at Paganahin. Ako grawnded ang Paganahin ang pin (pin 21) sa pamamagitan ng isang risistor (RL) kaya output ay palaging pinagana. Hindi ko ginamit ang Paganahin kaya kinuha ko ito sa labas ng code. Ang SPI-in ay ang data mula sa Arduino, Clock ay isang timing signal sa pagitan ng dalawang habang sila ay nagsasalita, at ang Latch ay nagsasabi sa controller na oras na upang tanggapin ang mga bagong data.
Ang bawat output para sa bawat maliit na tilad ay kinokontrol ng isang 16 bit binary number. Halimbawa; pagpapadala ng 1010101010101010 sa magsusupil ay magiging sanhi ng bawat iba pang mga LED sa controller sa liwanag. Kailangan ang iyong code sa pamamagitan ng lahat ng kailangan para sa isang display at bumuo ng binary na numero, pagkatapos ay ipadala ito sa maliit na tilad. Mas madali kaysa ito tunog. Technically ito ay isang bungkos ng bitwise karagdagan, ngunit ako ay pangit sa bitwise matematika kaya gagawin ko ang lahat sa decimal.
Ang decimal para sa unang 16 bits ay ang mga sumusunod:
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
Nangangahulugan ito na kung gusto mong i-light up ang mga output na 2 at 10, idagdag mo ang mga decimal (2 at 512) magkasama upang makakuha ng 514. Ipadala 514 sa controller at output 2 at 10 ay magaan.
Ngunit mayroon kaming higit sa 16 LEDs kaya nakakakuha ito ng bahagyang mas mahirap. Kailangan naming bumuo ng impormasyon sa display para sa 4 chips. Na kung saan ay kasing-dali ng pagbuo ng ito para sa 1, gawin lamang ito nang higit 3 beses. Gumagamit ako ng isang global variable array upang i-hold ang mga control code. Mas madali lang iyan.
Sa sandaling mayroon kang 4 na mga display code na handa nang ipadala, i-drop ang aldaba (itakda ito sa LOW) at simulan ang pagpapadala ng mga code. Kailangan mong ipadala muna ang huling. Ipadala ang mga code para sa chip 4, pagkatapos ay 3, pagkatapos ay 2, pagkatapos ay 1, pagkatapos ay i-set muli ang Latch sa HIGH. Dahil ang Enable pin ay laging konektado sa lupa, agad na binago ang display.
Karamihan sa code ng kubo na nakita ko sa Instructables, at sa web sa pangkalahatan, ay binubuo ng isang higanteng bloke ng code na nakatakda upang maisagawa ang isang pre-set na animation.Na gumagana pagmultahin para sa mas maliit na cube ngunit nangangailangan upang mag-imbak, basahin, at magpadala ng 512 bits ng binary sa bawat oras na nais mong baguhin ang display tumatagal ng maraming memorya. Ang Arduino ay hindi maaaring pangasiwaan ang higit sa ilang mga frame. Kaya sumulat ako ng ilang mga simpleng pag-andar upang ipakita ang kubo sa aksyon na umaasa sa pagkalkula kaysa sa pre-set animation. Kasama ko ang isang maliit na animation upang ipakita kung paano ito nagagawa, ngunit ibabalik ko ito sa iyo upang bumuo ng iyong sariling mga display.
Ang cube8x8x8.pde ay ang Arduino code. Plano kong ipagpatuloy ang pagdaragdag ng mga function sa code at i-update ang programa sa pana-panahon.
matrix8x8.pde ay isang programa sa Processing upang bumuo ng iyong sariling mga display. Ang unang ibinigay na numero ay napupunta sa pattern1 , pangalawa sa pattern2 , atbp.
Ang datasheet para sa A6276EA ay makukuha sa:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Hakbang 7: Ipakita ang Iyong Paggawa

Tapos ka na, ngayon ay oras na upang tamasahin ang iyong kubo.


Tulad ng makikita mo, ang aking kubo ay lumabas ng isang maliit na baluktot. Hindi ako masyadong masigasig sa pagbuo ng isa pang kahit na kaya ako ay mabubuhay sa ito na baluktot. Mayroon akong ilang mga patay na spots na kailangan ko upang tumingin sa. Maaaring ito ay isang masamang koneksyon, o maaaring kailangan ko ng bagong controller chip.
Umaasa ako na ang Instructable ay nagbibigay inspirasyon sa iyo na bumuo ng iyong sariling kubo, o ilang iba pang LED na proyekto gamit ang A6276AE. Mag-post ng isang link sa mga komento kung bumuo ka ng isa.
Sinisikap kong magpasiya kung saan pupunta rito. Ang controller board ay makokontrol rin sa isang 4x4x4 RGB cube, kaya iyon ang posibilidad. Sa tingin ko ito ay magiging kapong baka upang gawin ang isang globo at ang paraan na mayroon ako ng code na nakasulat, hindi ito ay magiging masyadong mahirap na gawin.