Имеется код: `#include <EncButton.h>
#include “FastLED.h”
#define LED_COUNT 36
#define LED_PIN 8
unsigned long last_time;
CRGB strip[LED_COUNT];
EncButton<EB_TICK, 13> btn(INPUT_PULLUP);
void setup() {
FastLED.addLeds<WS2812B, LED_PIN, RGB>(strip, LED_COUNT);
Serial.begin(9600);
}
void loop() {
if (millis() - last_time > 1) {
last_time = millis();
static byte mode = 0;
btn.tick();
if (btn.isClick()) {
if (++mode >= 5) mode = 0;
}
switch (mode) {
case 0: task1(); break;
case 1: task2(); break;
case 2: task3(); break;
case 3: task4(); break;
case 4: task5(); break;
}
}
}
void task1() {
}
void task2() {
// Включаем все светодиоды
for (int i = 0; i < 18; i++)
{
strip[i] = CRGB::Green; // Красный цвет.
}
// Передаем цвета ленте.
FastLED.show();
// Ждем 500 мс.
delay(50);
// Выключаем все светодиоды.
for (int i = 0; i < 18; i++)
{
strip[i] = CRGB::Black; // Черный цвет, т.е. выключено.
}
// Передаем цвета ленте.
FastLED.show();
// Ждем 500 мс.
delay(50);
// Включаем все светодиоды
for (int i = 18; i < 36; i++)
{
strip[i] = CRGB::Blue; // Синий цвет.
}
// Передаем цвета ленте.
FastLED.show();
// Ждем 500 мс.
delay(50);
// Выключаем все светодиоды.
for (int i = 18; i < 36; i++)
{
strip[i] = CRGB::Black; // Черный цвет, т.е. выключено.
}
// Передаем цвета ленте.
FastLED.show();
// Ждем 500 мс.
delay(500);
}
void task3() {
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 9, CRGB(225,225,225));
fill_gradient_RGB(strip, 27, CRGB(225,225,255), 36, CRGB(225,225,255));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
fill_gradient_RGB(strip, 9, CRGB(225,225,255), 18, CRGB(225,225,255));
fill_gradient_RGB(strip, 18, CRGB(225,225,255), 27, CRGB(225,225,255));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 9, CRGB(225,225,225));
fill_gradient_RGB(strip, 27, CRGB(225,225,255), 36, CRGB(225,225,255));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
fill_gradient_RGB(strip, 9, CRGB(225,225,255), 18, CRGB(225,225,255));
fill_gradient_RGB(strip, 18, CRGB(225,225,255), 27, CRGB(225,225,255));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 9, CRGB(225,225,225));
fill_gradient_RGB(strip, 27, CRGB(225,225,255), 36, CRGB(225,225,255));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
fill_gradient_RGB(strip, 9, CRGB(225,225,255), 18, CRGB(225,225,255));
fill_gradient_RGB(strip, 18, CRGB(225,225,255), 27, CRGB(225,225,255));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(150);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
delay(500);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,225), 36, CRGB(225,225,225));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,255), 18, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 18, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,255), 18, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 18, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,255), 18, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 18, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(225,225,255), 18, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 18, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(225,225,255), 36, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(225,225,255), 36, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(225,225,255), 36, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(225,225,255), 36, CRGB(225,225,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
}
void task4() {
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(700);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,225,0), 18, CRGB(0,225,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 18, CRGB(0,0,255), 36, CRGB(0,0,255));
FastLED.show();
delay(50);
fill_gradient_RGB(strip, 0, CRGB(0,0,0), 36, CRGB(0,0,0));
delay(50);
FastLED.show();
delay(500);
}
void task5() {
task2();
delay(900);
task3();
delay(1000);
task4();
delay(1000);
}`
Это Стробоскопы(ФСО) для автомобиля, но из-за постоянно работы ws2812b кнопка срабатывает через раз, помогите пожалуйста реализовать постоянное орашивание кнопки