Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Komponen dan Perlengkapan

Berikut adalah daftar komponen yang diperlukan untuk membangun kubus LED 5x5x5 ini:

Kawat tembaga digunakan untuk mengikat lapisan satu sama lain dan membawa katoda lapisan ke papan utama.

Alat dan Mesin yang Diperlukan

Aplikasi dan Layanan Online

Tentang Proyek

Pendahuluan

Sebagian besar orang menyukai kubus LED, tetapi yang besar, seperti 8x8x8, membutuhkan banyak pekerjaan baik dalam pembangunan maupun pemrograman. Kubus kecil (3x3x3 atau 4x4x4) mudah dibuat, tidak hanya karena tidak membutuhkan sejumlah besar LED, tetapi juga karena tidak memerlukan hardware eksternal seperti shift register dan driver sisi tinggi untuk mengelola kubus. Namun, kubus kecil tidak memberikan sensasi yang sama dengan kubus besar.

Tujuan saya sejak awal proyek ini adalah menciptakan kubus yang mudah dibuat dan kemudian membuat perangkat lunak yang cukup menarik sehingga dapat menikmati sensasi kubus besar tanpa semua kesibukan yang diperlukan untuk membangun satu. Inilah sebabnya kubus 5x5x5 ini dapat diberi daya langsung oleh Arduino Mega tanpa shift register atau hardware tambahan selain 5 transistor (digunakan untuk menarik seluruh lapisan – katoda dari 25 LED – ke ground). Mengapa saya ingin menghindari shift register? Karena mereka sangat sulit untuk dihubungkan secara manual. (Saya sudah mencobanya.) Anda benar-benar perlu merancang dan memproduksi papan PCB jika ingin menggunakannya.

Saya telah menulis banyak kode untuk kubus besar di masa lalu, jadi saya telah mengadaptasi banyak animasi kubus yang ada untuk berjalan pada kubus 5x5x5 ini.

Ini sebenarnya adalah proyek pertama dari tiga proyek serupa. Proyek kedua ada di sini. Ini adalah kubus RGB 5x5x5, desainnya sangat mirip dengan kubus ini, tetapi lebih sulit dibangun. Proyek ketiga ada di sini – kubus warna tunggal 8x8x8, lagi-lagi dengan hardware eksternal minimum.

CATATAN: Sebelum saya melanjutkan, saya bukan yang pertama menyarankan kubus 5x5x5 yang diberi daya dengan MEGA. MEGA DAS telah menerbitkan proyek serupa di sini pada 2017. Hardware di kedua proyek hampir identik. Saya belum melihat yang lebih awal sampai saya mulai menulis ini, jadi penomoran pin saya berbeda, dan nilai resistor berbeda, tetapi sebaliknya, hardware hampir identik. Saya menerbitkan ini terutama karena saya memiliki banyak pengalaman menulis perangkat lunak kubus. Saya berharap perangkat lunak saya akan meyakinkan beberapa orang untuk membangun kubus yang mungkin tidak akan melakukannya!

Video di atas adalah fungsi gelombang sinus di mana amplitudo ada pada sumbu z dan waktu direpresentasikan sebagai jarak horizontal dari pusat kubus. Ini adalah klasik yang luar biasa pada kubus besar, tetapi tidak terlalu buruk pada kubus 5x5x5 ini!

Saya menyertakan dua video lainnya. Keduanya tentang hal yang sama – 14 animasi untuk kubus 5x5x5. Saya tidak yakin mana yang lebih baik, jadi saya menyertakan keduanya. Dan jika tidak jelas, kubus terlihat jauh lebih keren secara langsung daripada dalam video!

Hardware

