Dalam tutorial ini kita akan mendesain Tampilan Scrolling Matriks 8x8 LED menggunakan Arduino Uno, yang akan menampilkan alfabet bergulir.
Matriks LED 8x8 ini berisi 64 buah LED (Light Emitting Diodes) yang disusun dalam bentuk matriks, maka dinamakan matriks LED. Kami akan membuat Matriks ini dengan menyolder 64 LED ini ke perfboard atau DOT PCB. LED bisa dari warna apa saja, pilih yang tersedia dengan Anda. Kemudian kami akan menulis program untuk Arduino untuk mengontrol matriks 64 LED ini. UNO, menurut program, memberi daya pada LED yang sesuai untuk menampilkan karakter dalam mode bergulir.
Komponen yang Dibutuhkan:
- Arduino Uno
- 64 LED
- Perfboard dengan alat solder lainnya
- Resistor 1KΩ (8 buah)
- Catu Daya (5v)
Sirkuit dan Penjelasan Kerja:
Ada 64 LED yang disusun dalam bentuk matriks. Jadi kami memiliki 8 kolom dan 8 baris. Di atas baris dan kolom tersebut, semua terminal positif dalam satu baris disatukan. Untuk setiap baris, ada satu Terminal Positif Umum untuk semua 8 LED di baris itu. Itu ditunjukkan pada gambar di bawah ini,
Jadi untuk 8 baris kami memiliki 8 terminal positif yang sama. Perhatikan baris pertama, seperti yang terlihat pada gambar, 8 LED dari D57 ke D64 memiliki terminal positif yang sama dan dilambangkan dengan 'POSITIVE0'. Sekarang jika kita ingin menyalakan satu atau semua LED di ROW matriks pertama, maka kita harus menyalakan PIN0 dari LED Matrix. Demikian juga jika kita ingin menyalakan LED (atau semua) di BARIS mana pun, kita perlu menyalakan Pin Terminal Positif Umum yang sesuai dari Baris tersebut.
Ini belum berakhir dan meninggalkan MATRIX ROWS dengan suplai positif tidak akan menghasilkan apa-apa. Kita perlu membumikan negatif LED agar menyala. Jadi dalam matriks LED 8x8, semua terminal negatif dari LED di kolom manapun disatukan untuk membentuk delapan Terminal Negatif Umum, seperti semua terminal negatif di kolom pertama dihubungkan bersama ke PIN-A1 (NEGATIVE7). Ini ditunjukkan pada gambar di bawah ini:
Seseorang harus memperhatikan pin ini saat menyolder LED di Perfboard.
Sekarang jika kita perlu membumikan LED apa pun di kolom pertama maka kita akan membumikan PIN-A1 (NEGATIVE7) dari MATRIX, dan itu akan membumikan semua LED di kolom pertama. Proses yang sama berlaku untuk ketujuh kolom negatif umum lainnya.
Sejak sekarang Anda tahu cara kerja Common Positive dan Common Negative. Mari kita satukan untuk melihat bagaimana mereka bekerja bersama dan Sirkuit terakhir untuk tampilan Matriks LED 8x8 Bergulir akan terlihat seperti ini:
Mengemudi 8x8 LED Matrix menggunakan Multiplexing:
Sekarang katakanlah kita ingin menyalakan LED57 maka kita perlu memberi daya PIN0 dari UNO dan membumikan PIN-8 dari UNO. Sekarang untuk menyalakan LED57 dan LED50, kita perlu menyalakan PIN0, PIN1 dan membumikan PIN8, PIN9. Namun melakukan hal tersebut tidak hanya akan menghidupkan D57, D50, tetapi juga D49, D58. Untuk menghindarinya kita menggunakan teknik yang disebut Multiplexing. Kita telah membahas Teknik Multipleks ini dalam Matriks LED 8x8 secara rinci; baca artikel itu untuk penjelasan rinci. Di sini kami menjelaskan Multiplexing secara singkat.
Mata manusia tidak dapat menangkap frekuensi lebih dari 30 HZ. Itu jika sebuah LED menyala dan mati secara terus menerus pada kecepatan 30Hz atau lebih. Mata melihat LED menyala terus menerus. Namun hal ini tidak terjadi dan LED akan benar-benar HIDUP dan MATI terus menerus. Teknik ini disebut Multiplexing.
Katakanlah misalnya, kita hanya ingin menyalakan LED57 dan LED50 tanpa menyalakan D49 dan D58. Triknya adalah, pertama-tama kita akan memberikan daya ke baris pertama untuk menyalakan LED57 dan menunggu selama 1mSEC, kemudian kita akan mematikannya. Kemudian kami akan memberikan daya ke baris kedua untuk menyalakan LED50 dan menunggu 1mSEC kemudian akan mematikannya. Siklus berjalan terus menerus dengan frekuensi tinggi dan LED57 & LED50 akan menyala dan mati dengan cepat dan kedua LED akan tampak menyala terus menerus di mata kita. Berarti kami hanya memberikan daya ke satu baris pada satu waktu, menghilangkan kemungkinan menyalakan LED lain di baris lain. Kami akan menggunakan teknik ini untuk menampilkan semua karakter.
Ada juga library bernama LedControlMS.h untuk menangani semua kerumitan multiplexing ini, dimana Anda hanya perlu memasukkan karakter atau angka yang ingin Anda cetak pada matriks LED, periksa matriks LED Arduino ini dengan proyek MAX7219 untuk lebih jelasnya.
Penjelasan Pemrograman:
Dalam Kode kami, kami telah menulis nilai desimal untuk setiap karakter dan memprogram nilai-nilai ini ke dalam Arduino. Program telah menulis untuk menggeser nilai-nilai ini ke baris berikutnya untuk setiap 0,2 detik, ini akan terlihat sebagai pengguliran karakter ke atas, ini sangat sederhana.
Untuk mengubah karakter yang akan ditampilkan, cukup ganti nilai di char ALPHA array sesuai dengan nilai karakter yang diberikan di bawah ini, 24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
Seperti jika Anda ingin menampilkan DAD pada Matriks LED, maka pertama-tama ganti nilai Karakter pada larik char ALPHA dengan meletakkan nilai untuk karakter D, A dan D dari daftar di atas:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
Nilai total sekarang 5 * 10 = 50 nilai, jadi
Ganti, untuk (int x = 0; x <142; x ++) // 150-8 (untuk menghentikan luapan) {…….. Dengan, untuk (int x = 0; x <42; x ++) // 50-8 (untuk menghentikan luapan) {……..
Jadi, Anda hanya perlu mengganti nomornya.
Dengan ini Anda telah menyelesaikan pemrograman dan sekarang Anda dapat Menggulir teks apa pun pada Matriks LED 8x8, periksa kode Lengkap di bawah ini dengan Video demonstrasi.