#define dataPin 9 //Пин подключен к DS входу 74HC595
#define latchPin 10 //Пин подключен к ST_CP входу 74HC595
#define clockPin 11 //Пин подключен к SH_CP входу 74HC595
#define dataPinIN 5 //Пин подключен к DS входу 74HC1655
#define latchPinIN 3 //Пин подключен к ST_CP входу 74H165
#define clockPinIN 4 //Пин подключен к SH_CP входу 74HC165
#define cePinIN 2 //Пин подключен к SH_CE входу 74HC165
int m[]= {01111111111111111111111111111111,
10111111111111111111111111111111,
11011111111111111111111111111111,
11101111111111111111111111111111,
11110111111111111111111111111111,
11111011111111111111111111111111,
11111101111111111111111111111111,
11111110111111111111111111111111,
11111111011111111111111111111111,
11111111101111111111111111111111,
11111111110111111111111111111111,
11111111111011111111111111111111,
11111111111101111111111111111111,
11111111111110111111111111111111,
11111111111111011111111111111111,
11111111111111101111111111111111,
11111111111111110111111111111111,
11111111111111111011111111111111,
11111111111111111101111111111111,
11111111111111111110111111111111,
11111111111111111111011111111111,
11111111111111111111101111111111,
11111111111111111111110111111111,
11111111111111111111111011111111,
11111111111111111111111101111111,
11111111111111111111111110111111,
11111111111111111111111111011111,
11111111111111111111111111101111,
11111111111111111111111111110111,
11111111111111111111111111111011,
11111111111111111111111111111101,
11111111111111111111111111111101,
11111111111111111111111111111111};
byte out[]= {B01111111,
B10111111,
B11011111,
B11101111,
B11110111,
B11111011,
B11111101,
B11111110,
B11111111};
void setup() {
Serial.begin(9600);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(dataPinIN, INPUT);
pinMode(latchPinIN, OUTPUT);
pinMode(clockPinIN, OUTPUT);
pinMode(cePinIN, OUTPUT);
digitalWrite(cePinIN, HIGH);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
digitalWrite(latchPin, HIGH);
Serial.println("");
}
void loop() {
for (int i=0; i<32; i++){
if (i<8){
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[i]);
digitalWrite(latchPin, HIGH);
}
if (i>=8 && i<16){
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[i-8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
digitalWrite(latchPin, HIGH);
}
if (i>=16 && i<24){
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[i-16]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
digitalWrite(latchPin, HIGH);
}
if (i>=24){
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, out[i-24]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
shiftOut(dataPin, clockPin, LSBFIRST, out[8]);
digitalWrite(latchPin, HIGH);
}
digitalWrite(latchPinIN, LOW);
digitalWrite(latchPinIN, HIGH);
digitalWrite(clockPinIN, HIGH);
digitalWrite(cePinIN, LOW);
uint8_t a = shiftIn(dataPinIN, clockPinIN, LSBFIRST);
uint8_t b = shiftIn(dataPinIN, clockPinIN, LSBFIRST);
uint8_t c = shiftIn(dataPinIN, clockPinIN, LSBFIRST);
uint8_t d = shiftIn(dataPinIN, clockPinIN, LSBFIRST);
Serial.print(i);
Serial.print(" | ");
Serial.print(a, BIN);
Serial.print(b, BIN);
Serial.print(c, BIN);
Serial.println(d, BIN);
digitalWrite(cePinIN, HIGH);
delay(250);
}
}