Led chaser цветовой эффект заливки
Пожалуйста, помогите. Я много узнаю об Arduino. Почти все в молниях. Я новичок. Я играю с nano и LED ws2812 и использую библиотеку fastled.
То, что я прошу, - это сделать эффект, подобный эффекту заполнения. Например, с помощью сканера/охотника Ларсона.
for (int i = 0; i<NUM_LEDS; i++)
{
leds[i]=CRGB::Red;
FastLED.show();
leds[i]=CRGB::Black;
delay(50);
}
Исходя из приведенного выше кода, как сделать так, чтобы светодиод останавливался и загорался, а затем снова зацикливался, останавливался и загорался. Я хочу, чтобы каждый светодиод останавливал загорающийся светодиод, даже если цикл светодиода начинался снова с первого светодиода. Это примерно так:
10000 01000 00100 00010 00001 10001 01001 00101 00011 10011 01011 00111 10111 01111 11111
@Nitta Devy, 👍3
Обсуждение1 ответ
Для этого вам нужны два счетчика: один для отслеживания того, насколько заполнена светодиодная панель, и один о текущем "работающем" светодиоде, чтобы в конечном итоге "коснуться" светодиодов, которые уже перемещены вправо.
Каждый светодиод (текущий) будет работать с индекса 0 до последнего заполненного индекса, в то время как последний заполненный индекс уменьшается на 1 после каждого цикла.
(примечание: я не проверял код).
// Заполняйте справа, таким образом, считайте в обратном порядке.
for (int filledLedIndex = NUM_LEDS; filledLed >= 0; filledLed--)
{
//Теперь пусть индикатор работает от 0 до filedLedIndex;
for (int currentLed = 0; currentLed < filledLedIndex)
{
// Сделать предыдущий светодиод черным
if (currentLed > 0)
{
leds[i - 1] = CRGB::Black;
}
// Сделайте текущий светодиод красным
leds[i] = CRGB::Red;
// Показать.
FastLED.show();
delay(50);
}
}
// Очистите все светодиоды.
for (int led = 0; led < NUM_LEDS; led++)
{
leds[i] = CRGB::Black;
}
FastLED.show();
delay(50);
большое вам спасибо.. за ваш совет и небольшое редактирование для моего проекта, и он, наконец, работает нормально.., @Nitta Devy
но как написать правильный код для [кода] для (int i = 0; i > y; И я < x; i++) [/код], @Nitta Devy
- Выполнить функцию цикла из основного цикла()
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Питание светодиодной ленты - Сколько ампер?
- как быстро loop() работает в Arduino
- Как управлять встроенными светодиодами Arduino Nano 33 BLE Sense?
- Использовать Arduino Nano V3 для программирования другого Arduino (Pro Mini)?
- Реализовать связь Visible Light с помощью Arduino
- Есть ли функция Adafruit для инвертирования цветов моего экрана для языка Arduino?
я не вижу никакого "кода выше", @jsotola
Там есть код - я отредактировал его, чтобы он выглядел лучше / виден., @st2000
Я действительно не понимаю вашего описания проблемы. Кажется, что английский не является вашим родным языком. Может быть, вы можете написать лучшее описание или попросить кого-то помочь вам с этим. Мы должны понять проблему, чтобы иметь возможность помочь вам., @chrisl
Согласитесь w/@chrisl, в посте нет "У меня эта проблема". Предполагая, что вы не видите горящий светодиод, перемещающийся по линии светодиодов, попробуйте поменять местами строку кода "задержка" с линией над ней., @st2000
да вы правы, я не родной английский,я Индонезия.. извините за мой плохой английский и неправильное название.. :).. но спасибо всем за совет.. у меня уже есть ответ от @michel keijzers.., @Nitta Devy