Sirkuit

Cara Membangun Kubus LED 8x8x8 dan Mengontrolnya Dengan Arduino: 7 Langkah (dengan Gambar)

8x8x8 LED CUBE WITH ARDUINO UNO

8x8x8 LED CUBE WITH ARDUINO UNO

Daftar Isi:

Anonim

Ada banyak kubus LED pada Instructables, jadi mengapa melakukan yang lain? Sebagian besar untuk kubus kecil yang terdiri dari 27 atau 64 LED, jarang lebih besar karena terbatas pada jumlah output yang tersedia pada mikrokontroler. Kubus ini akan menjadi 512 LED, dan hanya akan membutuhkan 11 kabel output dari Arduino. Bagaimana ini mungkin? Dengan menggunakan driver LED Allegro Microsystems A6276EA.
Saya akan menunjukkan kepada Anda bagaimana saya membuat kubus itu sendiri, papan pengontrol, dan akhirnya kode untuk membuatnya bersinar.


Persediaan:

Langkah 1: Bahan

Semua bagian yang Anda butuhkan untuk membangun kubus:
1 Arduino / Freeduino dengan Atmega168 atau chip yang lebih tinggi
512 LED, ukuran dan warna terserah Anda, saya menggunakan 3mm merah
4 A6276EA chip driver LED dari Allegro
8 NPN transistor untuk mengontrol aliran tegangan, saya menggunakan transistor Darlington BDX53B
4 1000 ohm resistor, 1/4 watt atau lebih tinggi
12 resistor 560 ohm, 1/4 watt atau lebih tinggi
1 330uF kapasitor elektrolit
4 soket IC 24 pin
9 16 pin soket IC
4 "x 4" (atau lebih besar) dari perfboard untuk menampung semua bagian,
Kipas komputer tua
Kabel pengontrol floppy tua
Catu daya komputer lama
Banyak kawat hookup, solder, solder, fluks, apa pun
membuat hidup Anda lebih mudah saat membuat ini.
7 "x 7" (atau lebih besar) sepotong kayu yang digunakan untuk membuat jig solder LED
Kasing yang bagus untuk menampilkan kubus jadi Anda
Arduino / Freeduino pilihan saya adalah Bare Bones Board (BBB) ​​dari www.moderndevice.com. LED dibeli dari eBay dan biaya $ 23 untuk 1000 LED dikirim dari Cina. Elektronik yang tersisa dibeli dari Newark Electronics (www.newark.com) dan hanya berharga sekitar $ 25. Jika Anda harus membeli semuanya, proyek ini seharusnya hanya berharga sekitar $ 100.
Saya memiliki banyak peralatan komputer lama sehingga bagian-bagian itu keluar dari tumpukan memo.

Langkah 2: Merakit Layers

Cara membuat 1 layer (64 LED) dari kubus LED 512 ini:
LED yang saya beli berdiameter 3mm. Saya memutuskan untuk menggunakan LED kecil untuk mengurangi biaya dan membuat ukuran akhir kubus cukup kecil untuk duduk di meja atau rak saya tanpa sepenuhnya mengambil alih meja atau rak.
Saya menggambar kotak 8x8 dengan garis kira-kira 0,6 inci. Ini memberi saya ukuran kubus sekitar 4,25 inci per sisi. Bor lubang 3mm di mana garis bertemu untuk membuat jig yang akan menahan LED saat Anda menyolder setiap lapisan.
A6276EA adalah perangkat wastafel saat ini. Ini berarti menyediakan jalur ke ground daripada jalur ke sumber tegangan. Anda perlu membangun kubus dalam konfigurasi anoda umum. Kebanyakan kubus dibangun sebagai katoda umum.
Sisi panjang LED umumnya anoda, periksa milik Anda untuk memastikan. Hal pertama yang saya lakukan adalah menguji setiap LED. Ya itu proses yang panjang dan membosankan dan Anda bisa melewatkannya jika mau. Saya lebih suka menghabiskan waktu untuk menguji LED daripada menemukan tempat mati di kubus saya setelah itu dirakit. Saya menemukan 1 LED mati dari 1000. Tidak buruk.
Potong 11 buah kawat hook yang solid dan tidak terisolasi hingga 5 inci. Tempatkan 1 LED ke setiap ujung baris di jig Anda dan kemudian solder kawat ke masing-masing anoda. Sekarang tempatkan 6 LED yang tersisa ke baris dan solder anoda ke kawat. Ini bisa secara vertikal atau horizontal, tidak masalah selama Anda melakukan semua layer dengan cara yang sama. Saat Anda menyelesaikan setiap baris, potong kelebihan timbal dari anoda. Saya meninggalkan sekitar 1/8 ".
Ulangi sampai Anda menyelesaikan semua 8 baris. Sekarang solder 3 buah kawat kait di baris yang baru saja Anda buat untuk menghubungkan mereka semua menjadi satu bagian. Saya kemudian menguji lapisan dengan melampirkan 5 volt ke
menghubungkan kisi-kisi kawat melalui resistor dan menyentuh ujung kabel ke setiap katoda. Ganti LED yang tidak menyala.
Keluarkan layer dengan hati-hati dari jig dan sisihkan. Jika Anda membengkokkan kabel, jangan khawatir, luruskan mereka sebaik mungkin. Sangat mudah untuk ditekuk. Seperti yang Anda tahu dari foto-foto saya, saya memiliki banyak kawat bengkok.
Selamat, Anda sudah selesai 1/8. Buat 7 lapisan lagi.
OPSIONAL: Untuk membuat menyolder lapisan bersama-sama (Langkah 3) lebih mudah, sementara setiap lapisan berikutnya masih di jig tekuk seperempat inci atas katoda maju 45 hingga 90 derajat. Ini akan memungkinkan
mengarah ke sekitar LED yang terhubung dan akan membuat solder lebih mudah. Jangan lakukan ini pada lapisan pertama Anda, kami akan menyatakan bahwa satu adalah lapisan bawah dan timahnya harus lurus.

