Easyelectronics.ru

Электроника для всех
Текущее время: 22 янв 2021, 11:17

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по реализации алгоритмов для ws2812b
СообщениеДобавлено: 21 ноя 2020, 20:34 
Заглядывает иногда

Зарегистрирован: 25 апр 2020, 12:03
Сообщения: 43
Всем доброго времени.
Разбираюсь с работой "хитрых" светодиодов ws2812b. Управляет лентой stm32f042. Таймер 2, через DMA отправляет нолики и единички на вход в ленту. Это все работает. В main.h задется количество светодиодов. Включить разными цветами, с разной яркостью и различной насыщенностью (использую HSV затем конвертирую в RGB), любой светодиод или несколько получается без проблем. Не могу понять как плавно изменять яркость нескольких светодиодов одновременно, причем один наращивает яркость, а другой снижает яркость, один меняет яркость от 10 до 25, второй от 75 до 40, третий от 15 до 19.
Например: -кол-во LED 3 шт;
-яркость начинает изменяться одновременно на трех светодиодах в диапазоне 10-100%;
-LED_1 яркость меняется от текущей (br1_current) до нового рандомного значения (br1_new);
-LED_2 -//-//-//- (br2_current) -//-//-//- (br2_new);
-LED_3 -//-//-//- (br3_current) -//-//-//- (br3_new);
-шаг изменения яркости одинаков на всех светодиодах 1 в 20мс;
-изменения происходят циклично, непрерывно, то есть светодиоды не ждут окончания цикла других светодиодов.

Подскажите алгоритм, как реализовать такое?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по реализации алгоритмов для ws2812b
СообщениеДобавлено: 21 ноя 2020, 20:50 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1394
Если в общем виде, то хранишь в массиве необходимые данные(номер диода, шаг, минимальное и максимальное значения яркости) и просто перебираешь все диоды по списку...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по реализации алгоритмов для ws2812b
СообщениеДобавлено: 21 ноя 2020, 22:04 
Заглядывает иногда

Зарегистрирован: 25 апр 2020, 12:03
Сообщения: 43
Что-то не доходит. Вот уже час кумекаю, не складывается картинка. А можно поподробнее?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по реализации алгоритмов для ws2812b
СообщениеДобавлено: 21 ноя 2020, 22:51 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1394
wasa7272 писал(а):
Что-то не доходит. Вот уже час кумекаю, не складывается картинка. А можно поподробнее?

Допустим есть сотня диодов, каждый может быть в любом состоянии, значит должен быть массив где хранятся текущие HSV для каждого. Чтобы циклически менять значение яркости у некоторой группы диодов нужно знать номера диодов, шаг, т.е. насколько менять яркость при каждом обновлении, ведь даже при единичном шаге яркость может увеличиваться или уменьшаться, и нужны граничные значения. Берешь из массива номер, по нему получаешь значение HSV, прибавляешь к яркости шаг, сравниваешь с максимумом/минимумом, если он превышен, то присваиваешь яркости начальное значение. Если диодов мало, то массив можно один сделать, сразу со всеми данными.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по реализации алгоритмов для ws2812b
СообщениеДобавлено: 22 ноя 2020, 01:59 
Заглядывает иногда

Зарегистрирован: 25 апр 2020, 12:03
Сообщения: 43
Спасибо, вроде начало получаться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по реализации алгоритмов для ws2812b
СообщениеДобавлено: 22 ноя 2020, 17:13 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 655
Откуда: Киев
У меня для каждого светодиода есть структура с текущими значениями HSV, желаемыми значенями HSV, и приращениями на каждом шаге.
Текущие изменяются до достижения желаемых. Приращения рассчитываются из нужной скорости изменения.
Шаг 20мс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по реализации алгоритмов для ws2812b
СообщениеДобавлено: 22 ноя 2020, 23:06 
Заглядывает иногда

Зарегистрирован: 25 апр 2020, 12:03
Сообщения: 43
Вот точ в точ и я замутил через структуру, а уже эту структуру в массив по количеству светиков. Вроде работает.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB