A. TUJUAN
1. Membuat aplikasi system tampilan karakter yang berupa LED Dot Matrix dengan
menggunakan mikrokontroler Arduino.
2. Membuat program untuk menampilkan karakter pada media LED Dot Matrix.
B. DASAR TEORI
Display dot matrik adalah beberapa LED yang disusun membentuk matriks baris dan kolom
yang bervariasi sesuai dengan tipenya. Tipe display dot matrix bermacam-macam, salah satunya
ialah tipe 5x7 atau 8x8, berupa modul jadi atau dibuat sendiri dengan menyusun beberapa LED.
Ukurannya ada yang besar, sedang maupun yang kecil.
Untuk menampilkan (display) dari sebuah program yang dikirim secara paralel.
Misalnya, 8 × 8 matriks LED Anoda bersama-sama dalam baris (R1 - R8), dan katoda
dalam kolom (C1 - C8), jumlah yang diperlukan pin I/O=16.
IC driver : UDN2981A dan ULN2803A
1. UDN2981A : driver ke transistor sekaligus mengatur anoda LED.
2. ULN2803A : driver ke transistor sekaligus mengatur katoda LED.
Contoh rangkaian interface menggunakan driver UDN2981A dan ULN2803A adalah sebagai
berikut .
Gambar 4. Rangkaian interface menggunakan IC driver
(Silahkan Anda ketikkan tambahkan sendiri, jika ada, dasar teori yang berisi tentang
pengertian, cara kerja, dan fungsi dari Komunikasi Serial)
……………………………………………………………………………………………………
……………………………………………………………………………………………………
C. HARDWARE
1. Arduino Uno
2. Breadboard
3. Kabel Jumper
4. LED Dot Matrix
5. Potensiometer 10k Ohm
6. Kabel Data USB
E. LANGKAH PERCOBAAN
1. Buka dan buat project di Proteus.
2. Rangkailah project simulasi Arduino untuk Komunikasi Serial.
3. Buka Visual Studio Code / Arduino IDE / Arduino Genuino.
4. Buat programnya dan jalankan, pastikan tidak ada error.
F. PROGRAM
1. Percobaan 1, menampilkan huruf K di Tinkercad.
➢ Hasil
- Program
void setup()
{
//program baris
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
//program kolom
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
//huruf K
//Langkah 1
// baris
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(5);
//Langkah 2
// baris
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(5);
//Langkah 3
// baris
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 0);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(5);
//Langkah 4
// baris
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 0);
digitalWrite(13, 1);
delay(5);
//Langkah 5
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 0);
delay(5);
}
- Tinkercad
• OFF
• ON
2. Percobaan 2 menampilkan huruf K di Proteus.
➢ Hasil
- Program
void setup()
{
//program baris
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
//program kolom
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
//huruf K
//Langkah 1
// baris
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(40);
//Langkah 2
// baris
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(40);
//Langkah 3
// baris
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 0);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(40);
//Langkah 4
// baris
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 0);
digitalWrite(13, 1);
delay(40);
//Langkah 5
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 0);
delay(40);
}
- Proteus
➢ Keterangan
Kita dapat membentuk huruf K. Tetapi karena perhitungan delay yang tidak selalu benar,
membuat lampu tidak bisa menyala secara bersamaan.
3. Percobaan 3, menampilkan huruf A di Proteus.
➢ Hasil
- Program
void setup()
{
//program baris
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
//program kolom
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop()
{
//huruf K
//Langkah 1
// baris
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(20);
//Langkah 2
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(20);
//Langkah 3
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 0);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(20);
//Langkah 4
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 0);
digitalWrite(13, 1);
delay(20);
//Langkah 5
// baris
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 0);
delay(20);
}
- Proteus
void loop()
{
//huruf K
//Langkah 1
// baris
digitalWrite(2, 1);
digitalWrite(3, 1);
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 0);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(20);
//Langkah 2
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 0);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(20);
//Langkah 3
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 0);
digitalWrite(12, 1);
digitalWrite(13, 1);
delay(20);
//Langkah 4
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 0);
digitalWrite(13, 1);
delay(20);
//Langkah 5
// baris
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
//kolom
digitalWrite(9, 1);
digitalWrite(10, 1);
digitalWrite(11, 1);
digitalWrite(12, 1);
digitalWrite(13, 0);
delay(20);
}
- Proteus
5. Percobaan 5, buatlah program untuk menampilkan karakter pada display LED Dot Matriks
menggunakan IC Driver (contohnya: menggunakan IC MAX 7219).
6. Percobaan 6, menampilkan Nama/NIM Anda dengan metode scanning/text running di
Proteus.
Tugas tambahan mencoba program berikut.
G. ANALISIS HASIL PERCOBAAN
(Silahkan Anda tulis ulang program (source code/script) Anda disini dan menambahkan gambar
hasil rangkaian percobaan simulasi pada Proteus/Tinkercad, buatlah analisis pengamatan yang
Anda alami selama melakukan percobaan)
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
H. KESIMPULAN
Setelah melakukan percobaan di atas, buatlah kesimpulan pengamatan yang Anda alami selama
melakukan percobaan)
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………