Langkah 3: Merakit Kubus

Cara menyolder semua lapisan menjadi kubus:
Bagian yang sulit hampir berakhir. Sekarang, hati-hati tempatkan satu lapisan kembali ke dalam jig, tetapi jangan menggunakan terlalu banyak tekanan, kami ingin dapat menghapusnya tanpa menekuknya. Lapisan pertama ini adalah permukaan atas kubus. Tempatkan layer lain di atas yang pertama, sejajarkan lead dan mulai menyolder. Saya merasa paling mudah untuk melakukan sudut pertama, kemudian tepi luar, lalu di dalam baris.
Terus tambahkan layer sampai Anda selesai. Jika Anda membengkokkan lead maka pastikan untuk menyimpan layer dengan lead lurus untuk yang terakhir. Itu bagian bawah.
Saya memiliki sedikit ruang terlalu banyak antara setiap lapisan jadi saya tidak cukup mendapatkan bentuk kubus. Bukan masalah besar, saya bisa hidup dengannya.

Langkah 4: Membangun Papan Pengendali

Cara membuat papan pengontrol dan memasangnya ke Arduino Anda:
Ikuti skema dan bangun papan sesuai keinginan Anda. Saya menempatkan chip pengontrol di tengah papan dan menggunakan sisi kiri untuk memegang transistor yang mengontrol arus ke setiap lapisan kubus, dan menggunakan sisi kanan untuk memegang konektor yang pergi dari chip pengontrol ke katoda dari kolom LED.
Saya menemukan kipas komputer 40mm tua dengan konektor molex wanita untuk menancapkannya ke catu daya komputer. Ini sempurna. Sejumlah kecil aliran udara melintasi chip berguna dan saya sekarang memiliki cara mudah untuk memberikan 5 volt ke chip pengontrol dan Arduino itu sendiri.
Pada skema, RC adalah resistor pembatas arus untuk semua LED yang terhubung ke masing-masing A6276EA. Saya menggunakan 1000 ohm karena menyediakan 5 miliamps ke LED, cukup untuk menyalakannya. Saya menggunakan Kecerahan Tinggi, bukan LED Super Brite, jadi pengaliran saat ini lebih rendah. Jika semua 8 LED dalam satu kolom menyala sekaligus, itu hanya 40 miliamp. Setiap output dari A6276EA dapat menangani 90 miliamp sehingga saya berada dalam jangkauan.
RL adalah resistor yang terhubung dengan logika atau sinyal. Nilai aktual tidak terlalu penting asalkan ada dan tidak terlalu besar. Saya menggunakan 560 ohm karena saya memiliki banyak dari mereka yang tersedia.
Saya menggunakan transistor daya yang mampu menangani hingga 6 amp untuk mengontrol arus yang mengalir ke setiap lapisan kubus. Ini berlebihan untuk proyek ini, karena setiap lapisan kubus hanya akan menggambar 320 miliamp dengan semua LED menyala. Saya ingin ruang tumbuh dan mungkin menggunakan papan pengontrol untuk sesuatu yang lebih besar nanti. Gunakan ukuran transistor apa pun yang sesuai dengan kebutuhan Anda.
Kapasitor 330 uF di sumber tegangan ada untuk membantu memuluskan fluktuasi tegangan minor. Karena saya menggunakan catu daya komputer lama, ini tidak perlu, tetapi saya membiarkannya untuk berjaga-jaga seandainya seseorang ingin menggunakan adaptor dinding 5 volt untuk memberi daya pada kubus mereka.
Setiap chip pengontrol A6276EA memiliki 16 output. Saya tidak memiliki konektor lain yang cocok jadi saya menyolder mengarah ke beberapa soket IC 16 pin dan akan menggunakannya untuk menghubungkan papan pengontrol ke kubus. Saya juga memotong soket IC menjadi dua dan menggunakannya untuk menghubungkan 8 kabel yang menghubungkan transistor ke lapisan kubus.
Saya memotong sekitar 5 inci dari ujung kabel floppy tua untuk digunakan sebagai konektor untuk Arduino. Kabel floppy adalah 2 baris 20 pin, Bones Bare Board memiliki 18 pin. Ini adalah cara yang sangat murah (gratis) untuk menghubungkan Arduino ke papan tulis. Saya menarik kabel pita menjadi dua kelompok kabel, menanggalkan ujungnya dan menyatukannya. Ini memungkinkan Anda untuk menghubungkan Arduino ke salah satu baris konektor. Ikuti skema dan solder konektor ke tempatnya. Jangan lupa menyolder 5 volt dan ground lead untuk konektor untuk memberikan daya ke Arduino.
Saya bermaksud menggunakan papan pengontrol ini untuk proyek lain sehingga desain modular berfungsi dengan baik untuk saya. Jika Anda ingin menghubungkan koneksi dengan kabel, itu tidak masalah.

Langkah 5: Bangun Kotak Display

Jadikan produk akhir Anda terlihat bagus:
Saya menemukan peti kayu di Hobby Lobby ini seharga $ 4 dan saya pikir itu akan sempurna karena memiliki ruang di dalam untuk menampung semua kawat dan kelihatannya bagus. Saya menodai yang satu ini merah, noda yang sama saya gunakan di meja komputer saya sehingga cocok.
Gambarlah sebuah kisi di atas dengan ukuran yang sama dengan kisi yang digunakan untuk jig solder (0,6 inci di antara garis-garis). Bor lubang untuk memungkinkan mengarah melalui bagian atas, dan bor lubang lain di belakang grid untuk kabel lapisan / pesawat (dari transistor pada Langkah 4). Saya belajar dengan cara yang sulit bahwa mencoba memasang 64 lead untuk melewati lubang-lubang kecil sangat sulit. Saya akhirnya memutuskan untuk mengebor ulang semua lubang sedikit lebih besar untuk membuat prosesnya lebih cepat. Saya akhirnya menggunakan sekitar 0,2 bor.
Sekarang setelah kubus itu duduk di atas layar, tekuk sudut mengarah sehingga kubus akan tetap di tempatnya saat Anda memasang kabel. Pastikan Anda memasang semua kabel dalam urutan yang benar.
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 hubungkan kabel antara lapisan (diberi label 'pesawat' pada skema) dan transistor. Transistor pada pin Arduino 6 adalah lapisan paling atas dari kubus.
Jika Anda salah menghubungkan kabel, kode tersebut agak dapat dikoreksi dalam kode, tetapi mungkin membutuhkan banyak pekerjaan, jadi cobalah untuk membuatnya dengan urutan yang benar.
Oke, semuanya sudah dibangun dan siap untuk digunakan, mari kita ambil beberapa kode dan mencobanya.

Langkah 6: Kode

Kode untuk kubus ini dilakukan secara berbeda dari kebanyakan, saya akan menjelaskan cara beradaptasi.
Sebagian besar kode kubus menggunakan menulis langsung ke kolom. Kode mengatakan bahwa Kolom X perlu dinyalakan jadi berikan jus dan kita selesai. Itu tidak berfungsi saat menggunakan chip pengontrol.
Chip pengontrol menggunakan 4 kabel untuk berbicara dengan Arduino: SPI-in, Clock, Latch, dan Enable. Saya menghubungkan pin Enable (pin 21) melalui resistor (RL) sehingga output selalu diaktifkan. Saya tidak pernah menggunakan Enable jadi saya mengeluarkannya dari kode. SPI-in adalah data dari Arduino, Clock adalah sinyal waktu di antara keduanya saat mereka berbicara, dan Latch memberi tahu pengontrol bahwa sudah waktunya untuk menerima data baru.
Setiap output untuk setiap chip dikendalikan oleh angka biner 16 bit. Sebagai contoh; mengirim 1010101010101010 ke controller akan menyebabkan setiap LED lainnya pada controller menyala. Kode Anda perlu menjalankan semua yang diperlukan untuk tampilan dan membangun nomor biner itu, kemudian mengirimkannya ke chip. Lebih mudah daripada kedengarannya. Secara teknis itu adalah sekelompok penambahan bitwise, tapi saya buruk dalam matematika bitwise jadi saya melakukan semuanya dalam desimal.
Desimal untuk 16 bit pertama adalah sebagai 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 berarti jika Anda ingin menyalakan output 2 dan 10, Anda menambahkan desimal (2 dan 512) bersama-sama untuk mendapatkan 514. Kirim 514 ke controller dan output 2 dan 10 akan menyala.
Tetapi kami memiliki lebih dari 16 LED sehingga sedikit lebih sulit. Kami perlu membuat informasi tampilan untuk 4 chip. Yang semudah membangunnya untuk 1, lakukan saja 3 kali. Saya menggunakan array variabel global untuk menyimpan kode kontrol. Lebih mudah seperti itu.
Setelah semua 4 kode tampilan siap dikirim, jatuhkan kaitnya (atur ke RENDAH) dan mulailah mengirim kode tersebut. Anda harus mengirim yang terakhir terlebih dahulu. Kirim kode untuk chip 4, lalu 3, lalu 2, lalu 1, lalu atur Latch ke HIGH lagi. Karena pin Aktifkan selalu terhubung ke ground, tampilan segera diubah.
Sebagian besar kode kubus yang pernah saya lihat di Instructables, dan web pada umumnya, terdiri dari satu set kode raksasa untuk melakukan animasi yang sudah ditentukan sebelumnya.Itu berfungsi dengan baik untuk kubus yang lebih kecil tetapi perlu menyimpan, membaca, dan mengirim 512 bit biner setiap kali Anda ingin mengubah tampilan membutuhkan banyak memori. Arduino tidak dapat menangani lebih dari beberapa bingkai. Jadi saya menulis beberapa fungsi sederhana untuk menunjukkan kubus dalam aksi yang mengandalkan perhitungan daripada animasi yang sudah ditentukan sebelumnya. Saya menyertakan animasi kecil untuk menunjukkan bagaimana hal itu dilakukan, tetapi saya akan menyerahkannya kepada Anda untuk membuat tampilan sendiri.
cube8x8x8.pde adalah kode Arduino. Saya berencana untuk terus menambahkan fungsi ke kode dan akan memperbarui program secara berkala.
matrix8x8.pde adalah program dalam Memproses untuk membangun tampilan Anda sendiri. Angka pertama yang diberikan masuk ke pattern1 , kedua ke pattern2 , dll.
Lembar data untuk A6276EA tersedia di:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Langkah 7: Tampilkan Karya Anda

Anda sudah selesai, sekarang saatnya untuk menikmati kubus Anda.


Seperti yang Anda lihat, kubus saya keluar sedikit bengkok. Saya tidak terlalu tertarik untuk membangun yang lain jadi saya akan hidup dengan itu menjadi bengkok. Saya memiliki beberapa titik mati yang perlu saya perhatikan. Mungkin koneksi yang buruk, atau saya mungkin memerlukan chip pengontrol baru.
Saya harap Instruksi ini menginspirasi Anda untuk membangun kubus Anda sendiri, atau proyek LED lainnya menggunakan A6276AE. Posting tautan di komentar jika Anda membangunnya.
Saya sudah mencoba memutuskan ke mana harus pergi dari sini. Papan pengontrol juga akan mengontrol kubus RGB 4x4x4, jadi itu kemungkinan. Saya pikir akan rapi untuk melakukan sphere dan cara saya menulis kode, tidak akan terlalu sulit untuk dilakukan.