Mega memiliki banyak pin IO digital. Kita menggunakan 5 pin untuk menarik katoda setiap lapisan ke bawah (low), dan 25 lagi untuk mendorive anoda ke tinggi (high) untuk setiap 25 LED dalam sebuah lapisan. Dengan pendekatan ini, Mega sebenarnya memiliki cukup pin IO untuk membangun kubus 6x6x6. Pertimbangan lain, jika kita mencoba menjaga kesederhanaan, adalah daya. Batas arus Mega adalah 40 mA per pin, dan 200 mA total pada semua pin. LED biru memiliki tegangan drop sekitar 3 volt, transistor katoda umum kita menurunkan lagi 0,7 volt. Jadi dengan pasokan 5 volt dan resistor 180 ohm, setiap LED akan menguras 7,2 mA. 25 LED/lapisan menguras 180 mA jika semua menyala sekaligus. Kita hanya menyalakan satu lapisan pada satu waktu, jadi kita memenuhi semua batasan arus Mega, asalkan kita menggunakan transistor NPN untuk menarik semua katoda dalam lapisan ke ground. Arus basis pada salah satu transistor itu menambahkan 5 mA lagi ke total beban pada Mega, tetapi kita menjaga total di bawah 200 mA, sekitar 185 mA. Jadi, untuk semua alasan di atas, saya memilih resistor 180 ohm untuk dipasangkan dengan LED kita.

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Grafik di atas menunjukkan bagaimana pin digital Mega terhubung ke kubus. Pin 22 - 26 adalah 5 pin yang menggerakkan transistor yang menghubungkan katoda LED ke ground. Pin 27-51 melalui resistor 180 ohm ke anoda 25 LED dalam sebuah lapisan.

Anda mungkin bertanya-tanya mengapa susunan pin ini terlihat sedikit membingungkan. Perangkat lunak saya menggunakan akses port langsung daripada digitalWrites untuk mengonfigurasi anoda, yaitu untuk mengatur setiap 25 LED dalam lapisan menyala atau mati. Ini menghemat banyak waktu dan berarti LED menyala lebih lama daripada jika Anda menghabiskan banyak waktu melakukan digitalWrites. Jadi penomoran pin disusun dengan cara yang membantu mengorganisir referensi ke port digital ini daripada nomor pin aktual. Selengkapnya tentang semua itu ketika kita sampai pada perangkat lunak.

Konstruksi Kubus

Ada banyak pendapat tentang cara membangun kubus, terlepas dari ukurannya. Tugas ini melelahkan tidak peduli pendekatan Anda. Dan Anda harus menggunakan hati-hati dan kesabaran untuk mendapatkan hasil yang baik. Saya akan menunjukkan kepada Anda bagaimana saya membangun yang ini, tetapi ada instruksi lain online jika Anda lebih suka.

Pembangunan kubus ini dimulai dengan pembentukan kawat timah dan solder LED bersama-sama dalam kolom 5. Kemudian panel dibentuk dengan solder bersama 5 kolom, dan akhirnya kubus dibentuk dengan solder bersama 5 panel. Orang yang belum pernah membangun kubus sebelumnya tidak menyadari seberapa sulitnya untuk membangun kubus yang sempurna. Kesalahan kecil dalam sudut kawat timah segera menyumpat dan bahkan perbedaan kecil dalam jarak dengan mudah terlihat. Jadi langkah pembentukan kawat timah sangat penting. Jika Anda meluangkan waktu dan melakukannya dengan benar, Anda tidak akan mendapatkan kubus yang sempurna, tetapi Anda akan mendapatkan yang terlihat wajar.

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Anoda adalah kawat timah yang lebih panjang dari LED dan mereka pergi ke bawah, tetapi mereka perlu dibengkokkan ke sisi LED sehingga baris vertikal anoda LED dapat di-solder bersama-sama. Offset anoda dan kawat katoda harus membentuk sudut 90 derajat satu sama lain, seperti yang ditunjukkan dalam foto-foto ini.

Saya pribadi merasa pembentukan kawat timah sia-sia dan memberatkan tangan, jadi saya membentuk kawat timah 25 LED dan kemudian membangun sebuah panel. Anda akan memerlukan jenis cetakan (jig) baik untuk membuat kolom maupun panel. Saya melakukan pencetakan ini menggunakan BlueTack, perekat yang dapat digunakan kembali. LED dapat ditekan ke dalam BlueTack dan tetap pada tempatnya sementara kolom dan panel di-solder. Indentasi memungkinkan Anda untuk mengulang proses ini dengan jarak yang sama persis. Penting untuk mengukur semua dengan sangat hati-hati pada kali pertama. Saya menggunakan jarak 0,6 inci antara LED di ketiga arahnya, yang memungkinkan kubus jadi saya untuk dimasukkan ke dalam papan dengan lubang standar jarak 0,1 inci.

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega
Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Catatan tentang solder LED bersama-sama: Keesokan harinya para pembuat kubus adalah mendapatkan kubus yang sudah selesai dan kemudian menemukan sambungan solder dingin di dalam kubus tempat Anda tidak dapat mengaksesnya lagi! Hati-hati saat Anda melanjutkan untuk memastikan sambungan solder baik pada setiap kolom LED yang Anda buat.

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega
Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Setelah Anda selesai dengan setiap panel, saatnya untuk mengujinya. Lagi, kita melakukan ini karena menemukan sambungan solder dingin atau LED yang rusak ketika kubus Anda selesai akan menjadi bencana!

