Litar

Bagaimana Membina Cube LED 8x8x8 dan Kawalan Ia Dengan Arduino: 7 Langkah (dengan Gambar)

8x8x8 LED CUBE WITH ARDUINO UNO

8x8x8 LED CUBE WITH ARDUINO UNO

Isi kandungan:

Anonim

Terdapat banyak kiub LED pada Instructables, jadi mengapa lain? Kebanyakannya adalah untuk kiub kecil yang terdiri daripada 27 atau 64 LED, jarang sekali kerana ia terhad kepada jumlah output yang terdapat pada mikrokontroler. Kubus ini akan menjadi 512 LED, dan hanya memerlukan 11 wayar output dari Arduino. Bagaimana mungkin ini? Dengan menggunakan pemandu LED Allegro Microsystems A6276EA.
Saya akan menunjukkan kepada anda bagaimana saya membuat kiub itu sendiri, papan pengawal, dan akhirnya kod itu menjadikannya bersinar.


Bekalan:

Langkah 1: Bahan

Semua bahagian yang anda perlukan untuk membina kiub:
1 Arduino / Freeduino dengan Atmega168 atau cip yang lebih tinggi
512 LED, saiz dan warna terpulang kepada anda, saya menggunakan 3mm merah
4 A6276EA Pemacu cip LED dari Allegro
8 transistor NPN untuk mengawal aliran voltan, saya menggunakan transistor BDX53B Darlington
4 1000 ohm perintang, 1/4 watt atau lebih tinggi
12 560 ohm perintang, 1/4 watt atau lebih tinggi
1 kapasitor elektrolitik 330uF
4 24 pin soket IC
9 16 pin soket IC
4 "x4" (atau lebih besar) sekeping perfboard untuk memegang semua bahagian,
Kipas komputer lama
Kabel pengawal floppy lama
Bekalan kuasa komputer lama
Banyak wayar hookup, solder, besi solder, fluks, apa-apa lagi
menjadikan hidup anda lebih mudah semasa membuat ini.
7 "x7" (atau lebih besar) kayu yang digunakan untuk membuat jig pematerian LED
Kes yang bagus untuk memaparkan kiub siap anda
Pilihan Arduino / Freeduino saya ialah Lembaga Bare Bones (BBB) ​​dari www.moderndevice.com. LED dibeli dari eBay dan menelan kos $ 23 untuk 1000 LED yang dihantar dari China. Baki elektronik dibeli dari Newark Electronics (www.newark.com) dan hanya perlu kos sekitar $ 25. Sekiranya anda perlu membeli segala-galanya, projek ini hanya perlu kos sekitar $ 100.
Saya mempunyai banyak peralatan komputer lama supaya bahagian-bahagian itu keluar dari timbunan sekerap.

Langkah 2: Memasang Lapisan

Cara membuat 1 lapisan (64 LED) kiub 512 LED ini:
LED yang saya beli adalah diameter 3mm. Saya memutuskan untuk menggunakan LED kecil untuk mengurangkan kos dan membuat saiz akhir kubus cukup kecil untuk duduk di meja atau rak saya tanpa mengambil alih meja atau rak sepenuhnya.
Saya menarik grid 8x8 dengan kira-kira 0.6 inci di antara garisan. Ini memberi saya saiz kiub sekitar 4.25 inci setiap sisi. Bor lubang 3mm di mana garisan bertemu untuk membuat jig yang akan memegang LED semasa anda memateri setiap lapisan.
A6276EA adalah peranti sinki semasa. Ini bermakna ia menyediakan laluan ke tanah dan bukan jalan ke sumber voltan. Anda perlu membina kiub dalam konfigurasi anod biasa. Kebanyakan kiub dibina sebagai katod biasa.
Sisi panjang LED biasanya anod, periksa anda untuk memastikan. Perkara pertama yang saya lakukan adalah ujian setiap LED. Ya, ia adalah proses yang panjang dan membosankan dan anda boleh melangkauinya jika anda suka. Saya lebih suka menghabiskan masa untuk menguji LED daripada mencari tempat yang mati di kubus saya selepas ia dipasang. Saya dapati 1 mati LED dari 1000. Tidak buruk.
Potong 11 keping padat, tanpa wayar bersambung sehingga 5 inci. Letakkan 1 LED ke setiap hujung baris di jig anda dan kemudian solder wayar ke setiap anod. Sekarang masukkan 6 LED yang tersisa ke dalam barisan dan solder mereka anoda ke dawai. Ini boleh secara menegak atau mendatar, tidak mengapa selagi anda melakukan semua lapisan dengan cara yang sama. Apabila anda selesai setiap baris, potong petunjuk yang berlebihan daripada anoda. Saya meninggalkan sekitar 1/8 ".
Ulangi sehingga anda telah menyelesaikan semua 8 baris. Sekarang pateri 3 keping kait dengan wayar di seluruh baris yang anda buat untuk menyambungkan semuanya ke dalam satu bahagian. Saya kemudian menguji lapisan dengan melampirkan 5 volt ke
menyambung kekisi wayar melalui perintang dan menyentuh tanah ke setiap katod. Gantikan sebarang LED yang tidak menyala.
Berhati-hati mengeluarkan lapisan dari jig dan letakkannya. Sekiranya anda membengkokkan wayar, jangan risau, luruskanlah dengan sebaik mungkin. Ia sangat mudah untuk membengkokkan. Seperti yang dapat anda katakan dari gambar saya, saya mempunyai banyak wayar yang membungkuk.
Tahniah, anda selesai 1/8. Buat 7 lagi lapisan.
OPSIONAL: Untuk membuat penyolder lapisan bersama-sama (Langkah 3) lebih mudah, sementara setiap lapisan berikutnya masih dalam jig membengkokkan inci suku atas katod ke depan 45 hingga 90 darjah. Ini akan membolehkan
membawa untuk mencapai sekitar LED ia menyambung ke dan akan membuat pematerian lebih mudah. Jangan buat ini ke lapisan pertama anda, kami akan mengisytiharkan bahawa salah satu lapisan bawah dan petunjuk perlu lurus.

