Плавный розжиг светодиодов

maximuss64
Offline
Зарегистрирован: 09.08.2018

Всем привет! Я новичок в сфере ардуино и программирования в общем. У меня есть лента WS2812B и мне хотелось бы узнать, как можно сделать так, чтобы светодиоды плавно загорались один за другим, например красным цветом. Использую библиотеку FastLED, но буду рад и примерам с использованием других библиотек.

Заранее спасибо!

 

VasiliyV
Offline
Зарегистрирован: 09.07.2018

Элементарно, Ватсон!

Самое простое это использовать 2 цикла. Первый цикл выбирает диод. В нем целая переменная это номер диода с которым идёт работа. Второй цикл вложен в первый. В нем стандартная процедура измерения яркости нужных диодов в соответствии с библиотекой и желаниями. Внутри второго цикла в конце ledshow.

После прохода всех циклов надо очистить ленту. Не помню как в фастлед.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ждем классическую фразу: "А пример покажете?"

maximuss64
Offline
Зарегистрирован: 09.08.2018

Угу, понял, спасибо. А что если нужно сделать так, чтобы каждый следующий диод зажигался, скажем, спустя 100мс, а не после предыдущего?

b707
Offline
Зарегистрирован: 26.05.2017

maximuss64 пишет:

Угу, понял, спасибо. А что если нужно сделать так, чтобы каждый следующий диод зажигался, скажем, спустя 100мс, а не после предыдущего?

дай угадаю - вставить перед переходом к следующему диоду delay(100) ? :)

maximuss64
Offline
Зарегистрирован: 09.08.2018

Либо я чего-то не понимаю

maximuss64
Offline
Зарегистрирован: 09.08.2018

Не совсем :)  Я имел ввиду спустя 100мс после начала розжига предыдущего, не после затухания

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Ищете "blink без delay", на основе этого алгоритма делаете такой код, чтобы во вложенном цикле (тот, который изменяет яркость светодиодов) менялся лимит. Т.е. первые сто мс цикл должет бегать до единички, вторые - до двойки, третьи - ... и так далее увеличивайте лимит каждый интервал, пока не достигнете количества светодиодов в страйпе.

maximuss64
Offline
Зарегистрирован: 09.08.2018

Интересно, попробую.