Dalam tutorial ini kita akan merancang Paparan Skrin Matriks 8x8 LED menggunakan Arduino Uno, yang akan menunjukkan huruf bergulir.
Matriks 8x8 LED mengandungi 64 LED (Light Emitting Diodes) yang disusun dalam bentuk matriks, oleh itu namanya adalah LED matriks. Kami akan membuat Matriks ini dengan menyisipkan 64 LED ini ke papan wap atau DOT PCB. LED boleh mempunyai warna apa pun, pilih yang tersedia dengan anda. Kemudian kami akan menulis program untuk Arduino untuk mengawal matriks 64 LED ini. UNO, menurut program, memberi kuasa LED yang sesuai untuk menunjukkan watak secara bergulir.
Komponen yang Diperlukan:
- Arduino Uno
- 64 LED
- Perfboard dengan alat pematerian lain
- Perintang 1KΩ (8 keping)
- Bekalan Kuasa (5v)
Litar dan Penjelasan Kerja:
Terdapat 64 LED yang disusun dalam bentuk matriks. Oleh itu, kita mempunyai 8 lajur dan 8 baris. Di sepanjang baris dan lajur tersebut, semua terminal positif berturut-turut digabungkan. Untuk setiap baris, terdapat satu Terminal Positif Umum untuk semua 8 LED di baris itu. Ia ditunjukkan dalam gambar di bawah,
Jadi untuk 8 baris, kami mempunyai 8 terminal positif biasa. Pertimbangkan baris pertama, seperti yang terlihat pada gambar, 8 LED dari D57 hingga D64 mempunyai terminal positif yang sama dan dilambangkan dengan 'POSITIVE0'. Sekarang jika kita mahukan satu atau semua LED bersinar dalam ROW matriks pertama, maka kita harus menghidupkan PIN0 Matriks LED. Begitu juga jika kita ingin menyalakan LED (atau semua) dalam ROW mana pun, kita perlu menghidupkan Pin Terminal Positif Biasa yang sama pada Baris masing-masing.
Ini belum selesai dan membiarkan MATRIK ROWS dengan bekalan positif tidak akan menghasilkan apa-apa. Kita perlu meletakkan negatif LED untuk menyalakannya. Oleh itu, dalam matriks LED 8x8, semua terminal negatif LED di lajur mana-mana digabungkan untuk membentuk lapan Terminal Negatif Biasa, seperti semua terminal negatif di lajur pertama dihubungkan bersama ke PIN-A1 (NEGATIF7). Ini ditunjukkan dalam rajah di bawah:
Seseorang harus memperhatikan pin ini sambil menyolder LED di Perfboard.
Sekarang jika kita perlu membumikan LED di lajur pertama, maka kita akan membumikan PIN-A1 (NEGATIF7) MATRIK, dan akan meletakkan semua LED pada lajur pertama. Proses yang sama berlaku untuk tujuh lajur negatif biasa yang lain.
Sejak sekarang anda tahu bagaimana Positif Biasa dan Negatif Biasa berfungsi. Mari kita satukan untuk melihat bagaimana mereka bekerjasama dan paparan Circuit for Scrolling 8x8 LED Matrix terakhir akan kelihatan seperti ini:
Memandu Matriks 8x8 LED menggunakan Multiplexing:
Sekarang katakan kita mahu menghidupkan LED57 maka kita perlu menghidupkan PIN0 UNO dan membumikan PIN-8 UNO. Sekarang untuk menghidupkan LED57 dan LED50, kita perlu menghidupkan PIN0, PIN1 dan membumikan PIN8, PIN9. Tetapi melakukannya tidak hanya akan menghidupkan D57, D50 tetapi juga D49, D58. Untuk mengelakkannya kita menggunakan teknik yang disebut Multiplexing. Kami telah membincangkan Teknik Multipleks ini dalam Matriks LED 8x8 secara terperinci; baca artikel itu untuk penjelasan terperinci. Di sini kita menerangkan Multiplexing secara ringkas.
Mata manusia tidak dapat menangkap frekuensi melebihi 30 HZ. Iaitu jika LED menyala dan mati terus pada kadar 30HZ atau lebih. Mata melihat LED terus menyala. Walau bagaimanapun, ini tidak berlaku dan LED sebenarnya akan sentiasa hidup dan mati Teknik ini dipanggil Multiplexing.
Katakan sebagai contoh, kita hanya mahu menghidupkan LED57 dan LED50 tanpa menghidupkan D49 dan D58. Caranya, kita akan memberi kuasa pertama ke baris pertama untuk menghidupkan LED57 dan menunggu 1mSEC, dan kemudian kita akan mematikannya. Kemudian kami akan memberi kuasa ke baris kedua untuk menghidupkan LED50 dan menunggu 1mSEC kemudian akan mematikannya. Kitaran ini berterusan secara berterusan dengan frekuensi tinggi dan LED57 & LED50 akan Hidup dan Mati dengan pantas dan kedua-dua LED akan terus menyala ke mata kita. Bermakna kita hanya memberikan kekuatan pada satu baris pada satu masa, menghilangkan kemungkinan menyalakan LED lain di baris lain. Kami akan menggunakan teknik ini untuk menunjukkan semua watak.
Terdapat juga perpustakaan yang disebut LedControlMS.h untuk mengurus semua kerumitan multiplexing ini, di mana anda hanya perlu memasukkan watak atau nombor yang anda mahu cetak pada matriks LED, periksa matrik LED Arduino ini dengan projek MAX7219 untuk maklumat lebih terperinci.
Penjelasan Pengaturcaraan:
Dalam Kod kami, kami telah menulis nilai perpuluhan untuk setiap watak dan memprogramkan nilai-nilai ini ke dalam Arduino. Program ini ditulis untuk mengalihkan nilai-nilai ini ke baris berikutnya untuk setiap 0.2 saat, ini akan dilihat sebagai tatal watak ke atas, sangat mudah.
Untuk menukar watak yang akan ditampilkan, ganti saja nilai dalam array ALPHA char mengikut nilai watak 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 memaparkan DAD pada LED Matrix maka ganti dulu nilai-nilai Characters dalam array ALPHA char dengan meletakkan nilai untuk watak D, A dan D dari senarai 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};
Jumlah nilai kini 5 * 10 = 50 nilai, jadi
Ganti, untuk (int x = 0; x <142; x ++) // 150-8 (untuk menghentikan limpahan) {…….. Dengan, untuk (int x = 0; x <42; x ++) // 50-8 (untuk menghentikan limpahan) {……..
Jadi anda hanya perlu menukar nombor.
Dengan ini, anda telah melakukan pengaturcaraan dan sekarang anda boleh Tatal teks mana pun pada Matriks LED 8x8, periksa kod Penuh di bawah dengan Video demonstrasi.