void setup() {
Serial.begin(9600);
pinMode(7, OUTPUT); // CLK (CP)
pinMode(14, OUTPUT); // SHIFT/LOAD (PL)
pinMode(9, OUTPUT); // CLR (CLR)
pinMode(6, OUTPUT); // CLK INH (CLK_INH)
pinMode(0, OUTPUT); // SER IN (SER_IN)
pinMode(2, OUTPUT); // A
pinMode(3, OUTPUT); // B
pinMode(4, OUTPUT); // C
pinMode(5, OUTPUT); // D
pinMode(10, OUTPUT); // E
pinMode(11, OUTPUT); // F
pinMode(12, OUTPUT); // G
pinMode(13, OUTPUT); // H
pinMode(8, INPUT); // SER OUT (QH)
}
void loop() {
// Clear the shift register
digitalWrite(9, HIGH); // CLR
delay(10);
digitalWrite(9, LOW); // CLR
// Load parallel data
Serial.println("Loading parallel data...");
digitalWrite(14, LOW); // PL
digitalWrite(2, LOW); // D0 (A)
digitalWrite(3, LOW); // D1 (B)
digitalWrite(4, LOW); // D2 (C)
digitalWrite(5, LOW); // D3 (D)
digitalWrite(10, LOW); // D4 (E)
digitalWrite(11, LOW); // D5 (F)
digitalWrite(12, LOW); // D6 (G)
digitalWrite(13, LOW); // D7 (H)
delay(10);
digitalWrite(14, HIGH); // PL
// Shift out data
Serial.print("Shifted bits: ");
for (int i = 0; i < 8; i++) {
digitalWrite(7, HIGH); // CP
delay(1);
digitalWrite(7, LOW); // CP
delay(1);
int bit = digitalRead(8); // QH
Serial.print(bit);
}
Serial.println();
while(2) {}
}