// 74HC165 Input Shift Register
// PL pin
int load = 27;
// Q7 pin
int dataIn = 25;
// CP pin
int clockIn = 26;
// 74HC595 Output Shift Register
// DS pin
int dataOut = 15;
// STCP pin
int stcp = 4;
// SHCP pin
int shcp = 5;
const int8_t dec_digits[10] = {129,79,146,6,204,36,160,15,128,4};
uint8_t my_count = 0;
void setup()
{
// Setup Serial Monitor
Serial.begin(115200);
// Setup 74HC165 connections
pinMode(load, OUTPUT);
pinMode(clockIn, OUTPUT);
pinMode(dataIn, INPUT);
pinMode(stcp, OUTPUT);
pinMode(shcp, OUTPUT);
pinMode(dataOut, OUTPUT);
}
void loop()
{
// Write pulse to load pin
digitalWrite(load, LOW);
delayMicroseconds(5);
digitalWrite(load, HIGH);
delayMicroseconds(5);
// Get data from 74HC165
digitalWrite(clockIn, HIGH);
byte bitstate = shiftIn(dataIn, clockIn, LSBFIRST);
// Print to serial monitor
Serial.print("Pin States: ");
Serial.println(bitstate, BIN);
digitalWrite(stcp,LOW);
shiftOut(dataOut, shcp, LSBFIRST, dec_digits[my_count]);
digitalWrite(stcp, HIGH);
my_count++;
if (my_count > 9) my_count = 0;
delay(1000);
}