Langkah 3: Pasang Cube

Bagaimana untuk menyebarkan semua lapisan untuk membuat kiub:
Bahagian keras hampir berakhir. Sekarang, hati-hati letakkan satu lapisan semula ke jig, tetapi jangan gunakan terlalu banyak tekanan, kami mahu dapat mengeluarkannya tanpa membongkoknya. Lapisan pertama ini adalah bahagian atas kubus. Letakkan lapisan lain di atas yang pertama, gariskan petunjuk dan mulakan pematerian. Saya dapati ia paling mudah untuk melakukan sudut pertama, kemudian di luar tepi, kemudian di dalam baris.
Simpan tambah lapisan sehingga anda selesai. Jika anda pra membongkok dengan petunjuk maka pastikan untuk menyelamatkan lapisan dengan membawa lurus untuk yang terakhir. Ia adalah bahagian bawah.
Saya mempunyai sedikit ruang di antara setiap lapisan supaya saya tidak mendapat bentuk kubus. Bukan masalah besar, saya boleh hidup dengannya.

Langkah 4: Membina Lembaga Pengawal

Bagaimana untuk membina papan pengawal dan lampirkannya ke Arduino anda:
Ikuti skematik dan buatlah papan yang anda pilih. Saya meletakkan cip pengawal di tengah-tengah papan dan menggunakan sebelah kiri untuk memegang transistor yang mengawal arus ke setiap lapisan kiub, dan menggunakan sebelah kanan untuk memegang penyambung yang keluar dari cip pengawal ke katoda lajur LED.
Saya mendapati kipas komputer 40mm lama dengan penyambung molex wanita untuk memasukkannya ke bekalan kuasa komputer. Ini sempurna. Sebilangan kecil aliran udara merentasi cip berguna dan kini saya mempunyai cara mudah untuk memberikan 5 volt kepada cip pengawal dan Arduino itu sendiri.
Pada skematik, RC adalah penghalang pembatas semasa untuk semua LED yang disambungkan kepada setiap A6276EA. Saya menggunakan 1000 ohms kerana ia memberikan 5 milliamps kepada LED, cukup untuk menyalakannya. Saya menggunakan Kecerahan Tinggi, bukan Super Brite LED, jadi saliran semasa lebih rendah. Jika semua 8 LED dalam lajur menyala seketika, ia hanya 40 milliamps. Setiap keluaran A6276EA boleh mengendalikan 90 milliamps supaya saya berada dalam jarak jauh.
RL adalah penghalang yang disambungkan kepada logik atau petunjuk isyarat. Nilai sebenar tidak begitu penting selagi wujud dan tidak terlalu besar. Saya menggunakan 560 ohm kerana saya mempunyai sekumpulan mereka yang ada.
Saya menggunakan transistor kuasa yang mampu mengendalikan sehingga 6 amps untuk mengawal arus yang akan ke setiap lapisan kiub. Ini berlebihan untuk projek ini, kerana setiap lapisan kiub hanya akan menarik 320 milliamp dengan semua LED dinyalakan. Saya mahu ruang berkembang dan mungkin menggunakan papan pengawal untuk sesuatu yang lebih besar kemudian. Gunakan apa sahaja saiz transistor sesuai keperluan anda.
330 kapasitor uF merentasi sumber voltan di sana untuk membantu melancarkan turun naik voltan kecil. Oleh kerana saya menggunakan bekalan kuasa komputer lama, ini tidak perlu, tetapi saya membiarkannya hanya sekiranya seseorang ingin menggunakan penyesuai dinding 5 volt untuk menggerakkan kiubnya.
Setiap cip pengawal A6276EA mempunyai 16 output. Saya tidak mempunyai sebarang penyambung yang sesuai supaya saya dipimpin membawa kepada beberapa soket 16 pin IC dan akan menggunakannya untuk menyambungkan papan pengawal ke kubus. Saya juga memotong soket IC separuh dan menggunakannya untuk menyambungkan 8 wayar yang menghubungkan transistor ke lapisan kiub.
Saya memotong kira-kira 5 inci dari hujung kabel floppy lama untuk digunakan sebagai penyambung untuk Arduino. Kabel floppy adalah 2 baris daripada 20 pin, Papan Bones terdedah mempunyai 18 pin. Ini adalah cara yang sangat murah (percuma) untuk menyambung Arduino ke papan. Saya menarik kabel reben di dalam kumpulan 2 wayar, melepaskan hujungnya dan menyatukannya bersama-sama. Ini membolehkan anda memasangkan Arduino ke dalam barisan penyambung. Ikuti skematik dan pateri penyambung ke tempatnya. Jangan lupa untuk solder 5 volt dan petunjuk tanah untuk penyambung untuk memberikan kuasa kepada Arduino.
Saya berhasrat untuk menggunakan papan pengawal ini untuk projek-projek lain supaya reka bentuk modular berfungsi dengan baik untuk saya. Sekiranya anda ingin mengetatkan hubungan, itu baik-baik saja.