Dalam perangkat lunak, saya menyertakan sketsa kecil yang menguji panel. Untuk melakukan uji ini, Anda perlu menghubungkan 5 kawat anoda vertikal ke 5 resistor (330 ohm atau serupa) dan kemudian resistor tersebut ke pin 40-44 (pin anoda kolom 0). Kemudian hubungkan 5 pin katoda ke pin yang biasanya digunakan untuk menggerakkan katoda, pin 22-26. Panel yang bagus akan terlihat seperti video di atas. (Sebagai catatan samping, kita belum menggunakan transistor untuk menggerakkan katoda, jadi rutinitas pengujian kecil ini menggerakkan katoda ke bawah untuk menyala LED. Setelah transistor dipasang, kita akan melakukan kebalikannya, yaitu menggerakkan katoda ke tinggi untuk menyala transistor yang kemudian menarik katoda ke bawah.)

Ketika kita memiliki 5 panel yang dibangun dan diuji, kita siap untuk merakit kubus, tetapi terlebih dahulu, kita harus menyiapkan papan dengan memasukkan dan menghubungkan semua resistor dan transistor yang diperlukan.

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Saya meletakkan resistor 180 ohm tepat di sebelah setiap kolom anoda dan transistor katoda serta resistor basis mereka di ruang antara kubus dan Mega. Lagi, jarak antara kolom anoda adalah 0,6 inci di kedua arah, jadi 5 lubang kosong di papan antara setiap lubang dengan kolom anoda.

Sekarang adalah waktu yang baik untuk meletakkan Arduino pada papan. Ini dapat dipasang pada standoff jika Anda memilikinya. Saya sebenarnya hanya menggunakan sepotong plastik kecil dan sedikit perekat untuk menempelkan Mega saya sekitar 1/4 inci di atas papan.

Panel dipasang ke papan utama pada titik ini. Pastikan setiap kolom anoda benar-benar di lubang yang benar sebelum Anda solder, karena kesalahan satu lubang akan terlihat pada kubus jadi Anda. Dan pastikan untuk menjaga semua panel menghadap ke arah yang sama, yaitu semua kawat katoda keluar dari sisi yang sama.

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Selanjutnya kita perlu menghubungkan panel satu sama lain pada setiap lapisan, sehingga semua katoda dalam lapisan tertentu terhubung. Ini dicapai dengan sepotong kawat tembaga timah yang diluruskan menghubungkan lima garis katoda dalam lapisan bersama-sama.

Bangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Selanjutnya, kita siap untuk menghubungkan katoda setiap lapisan ke papan utama. Lingkaran dalam gambar di atas menunjukkan di mana katoda setiap lapisan terhubung dan dibawa ke bawah ke kolektor dari sebuah transistor. Lagi, kita menggunakan sepotong kawat tembaga timah yang diluruskan.

Setelah Anda menghubungkan semua kawat dari resistor ke Mega, kita akhirnya siap untuk menguji kubus yang selesai. Dalam perangkat lunak, saya telah menyediakan sketsa untuk menguji kubus. Ini akan menyala setiap LED dalam kubus secara urut. Karena Anda sudah menguji setiap panel, masalah apa pun yang Anda lihat pada titik ini kemungkinan besar melibatkan koneksi katoda baru. Jadi Anda mungkin menemukan satu lapisan yang tidak berfungsi atau bagian dari satu lapisan. Lagi, Anda kemungkinan besar akan memiliki sambungan solder dingin jika ada masalah.

Perangkat Lunak

