//https://www.artem.ru/cgi-bin/news?c=v&id=737&ysclid=lt1q5to3ii516726430
//https://arduinoplus.ru/74hc595-arduino/?ysclid=lt1psysbys817081605
//https://arduino.ru/forum/programmirovanie/programmnyi-shim-na-sdvigovom-registre?ysclid=lt1qdmqg8u699016855
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
byte leds = 0;
int currentLED = 0;
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(2, INPUT_PULLUP);
leds = 0;
}
void loop()
{
bool btnState = digitalRead(2);
if (btnState==0)
{
LEDpush();
if (currentLED == 7)
{
currentLED = 0;
}
else
{
currentLED++;
}
}
delay(80);
}
void LEDpush()
{
bitSet(leds, currentLED);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}