Interfacing Arduino dengan Shift Register 595

Arduino jika dipakai untuk aplikasi tampilan 7 segment umumnya memakai metode scanning. Jadi misalnya 4 digit 7 segment maka segment a dari semua digit akan tersambung jadi satu, demikian juga untuk segment b, c sampai h. Pemrograman Arduinonya juga mudah, tinggal atur nilai di segmenya (untuk tampilan angka) dan mengatur scanning digit yang aktif. Kelihatannya tampil bersamaan walaupun sebenarnya secara bergantian dengan cepat.

Iklan MM ARDU

Pada artikel aplikasi Arduino kali ini kita coba memakai shift register 74HC595. Berupa IC 16 pin berfungsi untuk mentransfer data serial menjadi paralel outputnya.

Keterangan pin 74HC595

Keterangan pin 74HC595

Kaki shift register  74HC595 pin 1 sampai 7 ditambah pin 15 merupakan keluaran ( data paralel ). Data input ada di pin 14, sedangkan clock ada di pin 11. Untuk latch ada di pin 12. Koneksi ke Arduino hanya 3 pin tersebut : data, clock dan latch. Adapun outputnya (Q0 – Q7) terhubung dengan segmen2 dari seven segment.

Aplikasi Arduino menampilkan counter pada seven segment dengan shift register 74HC595, rangkaiannya tampak pada gambar :

Rangkaian Arduino dengan 75HC595 dan 7 Segment

Rangkaian Arduino dengan 75HC595 dan 7 Segment

Program Arduino untuk menampilkan 7 segmen dengan shift register tidak terlalu pajang juga kok :

int clk = 12;
int dat = 11;
int latch =8;
int i;
unsigned char _data,_data1;
byte dataArray[11];
int angka,sat,pul;

void setup()
{
pinMode(clk, OUTPUT);
pinMode(dat, OUTPUT);
pinMode(latch, OUTPUT);

99 proyek arduino

dataArray[0] = 0x3F;
dataArray[1] = 0x6;
dataArray[2] = 0x5B;
dataArray[3] = 0x4F;
dataArray[4] = 0x66;
dataArray[5] = 0x6D;
dataArray[6] = 0x7D;
dataArray[7] = 0x7;
dataArray[8] = 0x7F;
dataArray[9] = 0x6F;
dataArray[10] = 0x00;
angka=497;

pul=angka%100/10;
sat=angka%100%10;

disp1(dataArray[0]);
disp1(dataArray[1]);
}

void loop()
{

delay(500);
for (angka = 0; angka < 100; angka++)
{
pul=angka/10;
sat=angka%10;

disp1(dataArray[sat]);
disp1(dataArray[pul]);
delay(500);
}
}

//===============================
void disp1(unsigned char datax)
{
digitalWrite(latch, LOW);
for(i=0;i<8;i++){
_data=datax & 0b10000000;
if(_data==0){
digitalWrite(dat,LOW);
}
else {
digitalWrite(dat,HIGH);
}
//————-
digitalWrite(clk,HIGH);
delay(1);
digitalWrite(clk,LOW);
datax<<=1;
}
digitalWrite(latch, HIGH);
}

Iklan App ARDU

Jika kita jalankan (saya memakai simulasi Arduino) akan tampil counter up mulai dari 00 sampai 99.

Apabila akan menambahkan digit dari 7 segment juga mudah. Tidak perlu menambah koneksi di Arduino. Cukup tambahkan shift register lagi kemudian pin 9 dari 74HC595 (terakhir) dihubungkan dengan pin 14 dari 74HC595 yang barusan ditambahkan. Pin Clock dan pin data tinggal disambung saja secara paralel dengan IC 74HC5959 yang lain.

Selamat ngArduino…

This entry was posted in Arduino and tagged , , . Bookmark the permalink.

Leave a Reply