Добрый день!
Имеется скетч автоматической смены цветов (1530 цветов ColorWheel) на основе библиотеки GyverRGB. Не могу понять как регулировать скорость смены цветов? Поставил в скетче чтобы цвет увеличивался на 1, и все равно очень быстро цвета меняются. Как их замедлить?
Имеется скетч автоматической смены цветов (1530 цветов ColorWheel) на основе библиотеки GyverRGB. Не могу понять как регулировать скорость смены цветов? Поставил в скетче чтобы цвет увеличивался на 1, и все равно очень быстро цвета меняются. Как их замедлить?
C++:
#define PIN_R 9
#define PIN_G 10
#define PIN_B 11
#define CLK 2
#define DT 3
#define SW 4 //пин подключения кнопки энкодера
#define ENC_REVERSE 0 // 1 - инвертировать направление энкодера
#include <GyverRGB.h> // подключаю библиотеку RGB
GRGB strip(PIN_R, PIN_G, PIN_B); // пины, куда подключены цвета (R, G, B)
#include <GyverEncoder.h> //подключаю библтиотеку Энкодера
Encoder enc(CLK, DT, SW); //называем энкодер (энк и кнопка)
int16_t brightness = 0; // переменная яркости
void setup() {
//-----Энкодер-----
enc.setType(TYPE2); // выбираю тип энкодера
enc.setTickMode(AUTO); //устанавливаю автоматический режим опроса энкодера
if (ENC_REVERSE) enc.setDirection(REVERSE);
pinMode(PIN_R, OUTPUT);
pinMode(PIN_G, OUTPUT);
pinMode(PIN_B, OUTPUT);
pinMode (6, OUTPUT);
digitalWrite (6, HIGH);
Serial.begin(9600);
}
void loop() {
// плавно проходимся по всем цветам
static int thisColor = 0;
thisColor += 1;
if (thisColor > 1530) thisColor = 0;
strip.colorWheel(thisColor);
strip.setBrightness(brightness);
Serial.println (brightness);
if (enc.isRight()) brightness += 10; // если был поворот направо, увеличиваем brightness на 10
if (enc.isLeft()) brightness -= 10; // если был поворот налево, уменьшаем brightness на 10
brightness = constrain(brightness, 10, 255); //ограничиваем значение brightness от 10 до 255
}