#include <SPI.h>
const int allPin = 4;
//Переменные скорости перемещения включения диодов
int speed = 1500;
int speedIncrease = 250;
bool isBlue = true;
void setup()
{
pinMode(2, INPUT_PULLUP);
SPI.begin();
pinMode(allPin, OUTPUT);
digitalWrite(allPin, LOW);
SPI.transfer(0);
attachInterrupt(0, speedUp, FALLING);
}
void loop()
{
if(isBlue)
{
for (int i=0; i<8; i++)
{
double L = pow(2, i);
int leds = round(L);
digitalWrite(allPin, LOW);
SPI.transfer(0);
SPI.transfer(leds);
digitalWrite(allPin, HIGH);
delay(speed);
}
isBlue = false;
} else {
for (int i=0; i<8; i++)
{
double L = pow(2, i);
int leds = round(L);
digitalWrite(allPin, LOW);
SPI.transfer(leds);
SPI.transfer(0);
digitalWrite(allPin, HIGH);
delay(speed);
}
isBlue = true;
}
}
//Функция обработчик нажития кнопки
void speedUp()
{
if (speed > speedIncrease)
{
speed = speed - speedIncrease;
} else {
speed = 1500;
}
}