Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
04.03.2012, 03:37
|
|
Частый гость
Регистрация: 04.10.2007
Адрес: Запорожье
Сообщений: 43
Сказал спасибо: 8
Сказали Спасибо 14 раз(а) в 13 сообщении(ях)
|
Re: И снова ШИМ
|
|
|
Сказали "Спасибо" leartis
|
|
|
04.03.2012, 03:38
|
|
Прописка
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
|
на счет студии я уже понял
но все же я не могу понять каким образом ты изменяешь яркость в данном исходнике
т.е я правильно понимаю яркость регулируется через 2 а не через 1
спасибо Огромное
Это я соня днем выспался а сейчас мозги вам полосчу
Спасибо еще раз
Завтра буду внимательно слушать и запоминать
Всем спокойной ночи !!!
Кстати слово *топикстартер* у меня ассоциируется с японским мопедом Нода Топик и стартер для Топика ) я просто мопедами занимаюсь вначале не вкурил в данну фразу а вот сейчас допонял
Последний раз редактировалось dosikus; 04.03.2012 в 11:41.
|
|
|
|
04.03.2012, 04:22
|
|
Заблокирован
Регистрация: 27.03.2007
Сообщений: 1,328
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от SAHA_T
|
как в данной ситуации рассчитывается индукция дроселя ведь она напрямую связанна с током нагрузки ?
|
По закону об индуктивности: скорость нарастания тока через индуктивность равна напряжению, делённому на индуктивность. В Вашем случае напряжение на светодиодах = 3В, напряжение питания 5В. Когда транзистор замкнут, ток линейно нарастает от 0А до, например, 1А. Транзистор замкнут 5мсек. Следующие 5мсек транзистор разомкнут и ток через индуктивность линейно спадает от 1А до 0.
При нарастании тока напряжение на дросселе 5В -3В = 2В. Получаем значение индуктивности:
L = 2В * 0.005сек / 1А = 10 мГн
Во второй половине периоде ток спадает быстрее, где-то за 3мсек. То есть в среднем, ток через светодиоды будет 400мА. Уменьшая время замкнутого состояния транзистора пропорционально уменьшам средний ток.
В данном случае управлением током через светодиоды нельзя делать время включения транзистора больше 50% от периода, иначе ток выйдет из-под контроля.
Дроссель 10мГн на ток 1А - это относительно большая катушка.
Если частоту ШИМа увеличить до 1000Гц, то индуктивность дросселя уменьшится до 1мГн, соотвественно и размер тоже уменьшится.
Если частоту оставить 100Гц, а взять маленькую индуктивность 1мГн, то для тока 400мА время вкл. транзистора составит 0.5мсек и меньше для меньших токов. Это значит, что регулирование ШИМом будет происходить в узенькой полоске в самом начале периода.
Последний раз редактировалось Yurkin2007; 04.03.2012 в 04:25.
|
|
|
|
04.03.2012, 11:20
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от SAHA_T
|
dosikus ткни плиз носом где в исходнике leartis расписано побитное присвоение яркости как ты приводил на примере
|
У leartis логика работы та же .
Отличие в том , что у меня изменяются биты промежуточной переменной у него сразу порт . В итоге начало периода ШИМ у leartis у каждого канала будет сдвинуто + больший код из за else.
У меня переменная обнуляется перед заполнением , поэтому не нужно else.
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 04.03.2012 в 11:42.
|
|
|
Сказали "Спасибо" dosikus
|
|
|
04.03.2012, 11:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 26.01.2007
Сообщений: 3,123
Сказал спасибо: 61
Сказали Спасибо 1,153 раз(а) в 624 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от Alex9797
|
Но это совсем не означает, что я отговариваю от варианта с ШИМ. Напротив, я обеими руками "за". Преимуществ по сравнению с резистором - огромное множество.
|
Наверное Вы имеете ввиду дроссель, поскольку собственно ШИМ он (дроссель) не нужен.
В конкретном применении дроссель, имхо, не нужен (и может даже вреден). Нужен резистор на каждый светодиод.
Это следует из вольт-амперной х-ки светодиода, поскольку она сродни х-ке стабилитрона. При включении в параллель большого количества имеем неплохой шанс получить их последовательное выгорание в варианте с дросселем. Более того, для случая выхода из строя коммутирующего транзистора (имеется ввиду к.з) в схеме только с дросселем имеем бонус в виде выгорания всех питаемых через этот транзисторов светодиодов.
По этим соображениям наличие ограничивающего резистора обязательно. Энергетические потери можно снизить путем использования отдельного источника питания для светодиодов, выбрав его оптимальную величину.
Теперь о световом эффекте. "Световой поток" светодиода не линейно зависит от тока. Подозреваю, что и восприятие глазом яркости ( но точно не знаю - не спец) то же не линейно (провожу аналогию со звуком). При наличии дросселя (да же с ограничивающими резисторами) ток усреднится, и соответственно изменится "картинка" светового потока. Придется подбирать (или если удастся рассчитать) закон регулирования яркости от угла регулирования ШИМа, а не использовать уже известный (должен быть и для глаза, раз для уха есть ).
|
|
|
|
04.03.2012, 12:14
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от avp94
|
Наверное Вы имеете ввиду дроссель
|
Я имел в виду именно ШИМ, с любым вариантом реализации. Там все ясно написано.
Сообщение от avp94
|
"Световой поток" светодиода не линейно зависит от тока
|
Это совершенно не так. Светодиод как раз отличается высокой линейностью зависимости количества света от тока. Нелинейности начинаются лишь при довольно больших токах, по той причине, что кристалл заметно нагревается. А при нагреве светооотдача уменьшается.
Сообщение от avp94
|
Придется подбирать (или если удастся рассчитать) закон регулирования яркости от угла регулирования ШИМа, а не использовать уже известный (должен быть и для глаза, раз для уха есть ).
|
Это лишние усложнения. Фотометрическая точность тут совсем не требуется.
|
|
|
|
04.03.2012, 13:10
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: И снова ШИМ
Вы сейчас просто напросто отобьете желание у ТС ...
__________________
Осторожно , злой кот
|
|
|
|
04.03.2012, 13:23
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от Alex9797
|
Это совершенно не так. Светодиод как раз отличается высокой линейностью зависимости количества света от тока. Нелинейности начинаются лишь при довольно больших токах, по той причине, что кристалл заметно нагревается. А при нагреве светооотдача уменьшается.
|
Нелинейность имеет глаз человеческий. Зависимость по-моему логарифмическая. Поэтому если рассматривать осветительную технику, то можно рассматривать линейную характеристику, если светосигнальную, то - нелинейную.
|
|
|
|
04.03.2012, 15:27
|
|
Частый гость
Регистрация: 04.10.2007
Адрес: Запорожье
Сообщений: 43
Сказал спасибо: 8
Сказали Спасибо 14 раз(а) в 13 сообщении(ях)
|
Re: И снова ШИМ
Сообщение от SasaVitebsk
|
Нелинейность имеет глаз человеческий. Зависимость по-моему логарифмическая. Поэтому если рассматривать осветительную технику, то можно рассматривать линейную характеристику, если светосигнальную, то - нелинейную.
|
Совершенно верно, восприятие глазом яркостной составляющей имеет нелинейный характер, примерно в виде функции Х в степени 0,45. Поэтому, чтобы глаз воспринимал картинку линейно, проводят предыскажение яркостного сигнала, гамма-коррекцию, функцией Х в степени 2,2.
Но это уже как-то выходит за рамки топика
|
|
|
|
04.03.2012, 15:30
|
|
Частый гость
Регистрация: 04.10.2007
Адрес: Запорожье
Сообщений: 43
Сказал спасибо: 8
Сказали Спасибо 14 раз(а) в 13 сообщении(ях)
|
Re: И снова ШИМ
SAHA_T, продолжаем танцы с бубном. Попробую объяснить. В основной программе каким-нибудь способом задаем значения яркости для каждого канала (для каждого вывода порта) - Kanal_0, Kanal_1 и т.д. Кстати, перед началом наших плясок с яркостями хорошо бы задать какие-то начальные значения яркостей (это я упустил из виду) - хотя бы и нулевые - и продублировать их в переменных Ch_0...Ch_15. Сравнивать значение счетчика мы будем именно с этими переменными - чтобы значение байтов яркости не менялось в течение одного цикла ШИМ (от 0 до 127). Потому что в это же время в основной программе могут меняться Kanal_0...Kanal_15 и лучше бы отображать новую яркость канала с нового цикла ШИМ. Как-то так
Едем дальше.
Итак, в переменных Ch_0...Ch_15 у нас записаны значения яркости для каждого канала. В каждом прерывании по таймеру сравниваем значение счетчика с каждой из переменных. Если счетчик меньше Ch_x, то соответствующий бит порта устанавливается в 1, если счетчик сравнялся с Ch_x, то соотв. бит сбрасывается в 0. После всех сравнений счетчик увеличивается на 1 и выходим из прерывания. Ну например: Сh_0 = 64 (это 50% яркости). Тогда PORTA.0 (это у нас канал 0 ) в течение 64-х прерываний/тактов ШИМ будет равен 1, а в течение оставшихся 64 прерываний будет равен 0, что, собственно и будет эквивалентно 50% яркости.
Когда счетчик достигает значения 128, он сбрасывается в 0, в Ch_0...Ch_15 копируются новые значения яркостей и цикл начинается по новой.
Программка не особо оптимальна по скорости и коду, не спорю, у dosikus'a получше будет, но, может быть, более наглядна для понимания.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:25.
|
|