namespace PISO // 74HC165
{
const uint8_t latchPin = 25; // SH/!LD
const uint8_t clkInhPin = 33; // CLK INH
const uint8_t clockPin = 26; // CLK
const uint8_t dataPin = 27; // QH, Q7
}
const uint8_t registers = 2;
uint8_t input[registers];
void setup() {
Serial.begin(115200);
pinMode(PISO::latchPin, OUTPUT);
pinMode(PISO::clkInhPin, OUTPUT);
pinMode(PISO::clockPin, OUTPUT);
pinMode(PISO::dataPin, INPUT);
}
void loop() {
// Reading data using 74HC165
digitalWrite(PISO::latchPin, LOW);
delayMicroseconds(5);
digitalWrite(PISO::latchPin, HIGH);
delayMicroseconds(5);
digitalWrite(PISO::clkInhPin, LOW);
for (uint8_t i = 0; i < registers; i++)
{
input[i] = shiftIn(PISO::dataPin, PISO::clockPin, MSBFIRST);
for (uint8_t j = 0; j < 8; j++)
{
Serial.print(!!(input[i] & (1 << j)));
Serial.print(" ");
}
Serial.print(" ");
}
digitalWrite(PISO::clkInhPin, HIGH);
Serial.println();
delay(100);
}