#include <SPI.h>
const int STCPPin = 4; // пин, управляющий выходной защёлкой
void setup() {
SPI.begin();
pinMode(STCPPin, OUTPUT);
digitalWrite(STCPPin, LOW);
SPI.transfer(0); //сброс всех выходов в ноль
digitalWrite(STCPPin, HIGH); //формирование фронта на выходную защелку
digitalWrite(STCPPin, LOW);
}
// Кольцевой сдвиг
void rotateLeft(uint8_t &bits) {
uint8_t high_bit = bits & (1 << 7) ? 1 : 0;
bits = (bits << 1) | high_bit;
}
void loop() {
static uint8_t nomad = 1; //активен только один светодиод
SPI.transfer(nomad);
digitalWrite(STCPPin, HIGH); //формирование фронта на выходную защелку
digitalWrite(STCPPin, LOW);
rotateLeft(nomad); //сдвиг бита на один разрд
delay(500);
}