Блинк Adafruit_NeoPixel
Я хочу моргнуть всю полосу. В приведенном ниже коде просто мигает первый светодиод, как это исправить?
Код:
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUM_LEDS 24
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show();
}
void loop() {
strip.setPixelColor(0, 255, 255, 255);
strip.show();
delay(1000);
strip.setPixelColor(0, 0, 0, 0);
strip.show();
delay(1000);
}
@dkin, 👍0
1 ответ
Лучший ответ:
▲ 3
Первый аргумент setPixelColor
— это номер светодиода. В вашем случае 0, значит первый светодиод.
Вместо этого используйте цикл for
, чтобы установить все светодиоды от 0 до (исключая) 24 (которые хранятся в NUM_LEDS
).
void loop()
{
for (int led = 0; led < NUM_LEDS ; led++)
{
strip.setPixelColor(led, 255, 255, 255);
}
strip.show();
delay(1000);
for (int led = 0; led < NUM_LEDS ; led++)
{
strip.setPixelColor(led, 255, 255, 255);
}
strip.show();
delay(1000);
Чтобы сделать код лучше (короче, но, что более важно, легче поддерживать и уменьшить дублирование кода), создайте отдельную функцию:
void loop()
{
setLeds(255);
setLeds(0);
}
void setLeds(int intensity)
{
for (int led = 0; led < NUM_LEDS ; led++)
{
strip.setPixelColor(led, intensity, intensity, intensity);
}
strip.show();
delay(1000);
}
,
@Michel Keijzers
Смотрите также:
- Передача цвета функции без использования определенного Adafruit_NeoPixel
- Создать 7 сегментный дисплей из управляемых светодиодных полос для отображения цифр
- Как объявить массив переменного размера (глобально)
- Программирование Arduino с использованием Python, а не C/C ++
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как справиться с rollover millis()?
- Является ли использование malloc() и free() действительно плохой идеей для Arduino?
- Можно ли сделать несколько функций loop() с помощью Arduino Uno?
Спасибо. Я предполагаю, что в более длинном сценарии это должно быть strip.setPixelColor(led, 0, 0, 0);, @dkin
Да, потому что аргумент «интенсивность» определяет, когда используются значения 0 или 255., @Michel Keijzers