//const uint8_t data_pin = 11; // 9 pin, Q7 /данные или MISO
//const uint8_t shld_pin = 8; // 1 pin, !PL /защелка
//const uint8_t clk_pin = 12; // 2 pin, CP /такты или SCK
//const uint8_t ce_pin = 9; // 15 pin, !CE / чипселект

#define DATA_PIN 11   // пин данных
#define LATCH_PIN 8   // пин защелки
#define CLOCK_PIN 12  // пин тактов синхронизации
byte byteR = 0;

bool rrr[41][2] = {
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #1 нет
  { 0, 0 },  // #2 нет
  { 0, 0 },  // #3 нет
  { 0, 0 },  // #4 нет
  { 0, 0 },  // #5 нет
  { 0, 0 },  // #6 нет
  { 0, 0 },  // #7 нет
  { 0, 0 },  // #8 нет
  { 0, 0 },  // #9 нет
  { 0, 0 },  // #10 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #20 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #30 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 },  // #0 нет
  { 0, 0 }   // #39 нет


};


void setup() {
  pinMode(DATA_PIN, INPUT);  // инициализация пинов
  pinMode(CLOCK_PIN, OUTPUT);
  pinMode(LATCH_PIN, OUTPUT);
  digitalWrite(LATCH_PIN, HIGH);
  Serial.begin(9600);
}

void loop() {
  readByte();
  for (int i = 39; i >= 0; i--) {
    Serial.print(rrr[i][0]);  // выводим результат в COM-порт
  }
  Serial.println("");
  for (int i = 39; i >= 0; i--) {
    rrr[i][0] = 0;  // выводим результат в COM-порт
  }
  delay(1000);  // пауза 1 сек
}

void readByte() {
  byteR = 0;
  digitalWrite(LATCH_PIN, LOW);  // защелка
  digitalWrite(LATCH_PIN, HIGH);
  for (int i = 31; i >= 0; i--) {                     // считываем побитно 8 раз
    if (digitalRead(DATA_PIN)) bitSet(rrr[i+8][0], i);  // читываем бит, вставляем в байт
    
    digitalWrite(CLOCK_PIN, HIGH);                    // синхроимпульс
    digitalWrite(CLOCK_PIN, LOW);
  }
  for (int i = 7; i >= 0; i--) {                     // считываем побитно 8 раз
    if (digitalRead(DATA_PIN)) bitSet(rrr[i][0], i);  // читываем бит, вставляем в байт
    
    digitalWrite(CLOCK_PIN, HIGH);                    // синхроимпульс
    digitalWrite(CLOCK_PIN, LOW);
  }
  
  return byteR;
}
74HC165
74HC165
74HC165
74HC165
74HC165