Blink на адресных светодиодах

Тема в разделе "Arduino & Shields", создана пользователем SergeiNCR, 3 апр 2018.

  1. SergeiNCR

    SergeiNCR Нуб

    Здравствуйте уважаемые форумчане!
    Никак не могу понять, каким образом реализовать мигание светодиодом на чипе 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();           // Корректировка времени переключения. Текущее время становится предыдущим
      }
    }
     
     
  2. Arduiner001

    Arduiner001 Гик

    Код (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;
      }
    }
     
    vvr, SergeiNCR и Tomasina нравится это.
  3. SergeiNCR

    SergeiNCR Нуб

    Спасибо большое!