#define DataOut 2
#define SERCLK 3
#define Latch 4
#define DataIn 5
byte inputData, bitData;
void setup() {
pinMode(DataOut, OUTPUT);
pinMode(SERCLK, OUTPUT);
pinMode(Latch, OUTPUT);
pinMode(DataIn, INPUT);
}
void loop() {
digitalWrite(Latch, LOW);
shiftOut(DataOut, SERCLK, MSBFIRST, inputData);
digitalWrite(Latch, HIGH);
digitalWrite(Latch, LOW);
delayMicroseconds(5);
digitalWrite(Latch, HIGH);
inputData = 0;
for(int i = 0; i < 8; i++) {
bitData = digitalRead(DataIn);
inputData |= (bitData << i);
digitalWrite(SERCLK, HIGH);
delayMicroseconds(5);
digitalWrite(SERCLK, LOW);
}
}