Status setiap LED dalam kubus didefinisikan oleh array byte global 5x5x5 yang disebut cube[ ][ ][ ]. 1 menandakan LED menyala, 0 bahwa itu mati. Jadi semua animasi kubus dibuat dengan menempatkan 1 dan 0 di cube[ ][ ][ ].

Jantung perangkat lunak kubus apa pun adalah interupsi timed yang merefresh kubus. Rutinitas interupsi saya dimulai dalam setup() dan kemudian berada di akhir program. Ini dipanggil setiap 10 msec. dan membutuhkan sekitar 6 msec. untuk merefresh kubus. Itu meninggalkan 4 msec. antara setiap refresh untuk eksekusi hal-hal dalam loop utama.

Selama refresh, setiap lapisan menyala selama 1,2 msec. Refresh terjadi 100 kali per detik. Jadi setiap LED individu yang menyala menyala selama 120ms/detik atau siklus kerja 12%. 100 kali per detik cukup cepat untuk membuat mata manusia melihatnya sebagai menyala terus-menerus, dan siklus kerja 12% cukup untuk membuat LED menyala cukup terang, tidak sebanyak jika mereka menyala terus-menerus, tetapi surprisingly dekat dengan itu.

Untuk menjaga siklus refresh sempendek mungkin dan memaksimalkan waktu LED menyala, kita menghindari perintah digitalWrite yang membuang waktu dan menggunakan akses port langsung untuk mengonfigurasi pin. Jika Anda melihat kode dalam rutinitas interupsi, Anda akan melihat 25 baris terpisah di mana port langsung ini digunakan, yang tidak terlihat sangat indah, tetapi sebenarnya jauh, jauh lebih cepat daripada beberapa baris kode yang dapat digunakan untuk mengatur pin dengan digitalWrite.

loop() cukup memanggil setiap animasi, melalui daftar dan kemudian mulai dari awal. Setiap animasi ada dalam subroutine masing-masing. Beberapa rutinitas animasi memanggil rutinitas lain. Lihat kode itu sendiri untuk penjelasan tentang berbagai animasi. Ada juga beberapa rutinitas utilitas yang digunakan oleh semua animasi, seperti clearCube() yang mematikan semua LED, atau copyDown(); yang menggeser konten setiap lapisan ke lapisan di bawahnya, kemudian membersihkan lapisan teratas.

Ada tiga sketsa yang berbeda yang dapat Anda unduh. Utamanya berisi 15 animasi yang telah Anda lihat dalam video. Sketsa pengujian panel dan pengujian kubus hanya digunakan untuk menguji kubus Anda selama konstruksi.

Kode

5x5x5 Cube SoftwareArduino

Berisi 3 sketsa: Panel Test, Cube Test, dan The Show dengan semua 15 animasi.

Tidak ada pratinjau (hanya unduhan).

Bagian Kustom dan Enclosure

Sangat opsional, tetapi jika Anda memiliki akses ke printer 3D dan ingin kotak yang Anda lihat dalam video saya, di sini adalah:

Skematik

Skematik dasarBangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega Menampilkan koneksi yang tepat antara kubus dan MegaBangun Kubus LED 5x5x5 yang Memukau dengan Arduino Mega

Proses manufaktur

  1. Manufaktur Papan Setrika: Desain, Bahan, dan Proses Produksi
  2. Kubus Rubik: Dari Penemuan hingga Puzzle Modern
  3. Papan Sirkuit Cetak: Desain, Manufaktur, dan Tren Masa Depan
  4. Konstruksi dan Desain Surfboard: Dari Akar Polynesia hingga Inovasi Modern
  5. Diod Pemancar Cahaya (LED): Dari Awal Muncul hingga Umur Pakai 100 Tahun
  6. Papan RasPiRobot Board V2: Perluas Raspberry Pi Anda menjadi Pengontrol Robot Canggih
  7. Jam Kata Arduino DIY – Buat Tampilan Waktu Real-Time yang Elegan
  8. Proyek Melodi Arduino Coffin Dance – Buat dan Mainkan Lagu Viral
  9. Tingkatkan Rumah Anda: Papan Sakir Pintar dengan Pemantauan Suhu
  10. Kontrol LED melalui Bluetooth dengan Arduino – Panduan DIY Sederhana