Kami telah membuat serangkaian Tutorial Raspberry Pi, di mana kami telah membahas Antarmuka Raspberry Pi dengan semua komponen dasar seperti LED, LCD, tombol, motor DC, Motor Servo, Motor Stepper, ADC, shift Register, dll. Kami juga memiliki menerbitkan beberapa proyek Raspberry Pi sederhana untuk pemula, bersama dengan beberapa proyek IoT yang bagus. Hari ini, sebagai kelanjutan dari tutorial ini, kita akan mengontrol Modul Matriks LED 8x8 oleh Raspberry Pi. Kami akan menulis program python untuk menampilkan karakter pada modul matriks.
Periksa juga Interfacing 8x8 LED Matrix dengan Arduino dan LED Matrix dengan AVR Microcontorller.
Komponen yang Dibutuhkan:
Di sini kami menggunakan Raspberry Pi 2 Model B dengan Raspbian Jessie OS. Semua persyaratan Perangkat Keras dan Perangkat Lunak dasar telah dibahas sebelumnya, Anda dapat mencarinya di Pengenalan Raspberry Pi dan LED Berkedip Raspberry PI untuk memulai, selain yang kami butuhkan:
- Papan Raspberry Pi
- Catu daya (5v)
- Kapasitor 1000uF (terhubung melintasi catu daya)
- Resistor 1KΩ (8 buah)
Modul Matriks LED 8x8:
Sebuah modul matriks LED 8 * 8 berisi 64 LED (Light Emitting Diodes) yang disusun dalam bentuk matriks, maka dinamakan matriks LED. Modul ringkas ini tersedia dalam berbagai ukuran dan warna. Seseorang dapat memilihnya berdasarkan kenyamanan. Konfigurasi PIN modul seperti yang ditunjukkan pada gambar. Perlu diingat bahwa pinout modul tidak berurutan sehingga PIN harus diberi nomor persis seperti yang ditunjukkan pada gambar untuk menghindari kesalahan.
Ada 8 + 8 = 16 terminal umum dalam modul Matriks LED. Di atasnya, kami memiliki 8 terminal positif umum dan 8 terminal negatif umum, dalam bentuk 8 baris dan 8 kolom, untuk menghubungkan 64 LED dalam bentuk matriks. Jika modul akan digambar dalam bentuk diagram rangkaian maka kita akan mendapatkan gambar seperti dibawah ini:
Jadi untuk 8 baris, kami memiliki 8 Terminal Positif Umum (9, 14, 8, 12, 17, 2, 5). Pertimbangkan baris pertama, LED dari D1 ke D8 memiliki terminal positif yang sama dan pin dikeluarkan pada PIN9 modul LED Matrix. Saat kita ingin satu atau semua LED di BARIS menjadi ON, Pin yang sesuai dari LED MODULE harus diberi daya dengan + 3.3v.
Mirip dengan terminal positif umum, kami memiliki 8 Terminal Negatif Umum sebagai kolom (13, 3, 4, 10, 6, 11, 15, 16). Untuk membumikan LED apa pun di kolom mana pun, terminal negatif umum masing-masing harus diarde.
Penjelasan Sirkuit:
Hubungan yang dilakukan antara Raspberry Pi dan modul matriks LED ditunjukkan pada tabel di bawah ini.
Pin Modul Matriks LED no. |
Fungsi |
Raspberry Pi GPIO Pin No. |
13 |
POSITIF0 |
GPIO12 |
3 |
POSITIF 1 |
GPIO22 |
4 |
POSITIF2 |
GPIO27 |
10 |
POSITIF3 |
GPIO25 |
6 |
POSITIF4 |
GPIO17 |
11 |
POSITIF 5 |
GPIO24 |
15 |
POSITIF6 |
GPIO23 |
16 |
POSITIF7 |
GPIO18 |
9 |
NEGATIF0 |
GPIO21 |
14 |
NEGATIF 1 |
GPIO20 |
8 |
NEGATIF2 |
GPIO26 |
12 |
NEGATIF3 |
GPIO16 |
1 |
NEGATIF 4 |
GPIO19 |
7 |
NEGATIFE5 |
GPIO13 |
2 |
NEGATIF6 |
GPIO6 |
5 |
NEGATIF7 |
GPIO5 |
Berikut adalah diagram rangkaian Final untuk Interfacing 8x8 LED Matrix dengan Raspberry Pi:
Penjelasan Kerja:
Di sini kita akan menggunakan Teknik Multiplexing untuk menampilkan karakter pada Modul Matriks LED 8x8. Jadi mari kita bahas tentang multiplexing ini secara detail. Katakanlah jika kita ingin menyalakan LED D10 dalam matriks, kita perlu memberi daya pada modul PIN14 dan membumikan PIN3 modul. Dengan LED D10 ini akan menyala seperti yang ditunjukkan pada gambar di bawah ini. Ini juga harus diperiksa terlebih dahulu untuk MATRIX untuk mengetahui semuanya beres.
Sekarang, katakanlah jika kita ingin menghidupkan D1, kita perlu memberi daya PIN9 matriks dan membumikan PIN13. Dengan itu LED D1 akan menyala. Arah arus dalam hal ini ditunjukkan pada gambar di bawah ini.
Sekarang untuk bagian yang sulit, pertimbangkan kita ingin menyalakan D1 dan D10 pada saat yang bersamaan. Jadi kita harus memberi daya pada PIN9, PIN14 dan membumikan keduanya PIN13, PIN3. Ini akan menyalakan LED D1 dan D10, tetapi bersamaan dengan itu juga akan menyalakan LED D2 dan D9. Itu karena mereka berbagi terminal yang sama. Jadi jika kita ingin menyalakan LED sepanjang diagonal, kita akan dipaksa untuk menyalakan semua LED di sepanjang jalan. Ini ditunjukkan pada gambar di bawah ini:
Untuk menghindari masalah ini, kami menggunakan teknik yang disebut Multiplexing. Kami juga telah membahas Teknik Multiplexing ini sambil menghubungkan Matriks LED 8x8 dengan AVR, di sini kami menjelaskan lagi. Teknik multiplexing yang sama juga digunakan pada Scrolling Text pada matriks LED 8x8 dengan Arduino dan dengan mikrokontroler AVR.
Mata manusia tidak dapat menangkap frekuensi lebih dari 30 HZ. Itu jika LED menyala dan mati 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 LED D1 dan LED D10 tanpa menyalakan D2 dan D9. Triknya adalah, pertama-tama kita akan memberikan daya ke hanya LED D1 menggunakan PIN 9 & 13 dan menunggu 1mSEC, kemudian kami akan mematikannya. Kemudian kami akan memberikan daya ke LED D10 menggunakan PIN 14 & 3 dan menunggu 1mSEC kemudian akan mematikannya. Siklus berjalan terus menerus dengan frekuensi tinggi dan D1 & D10 akan On dan Off dengan cepat dan kedua LED akan tampak menyala terus menerus di mata kita. Berarti kami hanya memberikan daya ke satu baris (LED) pada satu waktu, menghilangkan kemungkinan menyalakan LED lain di baris lain. Kami akan menggunakan teknik ini untuk menampilkan semua karakter.
Kita dapat memahaminya lebih jauh dengan satu contoh, seperti jika kita ingin menampilkan “A” pada matriks, seperti yang ditunjukkan di bawah ini:
Seperti yang diceritakan, kami akan MENGAKTIFKAN satu baris dalam sekejap, Pada t = 0m SEC, PIN09 disetel TINGGI (saat ini pin BARIS lain RENDAH), saat ini PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 diarde (pin KOLOM lain TINGGI saat ini)
Pada t = 1m SEC, PIN14 disetel TINGGI (saat ini pin BARIS lain RENDAH), saat ini PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 diarde (pin KOLOM lainnya TINGGI saat ini)
Pada t = 2m SEC, PIN08 disetel TINGGI (saat ini pin BARIS lain RENDAH), PIN13, PIN3, PIN15, PIN16 diarde (pin KOLOM lain TINGGI saat ini)
Pada t = 3m SEC, PIN12 disetel TINGGI (saat ini pin BARIS lain RENDAH), PIN13, PIN3, PIN15, PIN16 diarde (pin KOLOM lain TINGGI saat ini)
Pada t = 4m SEC, PIN01 disetel TINGGI (saat ini pin BARIS lain RENDAH), saat ini PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 diarde (pin KOLOM lainnya TINGGI saat ini)
Pada t = 5m SEC, PIN07 disetel TINGGI (saat ini pin BARIS lain RENDAH), saat ini PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 diarde (pin KOLOM lain TINGGI saat ini)
Pada t = 6m SEC, PIN02 disetel TINGGI (saat ini pin BARIS lainnya RENDAH), PIN13, PIN3, PIN15, PIN16 diarde (pin KOLOM lain TINGGI saat ini)
Pada t = 7m SEC, PIN05 disetel TINGGI (saat ini pin BARIS lain RENDAH), PIN13, PIN3, PIN15, PIN16 diarde (pin KOLOM lain TINGGI saat ini)
Pada kecepatan ini, tampilan akan terlihat terus menunjukkan karakter "A" seperti yang ditunjukkan pada gambar.
The Program Python untuk menampilkan Karakter LED Matrix menggunakan Raspberry Pi diberikan di bawah ini. Program dijelaskan dengan baik oleh komentar. Nilai Port untuk setiap karakter diberikan dalam program. Anda dapat menampilkan karakter apa pun yang Anda inginkan dengan hanya mengubah nilai 'pinp' di 'for loops' dalam program yang diberikan. Cek juga Video Demo di bawah ini.