//Порт подключенный к ST_CP 74HC595
int latchPin = 9;
//Порт подключенный к SH_CP 74HC595
int clockPin = 8;
//Порт подключенный к DS 74HC595
int dataPin = 10;
byte i[] = {0b00000000, 0b00000000};
int j = 0;
int time = 50;
long tmpTime = 0;
void setup() {
//устанавливаем режим порта выхода
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void writeShift(byte data[]){
//устанавливаем LOW на latchPin пока не окончена передача байта
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, data[1]);
shiftOut(dataPin, clockPin, LSBFIRST, data[0]);
//устанавливаем HIGH на latchPin, чтобы проинформировать регистр, что передача окончена.
digitalWrite(latchPin, HIGH);
}
void loop(){
i[0] = 0b00000001;
while(j <= 7){
writeShift(i);
i[0] = i[0] << 0b00000001;
delay(time);
j++;
}
j = 0;
i[0] = 0b00000000;
i[1] = 0b00000001;
while(j <= 3){
writeShift(i);
i[1] = i[1] << 0b00000001;
delay(time);
j++;
}
j = 0;
while(j <= 3){
writeShift(i);
i[1] = i[1] >> 0b00000001;
delay(time);
j++;
}
j = 0;
i[0] = 0b10000000;
i[1] = 0b00000000;
while(j <= 7){
writeShift(i);
i[0] = i[0] >> 0b00000001;
delay(time);
j++;
}
j = 0;
}