project kali ini membuat Running LED atau biasa disebut lampu berjalan maksudnya adalah nyala led bergantian satu sama lain
Peralatan yang disiapkan dan rangkaiannya adalah:
1. Arduino x 1
2. IC Shift Register 74HC595 x 1
3. LED x 8
4. Resistor dengan nilai seragam x 8
5. Project board x 1
1. Arduino x 1
2. IC Shift Register 74HC595 x 1
3. LED x 8
4. Resistor dengan nilai seragam x 8
5. Project board x 1
6. Kabel jumper secukupnya
sambungan pin Arduino dengan IC 74HC595, dan komponen lainnya yaitu :
Program LED Berjalan dengan Shift Register
/*
* Program LED Berjalan dengan Shift Register
*/
// konfigurasi pin Arduino
const byte DataPin = 2; // DS data serial
const byte LatchPin = 3; // ST_CP
const byte ClockPin = 4; // SH_CP
// menampung data
byte data = 0;
void setup() {
// konfigurasi pin sebagai ouput
pinMode(LatchPin, OUTPUT);
pinMode(ClockPin, OUTPUT);
pinMode(DataPin, OUTPUT);
}
void loop() {
// delay 200ms
if ( nonblocking_delay(200) ){
// geser kiri
data <<= 1;
// jika data == 0 (gesernya sudah habis)
// ulangi dari awal
if( data == 0 ) data = 1;
// mulai transfer
digitalWrite(LatchPin, LOW);
// kirim data
shiftOut(DataPin, ClockPin, MSBFIRST, data);
// stop transfer
digitalWrite(LatchPin, HIGH);
}
}
// tambahan untuk membuat delay non blocking
unsigned long nonblocking_time = millis();
unsigned long nonblocking_last = millis();
boolean nonblocking_delay(long milidetik){
nonblocking_time = millis();
if(nonblocking_time - nonblocking_last >= milidetik){
nonblocking_last = nonblocking_time;
return true;
}
return false;
}
Cara kerja program di atas adalah :
- Untuk mengontrol IC 74HC595, kita membutuhkan 3 buah pin Arduino yang akan digunakan sebagai jalur data, latch, dan clock (lihat baris 8 - 10).
- Karena jumlah LED hanya 8 buah, maka kita minimal harus menggunakan data dengan lebar 8 bit. Data yang memiliki lebar 8 bit adalah tipe data byte. Jadi penggunaan tipe data byte sudah cukup untuk membuat LED berjalan ini.
- untuk LED berjalan, kita bisa menggunakan perintah untuk menggeser bit dari kiri ke kanan atau dari kanan ke kiri. Pada contoh kali ini kita akan menggeser bit dari kanan ke kiri.
- Untuk mengirim data, maka antara Arduino dan IC 74HC595 harus diaktifkan dan disinkronisasi dahulu dengan mengaktifkan pin Latch
- data dikirim dengan perintah ShiftOut() dan disesuaikan berdasarkan clock yang disinkronisasi
- setelah pengiriman data selesai, akhiri transfer data dengan menonaktifkan pin latch
Selain menggunakan perintah ShiftOut, komunikasi ke IC 74HC595 bisa dilakukan dengan SPI. Apa bedanya? Jika menggunakan ShiftOut, kita bisa menggunakan kaki mana saja untuk dijadikan pin Clock dan Data. Jika menggunakan SPI, maka pin Clock dan Data harus dihubungkan ke pin digital 13 dan 11.
@meteorstorepurwokerto (pusat jual arduino, led kabel jumper dipurwokerto)
#purwokertorobotic
Komentar
Posting Komentar