#define DATA_PIN 10 // пин данных
#define LATCH_PIN 11 // пин защелки
#define CLOCK_PIN 12 // пин тактов синхронизации
byte b[8] = { // байты, который будут последовательно циклически выводиться в регистре
0b00000001,
0b00000010,
0b00000100,
0b00001000,
0b00010000,
0b00100000,
0b01000000,
0b10000000,
};
void setup() {
pinMode(DATA_PIN, OUTPUT); // инициализация пинов
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
digitalWrite(LATCH_PIN, HIGH);
}
void loop() {
static byte i = 0;
out_595_shift(b[i]); // передача байта на регистр
i = i == 7 ? 0 : i + 1; // подготовка следующего байта
delay(500); // задержка между установками 1 сек
}
void out_595_shift(byte x) {
digitalWrite(LATCH_PIN, LOW); // "открываем защелку"
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, x); // отправляем данные
digitalWrite(LATCH_PIN, HIGH); // "закрываем защелку", выходные ножки регистра установлены
}ERC Warnings
and11:A: Input pin not driven
and11:B: Input pin not driven
and12:A: Input pin not driven
and12:B: Input pin not driven