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.

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);

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);
}

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…

2 thoughts on “Interfacing Arduino dengan Shift Register 595

  • April 21, 2018 at 10:13 am
    Permalink

    tolong dijelaskan fungsi sat sma pul nya pak, terlebih yg modulusnya….
    terimaksih

    Reply
    • July 18, 2018 at 11:01 am
      Permalink

      Maaf mas Ahmad, untuk saat ini baru ada programnya dulu.
      Trims dah mampir

      Reply

Leave a Reply

WhatsApp chat
%d bloggers like this: