WS2812 постепенное включение светодиодов
- Войдите на сайт для отправки комментариев
Пт, 04/11/2016 - 14:44
Добрый день. В наличии, Arduino, часы реального времени DS3231, и диодная лента WS2812. Идея звключается в том, чтоб в определенное время загорались диоды с каждой стороны с паузой в 1 минуту к примеру. Включать каждый диод по истечении одной минуты, получается не очень красивый код:
if (jobHour == 9) { if (jobMin == 50){ pixels.setPixelColor(59, pixels.Color(127,127,127)); pixels.setPixelColor(0, pixels.Color(127,127,127)); pixels.show(); } if (jobMin == 51){ pixels.setPixelColor(58, pixels.Color(127,127,127)); pixels.setPixelColor(1, pixels.Color(127,127,127)); pixels.show(); }
А вот как сделать циклом For чтоб работа одновременно до меня не доходит, пока выполняется первый цикл, второй ждет т.к. используется delay. Подскажите пожалуйста, как можно заменить delay? Заранее прощу прощения, за боль в глазах за такой ужасный код.)
#define left_led 29 #define right_led 30 if (jobHour == 9) { if (jobMin == 50){ for (int i = 0; i < right_led; i ++){ pixels.setPixelColor(i, pixels.Color(127,127,127)); pixels.show(); delay (50); } for (int i = 59; i > left_led; i --){ pixels.setPixelColor(i, pixels.Color(127,127,127)); pixels.show(); delay (50); } } }
А что, вместо двух циклов записать один Клапуаций запретил?
Вместо
Пишете один цикл
Нормально будут идти навстречу друг другу и в центре сойдутся.
Может не в тему ну всё же. немного переделал код и вот что получилось