#include <Arduino.h>
#include <ShiftRegister74HC595.h>
const int dataPin = 5; // DS ke 74HC595
const int clockPin = 19; // SHCP ke 74HC595
const int latchPin = 18; // STCP ke 74HC595
const int PL_pin = 26; // PL (SH/LD) dari 74HC165 -> GPIO26
const int CP_pin = 13; // CP (Clock) dari 74HC165 -> GPIO13
const int Q7_pin = 25; // Q7 (Serial Out) dari 74HC165 -> GPIO25
ShiftRegister74HC595<4> sr(dataPin, clockPin, latchPin);
void setup() {
pinMode(PL_pin, OUTPUT);
pinMode(CP_pin, OUTPUT);
pinMode(Q7_pin, INPUT);
digitalWrite(PL_pin, HIGH); // default HIGH (mode shift)
digitalWrite(CP_pin, LOW); // default LOW
}
void loop() {
// Load data paralel dari input ke register
digitalWrite(PL_pin, LOW);
delayMicroseconds(5);
digitalWrite(PL_pin, HIGH);
// Baca 32 bit dari 74HC165
for (int x = 31; x >= 0; x--) {
// Shift satu bit
digitalWrite(CP_pin, LOW);
digitalWrite(CP_pin, HIGH);
// Simpan ke 74HC595
sr.set(x, digitalRead(Q7_pin));
}
delay(100);
}