Здравствуйте уважаемые форумчане! Никак не могу понять, каким образом реализовать мигание светодиодом на чипе WS2811 без использования delay, а с использованием millis С обычными светодиодами всё понятно - в скобках после if проверяем текущее состояние светодиода знаком == и пишем дальше, какое состояние устанавливать по результатам проверки. С адресным такой номер не проходит. Прошу помощи. Во мой код. Код (C++): #include "FastLED.h" // Подключаем бибилиотеку FastLED #define DATA_PIN 12 // Номер пина для подключения линии данных #define NUM_LEDS 12 // Колличество светодиодов в ленте #define LED_TYPE WS2811 // Тип чипа светодиодов #define COLOR_ORDER RGB // Порядок цветов #define BRIGHTNESS 50 // Яркость unsigned long prev_time = 0; // Таймер для переключения светодиода. CRGB leds [NUM_LEDS]; // Определяемм массив светодиодов void setup() { FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS); FastLED.setBrightness(BRIGHTNESS); } void loop() { if (millis() >= prev_time + 100) { if () // Вот здесь не пойму какое условие прописать { leds[0] = CRGB::Yellow; // Номер светодиода, обозначаем цвет FastLED.show(); // Включаем цвет } else { leds[0] = CRGB::Black; // Номер светодиода, обозначаем цвет FastLED.show(); // Включаем цвет } prev_time = millis(); // Корректировка времени переключения. Текущее время становится предыдущим } }
Код (C++): #include "FastLED.h" // Подключаем бибилиотеку FastLED #define DATA_PIN 12 // Номер пина для подключения линии данных #define NUM_LEDS 12 // Колличество светодиодов в ленте #define LED_TYPE WS2811 // Тип чипа светодиодов #define COLOR_ORDER RGB // Порядок цветов #define BRIGHTNESS 50 // Яркость unsigned long prev_time = 0; // Таймер для переключения светодиода. CRGB leds [NUM_LEDS]; // Определяемм массив светодиодов bool trigger = false; void setup() { FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS); FastLED.setBrightness(BRIGHTNESS); } void loop() { if (millis() - prev_time >= 1000) // 1 раз в секунду { if (trigger) { leds[0] = CRGB::Yellow; // Номер светодиода, обозначаем цвет } else { leds[0] = CRGB::Black; // Номер светодиода, обозначаем цвет } prev_time = millis(); // Корректировка времени переключения. Текущее время становится предыдущим FastLED.show(); // Включаем цвет trigger = !trigger; } }