Dot Matriks Untuk Menampilkan Emoji Wajah
#include
"LedControl.h" #include "binary.h"
LedControl
lc=LedControl(11,10,13,1); unsigned long delaytime =100;
// happy face
byte hf[8]={B00111100,B01000010,
B10100101,B10000001,B10100101,B10011001, B01000010,B00111100};
// neutral
face
byte
nf[8]={B00111100,B01000010,B10100101,B10000001,B10111101,B10000001, B01000010,B00111100};
//sad face
byte sf[8]={B00111100,B01000010,B10100101,B10000001,B10011001,B10100101, B01000010,B00111100};
void drawFaces(){
//Display sad face lc.setRow(0,0,sf[0]);
lc.setRow(0,1,sf[1]);
lc.setRow(0,2,sf[2]);
lc.setRow(0,3,sf[3]);
lc.setRow(0,4,sf[4]);
lc.setRow(0,5,sf[5]);
lc.setRow(0,6,sf[6]);
//Display neutral face lc.setRow(0,0,nf[0]);
lc.setRow(0,1,nf[1]);
lc.setRow(0,2,nf[2]);
lc.setRow(0,3,nf[3]);
lc.setRow(0,4,nf[4]);
lc.setRow(0,5,nf[5]);
lc.setRow(0,6,nf[6]);
lc.setRow(0,7,nf[7]); delay(delaytime);
//Display happy face lc.setRow(0,0,hf[0]);
lc.setRow(0,1,hf[1]);
lc.setRow(0,2,hf[2]);
lc.setRow(0,3,hf[3]);
lc.setRow(0,4,hf[4]);
lc.setRow(0,5,hf[5]);
lc.setRow(0,6,hf[6]);
lc.setRow(0,7,hf[7]); delay(delaytime);
}
void setup(){
lc.shutdown(0,false); lc.setIntensity(0,8); lc.clearDisplay(0);
}
void loop(){ drawFaces();
Pembahasan Program :
Program |
Definisi |
#include
"LedControl.h" #include "binary.h" |
Berfungsi sebagai Headerfile, dimana untuk mengaktifkan fungsi pustaka yang
digunakan pada lledcontrol dan binary |
LedControl lc=LedControl(11,10,13,1); |
nomor
pin yang digunakan pada board Arduino
dan disesuaikan dengan penempatan pada
IC MAX7219, dimana DIN ke pin 11,
CLK ke pin10, dan CS ke pin 13 |
unsigned long delaytime =100; |
Digunakan untuk waktu tunda pergantian tampilan selam 100 mS |
bytehf[8]={B00111100,B01000010, B10100101,B10000001,B10100101,B10011001, B01000010,B00111100}; |
Program ini merupakan perwakilan. Dimana program
ini untuk memberikan instruksi Setiap byte berisi 8 nilai yang
kemudian akan mewakili setiap baris. Misalnya B0011100, bahwa terdapat 4 led yang berlogika
1 (HIGH) dan 2 awal baris dan 2 akhir
baris pertama berlogika 0 (LOW) dan seterusnya pada setiap baris
yang digunakan untuk
menampilkan karakter suatu
karakter. Untuk lebih jelas terdapat pada gambar
7 |
void drawFaces(){ //Display sad face lc.setRow(0,0,sf[0]); lc.setRow(0,1,sf[1]); lc.setRow(0,2,sf[2]); lc.setRow(0,3,sf[3]); lc.setRow(0,4,sf[4]); lc.setRow(0,5,sf[5]); lc.setRow(0,6,sf[6]); lc.setRow(0,7,sf[7]); delay(delaytime); //Display neutral face lc.setRow(0,0,nf[0]); lc.setRow(0,1,nf[1]); lc.setRow(0,2,nf[2]); lc.setRow(0,3,nf[3]); lc.setRow(0,4,nf[4]); lc.setRow(0,5,nf[5]); lc.setRow(0,6,nf[6]); lc.setRow(0,7,nf[7]); delay(delaytime); //Display happy face |
hanya
memanggil ledControl dan menyetel baris dari 0-7 dengan
bit-1 yang sesuai
dengan baris pertama
dan seterusnya. Setelah
setiap wajah ada penundaan 100
ms dan kemudian melompat ke wajah
berikutnya dan terus
berjalan. |
Tidak ada komentar:
Posting Komentar