C. Multiplexing
Multiplexing adlaah suatu teknik yang digunakan untuk menyalakan LED-
LED dalam suatu baris saja untuk setiap waktu. Hal ini diperlukan teknik
karena penyalaan pada dua LED di Matriks LED menimbulkan problem. Untuk
memahami multiplexing, perhatikan Gambar 1.4 di bawah ini yang menyatakan
huruf S dan penerapan multiplexing.
Sketch : huruf
// ---------------
// Contoh untuk menampilkan huruf R
// di Matriks LED
// menggunakan multiplexing
// ---------------
#include<Timerone.h>
// Baris-> 1, 2, 3, 4, 5, 6, 7, 8
const int BARIS[] = {-1, 6, 7, 8, 9, 10, 11, 12, 13}
// Kolom-> 1, 2, 3, 4, 5, 6, 7, 8
Const int KOLOM[] = {-1, 14, 15, 16, 17, 2, 3, 4, 5}
Byte HURUF[]=
{
B00111110,// Baris 1
B00110010,// Baris 2
B00110010,// Baris 3
B01111110,// Baris 4
B01101000,// Baris 5
B01101000,// Baris 6
B01100110,// Baris 7
B00000000,// Baris 8
};
int barisSebelum =8;
Void setup()
{
for (int indeks =1; indeks <= 8; indeks++)
{
pinMode (BARIS[indeks], OUTPUT);
pinMode (KOLOM[indeks], OUTPUT);
pinMode (BARIS[indeks], LOW);
pinMode (KOLOM[indeks], HIGH);
// Atur timer
Timer1.initialize(1000);
// Pasang fungsi yang akan dijalankan
Timer1.attachInterrupt(tampilkanHuruf);
void loop()
{
}
void tampilkanHuruf()
{
byte barisSekarang;
if (barisSebelum==8)
barisSekarang=1;
else
barisSekarang = barisSebelum +1;
// Matikan baris sebelumnya
digitalWrite (BARIS[barisSebelum],LOW);
for (byte k=1;k<=8;k++)
digitalWrite (KOLOM[k],HIGH);
//Tampilkan baris sekarang
for (byte k=1;k<=8;k++)
{
If (bitRead(HURUF[barisSekarang – 1], 8-k) == HIGH)
digitalWrite (KOLOM[k],LOW);
digitalWrite (BARIS[barisSekarang],HIGH);
}
// Update barisSebelum
barisSebelum = barisSekarang;
}
#include “LedContzrol.h”
1. Sambungkan pin CLK (Clock), DIN (Data In), dan LOAD/CS (Load/Chip
Select) pada setiap modul MAX72XX secara seri atau berantai. Artinya, pin
CLK pada modul pertama dihubungkan ke pin CLK pada modul kedua, dan
seterusnya. Sama halnya, pin DIN pada modul pertama dihubungkan ke pin
DIN pada modul kedua, dan seterusnya. Terakhir, hubungkan pin LOAD/CS
pada modul pertama ke mikrokontroler, dan kemudian pin LOAD/CS pada
modul pertama dihubungkan ke pin LOAD/CS pada modul kedua, dan
seterusnya.
2. Pastikan setiap modul MAX72XX memiliki alamat yang berbeda dengan
menggunakan jumper atau mengatur pin address pada modul tersebut.
Dalam kasus MAX7219, Anda dapat mengatur alamat menggunakan pin A,
B, dan C pada modul. Jika Anda menggunakan MAX7221, Anda dapat
mengatur alamat menggunakan pin CS (Chip Select).
3. Inisialisasi dan kontrol setiap modul secara terpisah dalam kode program
Anda. Anda harus mengirimkan perintah dan data yang sesuai ke setiap
modul sesuai dengan alamatnya. Misalnya, jika Anda memiliki tiga modul
MAX7219 yang dihubungkan secara berantai dan diatur dengan alamat 0, 1,
dan 2, Anda harus mengirimkan perintah dan data ke modul dengan alamat
yang sesuai saat mengendalikan tampilan dan fungsionalitasnya.