|
Управление RGB светодиодами на STM32F3 |
|
|
|
Aug 16 2018, 07:28
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Jenya7 @ Aug 16 2018, 10:26)  откуда частота одинаковая? частота понятно разная. каналы должны быть независимы. А нафига вам разная частота? Визуально все равно не отличите 100 от 150 Гц. Скважность-то понятно - разная. Поэтому яркость каждого канала будет разной. ТЗ в студию! Иначе все тут получим очередной вынос мозгов ))
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Aug 16 2018, 07:41
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Forger @ Aug 16 2018, 10:20)  Если речь про STM32 и частота ШИМ одинаковая, то это все можно сделать на ДВУХ таких таймерах. Почему? Читайте даташит более внимательно. А зачем разные частоты для таких ШИМ? Какой смысл? Всё элементарно делается ногодрыгом. Число градаций больше 10-20 - будет уже почти неразличимо на глаз (светодиоды же для глаз наверное?) Частота обновления больше 50-100Гц - тоже не имеет смысла из тех же соображений. Итого: получаем частоту ШИМа == ~1кГц. Ногодрыг тут вполне уместен. Даже не то что уместен, а во многих случаях и неизбежен (во многих МК Cortex-M таймеры бывают шириной всего 16 бит). Цитата(Jenya7 @ Aug 16 2018, 10:26)  откуда частота одинаковая? частота понятно разная. каналы должны быть независимы. Так зачем для управления лампочками разные частоты ШИМ-ов? Просветите  Цитата(Forger @ Aug 16 2018, 10:20)  зы. Судя по вашим постам, каждый раз прихожу к одном и тому же выводу - вам тупо лень читать даташиты и "курить" гуглы... А я прихожу к выводу, что ТС не совсем понимает что такое ШИМ.
|
|
|
|
|
Aug 16 2018, 07:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(jcxz @ Aug 16 2018, 10:34)  А зачем разные частоты для таких ШИМ? Какой смысл? Так и я о том же: дали "разрабу" ТЗ, тот прочитал его по диагонали и для управления лампочками решил поставить .... FPGA! Вот как раз щас делаю проект, где нужно помимо всего остального управлять еще и 24 каналами ШИМ с частотой 500Гц на 20 градаций. В итоге просто поставил три копеешных сдвиговых регистра (8 выходов в каждом), повесил их на SPI. Делов на 5 копеек. Занято 5 ножек МК.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Aug 16 2018, 07:46
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
RGB светодиод управляется следующим образом. У каждого цвета есть свой код, например R G D красный 255 0 0 зеленый 0 255 0 синий 0 0 255 желтый 255 255 0 (смешение цветов) какой то 255 128 128 чтоб получить этот цвет нужно выставить процентное отношение напряжений на ножках светодиода (TIM_Period = 8000) красный PWM1_TIMER->CCR1 = 8000 PWM1_TIMER->CCR2 = 0 PWM1_TIMER->CCR3 = 0 зеленый PWM1_TIMER->CCR1 = 0 PWM1_TIMER->CCR2 = 8000 PWM1_TIMER->CCR3 = 0 синий PWM1_TIMER->CCR1 = 0 PWM1_TIMER->CCR2 = 0 PWM1_TIMER->CCR3 = 8000 желтый PWM1_TIMER->CCR1 = 8000 PWM1_TIMER->CCR2 = 8000 PWM1_TIMER->CCR3 = 0 какой то PWM1_TIMER->CCR1 = 8000 PWM1_TIMER->CCR2 = 4000 PWM1_TIMER->CCR3 = 4000 то есть для уапрвления одной RGB лентой нам нужен один таймер а...не все понимают откуда берутся цветовые коды. переименуйте RGB.txt в RGB.exe и там будет объяснение.
Сообщение отредактировал Jenya7 - Aug 16 2018, 08:36
Прикрепленные изображения
Прикрепленные файлы
RGB.txt ( 9.5 килобайт )
Кол-во скачиваний: 5
|
|
|
|
|
Aug 16 2018, 08:10
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Jenya7 @ Aug 16 2018, 10:46)  У каждого цвета есть свой код, например R G D красный 255 0 0 256-й градаций яркости??? Итого по всем 3-м == 2^24 градаций цвета? Вы реально думаете различить их на глаз? Или речь идёт не о восприятии глазом человека? Для чего яркостью управлять? Для глаза или яркость нужно регулировать для какого-то тех.процесса? И чей глаз - человека или может мухи?  Если последнее, то да - пожалуй частоту обновления значений нужно взять повыше, 50...100 Гц для мухи пожалуй маловато будет. ТЗ как всегда приходится осиливать телепатически.... PS: Если речь о восприятии глазом человека, то при большом числе градаций яркости проблема будет не с тем как это технически реализовать, а с нелинейностью зависимости значения напряжения формируемого ШИМ и ощущения яркости данной цветовой составляющей глазом. Без учёта этого и проработки этого, нет никакого смысла делать большое число градаций яркости - 10-и...20-и будет за глаза. Даже 20 уже много будет.... Есть как нелинейность зависимости яркости свечения светодиода от приложенного напряжения, так и нелинейность восприятия яркости свечения глазом человека. Да и нелинейность восприятия для разных цветов тоже есть. И тогда окажется что 64,64,0 - это вовсе не жёлтый цвет, а скорее оранжевый, даже ближе к красному.
|
|
|
|
|
Aug 16 2018, 09:31
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (jcxz @ Aug 16 2018, 11:10)  256-й градаций яркости??? Итого по всем 3-м == 2^24 градаций цвета? Вы реально думаете различить их на глаз? Градаций цвета + градаций яркости. Когда (если) автор темы сделает 256 градаций яркости - он поймет, что надо делать еще логарифмичесое преобразование заданной яркости к скважности ШИМ и что 8-битного ШИМа недостаточно, а для приятного и незаметного глазу изменения яркости нужно минимум 1024 уровня ШИМ. QUOTE (jcxz @ Aug 16 2018, 11:10)  50...100 Гц для мухи пожалуй маловато будет. biggrin.gif Да и для человека тоже. Это же не лампа накаливания с громадной инерционностью. Если перемещать взгляд или вертеть головой у мерцающего с такой частотой светодиода - мерцания будут заметны и головная боль гарантирована. При быстром перемещении взгляда хорошо заметна развертка динамической индикации на светодиодных семисегментных индикаторах с частотой цикла обновления 200 Гц. 1000 Гц уже почти незаметна. QUOTE (Jenya7 @ Aug 16 2018, 10:46)  то есть для уапрвления одной RGB лентой нам нужен один таймер То есть для управления одной лентой вам нужно 3 выхода ШИМ. Некторые таймеры имеют 4 выхода ШИМ и ничего не мешает вам использовать оставшийся для другой ленты. И вы бы сразу огласили свою терминологию: что "канал" у вас - это три выхода ШИМ для управления одной лентой. Итого вам надо 3*8=24 выхода ШИМ Угадал? Тогда или смотреть кристаллы с достаточным количеством выходов ШИМ (если такие есть) или переходить от ШИМа к более другой модуляции ( Binary Code Modulation). Последняя, кстати, элементарно реализуется на STM32 ногодрыгом через ПДП.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Aug 16 2018, 10:30
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(Сергей Борщ @ Aug 16 2018, 14:31)  И вы бы сразу огласили свою терминологию: что "канал" у вас - это три выхода ШИМ для управления одной лентой. Итого вам надо 3*8=24 выхода ШИМ Угадал? Тогда или смотреть кристаллы с достаточным количеством выходов ШИМ (если такие есть) или переходить от ШИМа к более другой модуляции ( Binary Code Modulation). Последняя, кстати, элементарно реализуется на STM32 ногодрыгом через ПДП. да. на каждую ленту нужно три PWM. нашел такое решение. уж не знаю насколько хорошее. а что такое ПДП? ногодрыг вобщем то тоже вариант.
Сообщение отредактировал Jenya7 - Aug 16 2018, 10:32
|
|
|
|
|
Aug 16 2018, 10:54
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(Jenya7 @ Aug 16 2018, 13:30)  да. на каждую ленту нужно три PWM. Мля, это у вас такая фишка - ТЗ выдавать порциями, получая в ответ соотв. порции негатива??? Неужели сложно СРАЗУ внятно выложить всю нужную информацию? Как я понял, в большинство существующих RGB-лент уже встроены соотв. контроллеры.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Aug 16 2018, 11:14
|

Местный
  
Группа: Участник
Сообщений: 492
Регистрация: 12-11-11
Пользователь №: 68 264

|
Цитата(Forger @ Aug 16 2018, 14:54)  Мля, это у вас такая фишка - ТЗ выдавать порциями, получая в ответ соотв. порции негатива??? Неужели сложно СРАЗУ внятно выложить всю нужную информацию? Как я понял, в большинство существующих RGB-лент уже встроены соотв. контроллеры. А Вам охото отвечать на вопросы, которые Вы считаете недостаточно полно (но судя по постам ТС - вообще никак) сформулированными? Мне вот, например, нет. А вытягивать из ТС по крупице того, что нужно сделать в итоге, ИМХО, считаю лишней тратой времени. Jenya7, если Вы не знали: 1. Выкладывайте то, что хотите сделать в итоге; 2. Приложите к п. 1. какие-то количественные требования; 3. Опишите, как Вы видите решение этой задачи или как Вы ее уже реализовали; 4. Опишите, с какой проблемой Вы столкнулись при выполнении п. 3. Вот в таком случае Вы можете получить максимально точный ответ, а не растянутую шурпу на 20 страниц трепа
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|