Как сгладить ШИМ.
- Войдите на сайт для отправки комментариев
Вс, 03/02/2013 - 11:41
Всем доброго дня.
Есть RGB лента , управляемая ШИМом. Схема стандартная , МК - uln2003 - RGB лента.
Все работает нормально, но есть одна неприятная особенность. При долгой работе светильника (особенно в темноте) , от него устают глаза. Появляется небольшая "пелена". Хотя проблем с глазами у меня нет.
Сдается мне что в этом виновата частота шима. Вопрос в том как ее сгладить ?
А конкретно, что будет если поставить кондеры между выходом ШИМа и землей ?
Мне интересно что какие именно изменения может внести кондер.
Какой номинал подойдет лучше. Выбирать кондеры экспериментально довольно долгое занятие.
Может кто уже решал эту проблему ?
Собственно, чем большей емкости коеденсатор вы поставите между выходом uln2003 и плюсовым выводом ленты, тем более прямая будет характеристика. Завышенная емкость приведет всего лишь к инерции при изменении скважности ШИМа.
>> Завышенная емкость приведет всего лишь к инерции при изменении скважности ШИМа. <<
Это я предполагал.
>>Собственно, чем большей емкости коеденсатор вы поставите между выходом uln2003 и плюсовым выводом ленты, тем более прямая будет характеристика. <<
А зачем так ?
Мне кажется что будет проще ставить кодер ДО uln2003 а не после. Т.е. между ногой МК и землей.
Или я ошибаюсь ?
Ну можете попробовать поймать тот нелинейный кусочек зависимости, на котором входной ток пропорционально изменяет выходной.
Ну может подскажите порядки номиналов. Микрофарады или нанофарады ?
Если после ULN, то конечно же десятки или сотни микрофарад, а до ULN думаю одним кондером не обойтись.
Поставил три 1000мкф после uln. Явно много. Короткие импульсы не сгладит а вот не совсем правильная смена цвета присутствует.
Буду уменьшать номинал.
Может быть лучше частоту ШИМ увеличить?
До ULN ставить кондеры нельзя, потому что она должна работать с дискретным сигналом. Лучше всего увеличит частоту ШИМа.
>>Лучше всего увеличит частоту ШИМа.<<
Каким образом ?
Собственно, предполагается, что ШИМ - это выход адуины, а не диммера.
Тогда берем таймер, на котором работает доанный ШИМ и меняем ему прескаллер. Пример можно выгрызть из библиотеки AFMotor.
Надеюсь, что это не таймер0, потому что у него ну крайне нежелательно менять настройки ;)
Попробуй использовать TLC5940
Для RGB лент - идеально.
Не вижу смысла. Да и ток на канал там 120мА. А у меня около 1А на канал. Придется ставить дополнительные ключи.
Вобщем совершенно лишний геморой.
Просто на дуинке мне шим не очень понравился - либо плясать с бубном вокруг предделителей либо отвратный шим.
А с микрухой проблем всяко меньше - ключи поставил и вперед.
Тоесть вы считаете, что разобраться с управлением этого драйвера проще, чем сгенерить более или мение "высочастотный", например, 10 разрядный ШИМ на 3 выводах?
Да даже то что у этого драйвера нет собственного генератора задающего частоту ШИМа и прийдется генерить его дуиной уже говорит о том что прийдется разбираться с таймерами/счетчиками.
Ну обрастет микросхемка детальками... Ничего ;)
Бывают люди, которым спаять плату с 10 корпусами проще, чем запрограммировать таймер :)
Мне, например, не трудно спаять... но еще легче запрограммировать :))) А главное - запрограммировать дешевле.
Да, именно так и считаю.
Я вообще сторонник железных решений - кнопки у меня через триггеры шмидта, ввод вывод - через соответсвующую логику.
Нормальный шим - через драйвер.
Надо "умощнить" - мосфет с драйвером или сборка дарлингтона.
В общем не пинайте - я просто разместил обьяву -)))
А никто и не пинает. Просто высказываем мнение.
Я за сбалансированные решения. Я, например, против прямого подключения светодиода к ноге процессора, особенно, когда это светодиодный индикатор... но собираюсь семисегментный индикатор повесить на регистр сдвига без ключей...
Все электричество нужно внимательно считать.
Вроде разобрался с емкостью кондеров. Пробовал 4.7, 10 , 100 , 1000мкф. Ни один из электролитов не подошел.
Пульсации довольно короткие и энерциальность большой емкости роли особо не играет.
Плюс к тому , у меня идет плавное , но не линейное изменение ШИМа по трем каналам. В связи с этим большая емкость дает, совершенно не нужные , скачки , вспышки и резкие переходы цвета (вместо плавных).
В данный момент тестирую керамику 0.1мкф. Пока все устраивает.
Поставь еще небольшой дросселек перед керамикой - должно стать лучше и импульсная нагрузка на выход драйвера уменьшится. Только выход драйвера диодом обратным нужно зашунтировать.
>>Поставь еще небольшой дросселек перед керамикой - должно стать лучше и импульсная нагрузка на выход драйвера уменьшится. <<
Что то не очень понял какой именно дросель (склько мкГн ?) и где именно его поставить ?
Если можете набросайте простую схемку.
Кондеры я ставил между выходом драйвера и +12в.
Дроссель с какого-нибудь БП типа компьютерного (из цепи 12В) - в разрыв драйвер-конденсатор. Конденсатор обычно ставят между выходом и землей. Не знаю, сколько микрогенри. где-то 100 наверно.
>>Конденсатор обычно ставят между выходом и землей.<<
Выход ULN инверсный (коммутация по GND) а общий там +12в.
njulf все правильно - конденсатор ставят параллельно ленте. А дроссель все равно в разрыв. Я бы взял с дохлого компового БП.
В разрыв чего ? выхода uln ? Т.е. последовательно кондеру или каналу ленты ?
Кондер всегда параллельно ленте - можешь его считать частью ленты :) Дроссель в разрыв провода, который идет от ULN к ленте (к минусу ленты)
Вот теперь ясно. Так же последовательно дроселю (между дроселем и uln ) диод ? Я правильно понял ?
Все таки заставил меня нарисовать, да?
Благодарю
Что то не работает схемка. Горят дроселя как спички.
Первый сгорел при первом же запуске. Заменил - работает. Проработало оно в тестовом режиме несколько дней - навернулся второй дросель.
Дроселя еще из совковых схронов ДПМ 80 мкГн. Сопротивление нового дроселя около 8 Ом. Сопротивление паленого - 600КОм.
А что, посмотреть максимально допустимый ток для дросселя никак? Или в качестве теста "сгорит/не сгорит"? Кадый дроссель расчитан на какой-либо максимальный ток, который зависит от диаметра провода, который используется в дросселе. Дроссель для Ваших нужд вряд ли будет иметь сопротивление больше 0.1 Ома!!!
>>А что, посмотреть максимально допустимый ток для дросселя никак?<<
Честно говоря только сегодня подумал о том дроселя , как и резисторы , могут иметь определенные номиналы мощности.
Никогда раньше с ними не работал.
В целом да, но дроссели нормируются именно по току, а не по мощности.
Возмите кольцо, намотайте на него провода - вот и дроссель.
Есть несколько вопросов по ULN2003:
- Если кому-то не влом, замеряйте падение напряжение на одном канале при токе в 0.5 А;
- Если на вход сборки Дарлингтона, она же ULN2003, подать не 5 В а к примеру 3.3, это как-то скажется падении напряжения через выход?;
- Читал что каналы, вроде, можно параллелить, а что если я запараллелю все 7 каналов то я смогу безопасно пропускать через микруху токи в 3.5 А?
Ато я накупил себе горсть полевиков, а тут узнаю что есть такая замечательная микруха которая будет в несколько раз дешевле полевиков. Мне от неё нужно пропускать ток в 1 А на 3-х каналах, ну и частота ШИМ"а ~30 кГц...
Хмм вообщетто светодиоды - пороговые устройства, сглаживание происходит на стороне приемника- глаза. Ленту нельзя плавно регулировать изменением тока, разве что в небольших пределах от ярко ветится до совсем ярко. Тем более, что пытаясь сгладить шим Вы переводите выходные каскады из ключевого в аналоговый режим и они будут сильно греться. Именно по этому светодиодные приборы диммерятся именно шимом. Если мерцание раздражает увеличивайте частоту. Больше 60 гц Вы гарантированно ничего не увидите, кстати на этой или близкой частоте регулируется яркость жк мониторов с LCD подсветкой.
Есть несколько вопросов по ULN2003:
- Если кому-то не влом, замеряйте падение напряжение на одном канале при токе в 0.5 А;
- Если на вход сборки Дарлингтона, она же ULN2003, подать не 5 В а к примеру 3.3, это как-то скажется падении напряжения через выход?;
- Читал что каналы, вроде, можно параллелить, а что если я запараллелю все 7 каналов то я смогу безопасно пропускать через микруху токи в 3.5 А?
Ато я накупил себе горсть полевиков, а тут узнаю что есть такая замечательная микруха которая будет в несколько раз дешевле полевиков. Мне от неё нужно пропускать ток в 1 А на 3-х каналах, ну и частота ШИМ"а ~30 кГц...
ну насчет дешевле ... это не факт, зависит от того какая задача и какими мешками покупать)
а так да, где-то проще ULN поставить, по крайней мере не будет борьбы с высокоемкостными затворами
3.5А на 7 каналов не выйдет, смотрите даташит на свои, их делают несколько компаний и у разных максимальный ток на корпус 2.5-3А
Хмм вообщетто светодиоды - пороговые устройства, сглаживание происходит на стороне приемника- глаза. Ленту нельзя плавно регулировать изменением тока, разве что в небольших пределах от ярко ветится до совсем ярко. Тем более, что пытаясь сгладить шим Вы переводите выходные каскады из ключевого в аналоговый режим и они будут сильно греться. Именно по этому светодиодные приборы диммерятся именно шимом. Если мерцание раздражает увеличивайте частоту. Больше 60 гц Вы гарантированно ничего не увидите, кстати на этой или близкой частоте регулируется яркость жк мониторов с LCD подсветкой.
шим не обязательно сглаживать до ключей. Можно сглаживать уже после ключей, тогда транзисторы будут работать в нормальном ключевом режиме. Я так делаю при управлении вентиляторами, использую LC фильтр с шунтирующим обратную индукцию диодом шотки. Вентиляторы (компьютерные) звери нежные, их лучше питать постоянкой (хотя ШИМ как правило они тоже переваривают, но это не гарантируется на конкретно взятом экземпляре). Но у сглаживания есть свои минусы - для высоких токов нужны большие дроссели и большие конденсаторы и тем больше, чем ниже частота ШИМ.
Полностью согласен - для светодиодов вглаживание вешь лишняя, если не вредная
Прикупл себе ULN2003APG на рынке, отдал около полдоллара.
Замерил падение напряжения на канале - при токе в 320 мА напряжение падало с 13.20 до 12.14, тоесть падение напряжения на микрухе 1.06В В, при этом на вход подал 3.4 В, хотя что 3.4 что 5.1 В, разницы не заметил.
Тянет(всмысле не критично грееться, градусов так около 45-50) метр RGB ленты 14.4 Вт/метр, полагаю что если запараллелить по 2 канала на цвет то потянет 2-3 метра без проблем.
Что понравилось - удобное расположение выводов и не надо городить резисторы по входу.
Вообщем, как говорилось, для вещица своего круга задач.
Прикупл себе ULN2003APG на рынке, отдал около полдоллара.
Замерил падение напряжения на канале - при токе в 320 мА напряжение падало с 13.20 до 12.14, тоесть падение напряжения на микрухе 1.06В В, при этом на вход подал 3.4 В, хотя что 3.4 что 5.1 В, разницы не заметил.
Тянет(всмысле не критично грееться, градусов так около 45-50) метр RGB ленты 14.4 Вт/метр, полагаю что если запараллелить по 2 канала на цвет то потянет 2-3 метра без проблем.
Что понравилось - удобное расположение выводов и не надо городить резисторы по входу.
Вообщем, как говорилось, для вещица своего круга задач.
это всего-лищь 8 каскадносоединенных по дарлингтону транзисторов где-то до 30вольт в пуке
потому и падение на паре npn npn 0.6+0.6=1.2вольта
так как 16 транзисторов на одном кристале ничего не стоит
шаговики ранние дохлые униполярники шагать разрабатывалась
грется может до смерти неожиданно когда шаговик по максимуму подклинивает
до сих пор с малюсенькими пластмассовыми шаговиками типа заслонку в печке поклинтить распространяется
не надежный драйвер по нынешней моде
60 градусов нагреется и поплывут внутри npn-ки до смерти вестимо
эксперементировать опасно
когда пробивается одна парочка соседние тоже ни к черту ведь на одном кристале
когда пробивается многими вольтами + перегревом летит лихой удар в микропроцессор
если только сразу пару + дохлый униполярник шаговик покупать
поигратся и заменить на одногодки древние КТ805 KT814 КТ816 КТ818 КТ973 последний вроде сразу дарлингтон не помню подробности
хотя у меня без радиатора ранние atmel-ы AT2312+ULN2003+от принтера где две пары вход-выход были прожженные до сих пор где-то в мусоре рабочая макетка валяется
в СССР были 30вольтовые TTL K155ЛН3 для таких моторов лампочек прошивания ППЗУ-шек
там открытый коллектор был и черта сдва прожжешь логику реальными 27 вольтами
это прямой конкурент СССР-ной на два хлипких ключа больше и горит только в путь потому ничего не стоит
подробности этой конкуренции не помню
Оу, надо же...
Оу, надо же...
так у тебя все получается
в ULN2003 ОУ внутри нет там только парочками тразисторы
а понял
нет усилить оперционными услилителемя другая микрушка нужна
я телефон разработал много пятилеток на дарлинготоах щас накидаю в пайнте чтоб понятно как усиливал вход и выход
классическим решением дарлингтона сдвоил усиление+ ток + и пробивную напругу увеличил
моей разработки схема телефона получается в 50 раз усиливала
говорю там внутри нет толком ничего кроме 30 вольтовых транзисторов
усилить конечно можно коэффициент одного + коэффициент услиления другого
классическая сдвоенная схема по Дарлингтону
но услиление шумное очень
ты же хотел вроде дифференциальными входами Операционного Усилителя на АЦП arduino что-то более менее надежное иметь на входе в параллельной теме
или ты ULN2003 на выходе со стороны нагрузки оцениваешь?
ключи как ключи сдвоенные
горят мерзко
IMHO идея сглаживать шим (то есть снижать питание ленты) - тупиковая. Вы фактически "убираете шим". А яркость диодов именно ШИМ-мом должна регулироваться.
Мерцания убираются повышением частоты шима. Именно в эту сторону нужно копать. Дефолтный ШИМ у ардуины всего 490 герц. Не помню точно на какой, смутно мелькает в памяти D6 - там 1kHz дефолт.
Ну или "еще больше выжимать". Тут уж от analogWrite конечно прийдется отказаться. Гуглите "ардуино секреты pwm", "Secrets of Arduino PWM", книжку "arduino cookbook" - вообщем учитесь выдавать PWM без analogWrite, разбирайтесь с таймерами - тогда и частоту завать сможете какую захотите.
Ну или поищите готовые библиотеки по этому поводу. Теже TimerOne и TimerThree (думаю при желании еще 10-ток найти можно).
этому как бы в институтах учат
это что не очевидные вещи?
ведь просто
спасибо за подсказку как модно на arduino трясти пошустрей
говорите TimerOne и TimerThree
http://arduino.cc/en/Reference/analogWrite
The frequency of the PWM signal on most pins is approximately 490 Hz. On the Uno and similar boards, pins 5 and 6 have a frequency of approximately 980 Hz. Pins 3 and 11 on the Leonardo also run at 980 Hz.
То есть банальная смена пина даст вам увеличение частоты шима в два раза.
http://arduino.cc/en/Reference/analogWrite
Частота ШИМ-сигнала на большинстве булавки, приблизительно 490 Гц. На Uno и аналогичные советы, контакты 5 и 6 имеют частотой примерно 980 Гц. Контакты 3 и 11 на Леонардо тоже работают на 980 Гц.
То есть банальная смена пина даст вам увеличение частоты шима в два раза.
то есть это пошустрее
насколько я понимаю не все пины могут
на классике Atmega328 по умолчанию 3-я и 11-ая?
Мой рабочий скетч.
Рулит двигателем на 80 вт 12 вольт.
С 3 пина на драйвер мосфета (TC4420CPA). Питание драйвера 12v.
С драйвера на МОСФЕТ (IRF3808) или (IRFP7430).
Защитный диод не забыть.
Всё, без охлаждения до 50А. Частота в звуковой диапазон не попадает - двигатель не "поет".
ленту RGB я запускал через IRLML0030 - 5 метров без вопросов.
...
ты же хотел вроде дифференциальными входами Операционного Усилителя на АЦП arduino что-то более менее надежное иметь на входе в параллельной теме
или ты ULN2003 на выходе со стороны нагрузки оцениваешь?
...
А что ULN2003 ещё можно юзать как ОУ? Можно поподробнее?
ok
Хмм вообщетто светодиоды - пороговые устройства, сглаживание происходит на стороне приемника- глаза. Ленту нельзя плавно регулировать изменением тока, разве что в небольших пределах от ярко ветится до совсем ярко. Тем более, что пытаясь сгладить шим Вы переводите выходные каскады из ключевого в аналоговый режим и они будут сильно греться. Именно по этому светодиодные приборы диммерятся именно шимом. Если мерцание раздражает увеличивайте частоту. Больше 60 гц Вы гарантированно ничего не увидите, кстати на этой или близкой частоте регулируется яркость жк мониторов с LCD подсветкой.
Что за чушь!? Ни слова истины. Всё абсолютно не так!
Хмм вообщетто светодиоды - пороговые устройства
Что??? Вы это сами придумали?
сглаживание происходит на стороне приемника- глаза.
Именно от этого глаза и портятся
Ленту нельзя плавно регулировать изменением тока
Можно. И нужно. Во всём диапазоне работы ленты. Но так редко делают, ибо дорого.
Тем более, что пытаясь сгладить шим Вы переводите выходные каскады из ключевого в аналоговый режим и они будут сильно греться.
Надо быть совсем не далёким, чтоб постоянный ток на силовой каскад пускать. Естественно сглаживание должно происходить на самом конечном этапе.
Именно по этому светодиодные приборы диммерятся именно шимом.
Они димерятся шимом только по одной причине - дёшево. В хай энд аппаратуре ставят фильтры, обязательно из шим делают простую постоянку, как в лабораторных БП, в результате получаем свет без пульсаций вообще, и с изменением яркости. Глаза скажут спасибо.
Если мерцание раздражает увеличивайте частоту. Больше 60 гц Вы гарантированно ничего не увидите, кстати на этой или близкой частоте регулируется яркость жк мониторов с LCD подсветкой.
Как вариант. Некоторое улучшение ситуации конечно будет.
Больше 60 гц Вы гарантированно ничего не увидите, кстати на этой или близкой частоте регулируется яркость жк мониторов с LCD подсветкой.
Гарантирую, увижу даже 60, в некоторых обстоятельствах будут заметны 100. Мониторы и телевизоры работающие с подсветкой на частоте до 100Гц - это из низкого ценового диапазона. Мерцания напрямую могут быть и не заметны, но усталость глаз даст об этом понять. Нормальные мониторы\тв это когда 200-400Гц.
Надо быть совсем не далёким, чтоб постоянный ток на силовой каскад пускать. Естественно сглаживание должно происходить на самом конечном этапе.
Sirocco - раз уж вы вляпались в некропостинг, давайте вы кратенько расскажете, как выполняется сглаживание ШИМ на мощной нагрузке, скажем при токах 2-3-5А. Ссылка на хорошую статью тоже сгодится.