int latchPin = 3; // Pin Latch/RCLK 74HC595 ke D5
int clockPin = 4; // Pin Clock/SRCLK 74HC595 ke D6
int dataPin = 2; // Pin Data/SER 74HC595 ke D4
byte posisiLed[9] = {
B00000000, //mati semua
B10000000, //lampu 1
B01000000, //lampu 2
B00100000,
B00010000,
B00001000,
B00000100,
B00000010,
B00000001
};
byte data = 0;
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 8; i++) {
hidupkan_lampu(posisiLed[i]);
Serial.print(posisiLed[i]);
}
for (int j = 8; j > 0; j--) {
hidupkan_lampu(posisiLed[j]);
Serial.print(posisiLed[j]);
}
}
void shiftWrite(byte nmr, boolean nil) {
bitWrite(data,nmr,nil);
shiftOut(dataPin, clockPin, LSBFIRST, data);
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
delay(500);
}
void hidupkan_lampu(byte pattern) {
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin, LOW);
delay(500);
}