Langkah 5: Bina Kes Paparan

Jadikan produk akhir anda kelihatan bagus:
Saya dapati dada kayu ini di Hobby Lobby untuk $ 4 dan fikir ia akan menjadi sempurna kerana ia mempunyai ruang di dalam untuk memegang semua wayar ditambah ia kelihatan bagus. Saya ternoda warna merah, sama noda yang saya gunakan di meja komputer supaya mereka sepadan.
Lukiskan grid di atas saiz yang sama dengan grid yang digunakan untuk jig pematerian (.6 inci di antara garisan). Lubang gerudi untuk membolehkan petunjuk melalui bahagian atas, dan gerakkan lubang lain di belakang grid untuk wayar lapisan / pesawat (dari transistor di Langkah 4). Saya belajar dengan cara yang sukar untuk cuba mengarah ke arah 64 lubang kecil adalah sangat sukar. Saya akhirnya memutuskan untuk menggerudi semua lubang sedikit lebih besar untuk membuat proses lebih cepat. Saya akhirnya menggunakan sekitar .2 gerudi bit.
Sekarang bahawa kiub duduk di atas paparan, bengkok sudut memimpin supaya kiub akan tetap di tempat ketika anda memasang kabel. Pastikan anda melampirkan semua wayar dalam urutan yang betul.
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
Dan sambungkan wayar antara lapisan (berlabel 'pesawat' pada skematik) dan transistor. Transistor pada pin Arduino 6 adalah lapisan atas kiub.
Jika anda mendapat wayar yang salah, ia agak boleh dibetulkan dalam kod, tetapi ia mungkin memerlukan banyak kerja, jadi cuba dapatkannya dengan betul.
Baiklah, semua yang dibina dan sedia untuk pergi, mari kita dapatkan kod dan cubalah.

Langkah 6: Kod

Kod untuk kiub ini dilakukan secara berbeza daripada kebanyakan, saya akan menerangkan bagaimana untuk menyesuaikan diri.
Kod kod kiub menggunakan tulisan langsung ke lajur. Kod ini mengatakan bahawa Lajur X perlu disalurkan untuk memberikannya beberapa jus dan kami selesai. Itu tidak berfungsi apabila menggunakan cip pengawal.
Cip pengawal menggunakan 4 wayar untuk bercakap dengan Arduino: SPI-in, Clock, Latch, dan Enable. Saya arahkan pin Enable (pin 21) melalui perintang (RL) sehingga keluaran selalu diaktifkan. Saya tidak pernah menggunakan Enable jadi saya mengeluarkannya daripada kod. SPI-in adalah data dari Arduino, Jam adalah isyarat masa antara kedua-dua ketika mereka bercakap, dan Latch memberitahu pengawal saatnya untuk menerima data baru.
Setiap output bagi setiap cip dikawal oleh nombor biner 16 bit. Sebagai contoh; menghantar 1010101010101010 kepada pengawal akan menyebabkan setiap LED lain pada pengawal untuk menyala. Kod anda perlu dijalankan melalui semua yang diperlukan untuk paparan dan membina nombor binari itu, kemudian hantar ke cip. Ia lebih mudah daripada bunyi. Secara teknis ia adalah sekumpulan penambahan bitumen, tetapi saya buruk pada matematik bitwise jadi saya melakukan segala-galanya dalam perpuluhan.
Decimal untuk 16 bit pertama adalah seperti berikut:
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
Ini bermakna jika anda ingin menyalakan output 2 dan 10, anda menambah desimal (2 dan 512) bersama-sama untuk mendapatkan 514. Hantar 514 ke pengawal dan output 2 dan 10 akan menyala.
Tetapi kita mempunyai lebih daripada 16 LED supaya ia menjadi sedikit lebih sukar. Kita perlu membina maklumat paparan untuk 4 cip. Yang semudah membinanya untuk 1, hanya melakukannya 3 kali lagi. Saya menggunakan pelbagai pemboleh ubah global untuk memegang kod kawalan. Ia semudah itu.
Sebaik sahaja anda mempunyai semua 4 kod paparan yang sedia untuk dihantar, jatuhkan selak (tetapkan kepada LOW) dan mula menghantar kod. Anda perlu menghantar yang terakhir terlebih dahulu. Hantar kod untuk cip 4, kemudian 3, kemudian 2, kemudian 1, kemudian tetapkan Latch ke TINGGI lagi. Oleh kerana pin Enable sentiasa disambungkan ke tanah, paparan berubah dengan segera.
Kebanyakan kod kiub yang saya lihat pada Instructables, dan web secara umum, terdiri daripada kod raksasa kod yang ditetapkan untuk melaksanakan animasi pra-set.Itu berfungsi dengan baik untuk kiub kecil tetapi perlu menyimpan, membaca, dan menghantar 512 bit binari setiap kali anda ingin menukar paparan memakan banyak ingatan. Arduino tidak boleh mengendalikan lebih daripada beberapa bingkai. Oleh itu saya menulis beberapa fungsi mudah untuk menunjukkan kiub dalam tindakan yang bergantung kepada pengiraan dan bukannya animasi pra-tetapkan. Saya termasuk animasi kecil untuk menunjukkan bagaimana ia dilakukan, tetapi saya akan membiarkannya untuk membina pameran anda sendiri.
cube8x8x8.pde adalah kod Arduino. Saya merancang untuk terus menambah fungsi kepada kod dan akan mengemaskini program secara berkala.
matrix8x8.pde adalah program dalam Pemprosesan untuk membina paparan anda sendiri. Nombor pertama yang diberikan masuk ke pola 1 , kedua ke dalam pola2 , dan lain-lain
Lembaran data untuk A6276EA boleh didapati di:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Langkah 7: Paparkan Tangan Anda

Anda sudah selesai, kini sudah tiba masanya untuk menikmati kiub anda.


Seperti yang anda dapat lihat, kiub saya keluar sedikit bengkok. Saya tidak berminat untuk membina satu lagi tetapi saya akan hidup dengannya yang bengkok. Saya mempunyai beberapa tempat mati yang perlu saya lihat. Ia mungkin sambungan yang buruk, atau saya mungkin memerlukan cip pengawal baru.
Saya berharap ini Instructable memberi inspirasi kepada anda untuk membina kiub anda sendiri, atau projek LED yang lain menggunakan A6276AE. Siarkan pautan dalam komen jika anda membina satu.
Saya telah cuba untuk memutuskan ke mana hendak pergi dari sini. Papan pengawal juga akan mengawal kiub RGB 4x4x4, jadi itu kemungkinan. Saya fikir ia akan menjadi kemas untuk melakukan sfera dan cara saya menulis kod itu, ia tidak akan terlalu sukar untuk dilakukan.