/*
74HC165 Shift register input example
(C) 2025, Kshyhoo
*/
const int dataPin = 2; // Q7
const int clockPin = 3; // CP
const int latchPin = 4; // PL
void setup() {
Serial.begin(9600);
pinMode(dataPin, INPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
Serial.print("Q before CLK: ");
for (int i = 0; i < 8; i++) {
Serial.print(digitalRead(dataPin)); Serial.print(" ");
}
Serial.println();
digitalWrite(latchPin, LOW);
delayMicroseconds(5);
digitalWrite(latchPin, HIGH);
delayMicroseconds(5);
Serial.print("Q after CLK: ");
for (int i = 0; i < 8; i++) {
Serial.print(digitalRead(dataPin)); Serial.print(" ");
digitalWrite(clockPin, HIGH);
delayMicroseconds(5);
digitalWrite(clockPin, LOW);
delayMicroseconds(5);
}
Serial.println();
Serial.print("CLK: ");
Serial.print(digitalRead(clockPin));
Serial.print(" LATCH: ");
Serial.print(digitalRead(latchPin));
Serial.println();
delay(1000);
}Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
QH
___
QH
CLK
SH/LD
ERC Warnings
flop1:CLK: Clock driven by combinatorial logic
flop2:CLK: Clock driven by combinatorial logic
flop3:CLK: Clock driven by combinatorial logic
flop4:CLK: Clock driven by combinatorial logic
flop5:CLK: Clock driven by combinatorial logic
flop6:CLK: Clock driven by combinatorial logic
flop7:CLK: Clock driven by combinatorial logic
flop8:CLK: Clock driven by combinatorial logic