Драйвер для плавного изменения яркости
- Войдите на сайт для отправки комментариев
Привет, форумчане!
Аппаратная часть:
- arduino pro mini на базе ATmega 328P и любая оптопара;
Как вы все знаете, ардуинка может управлять каналами PWM. Один из каналов (D6) использовал для своих целей по управлению сигналом PWM внешними устройствами, а именно - регулировка яркости лампочки на 12 вольт.
Схему сопряжения собрал и она работает на простом светодиоде (12 вольт). Однако, вот какая штука ... свет начинает очень часто моргать. В чем может быть проблема и как её обойти (стабилизировать)?
Вот схема, по которой изготовил диммер:
http://alcs.ch/wp-content/uploads/2012/01/dimmer_v3.png
Аналоговый выход позволяет регулировать сигналом в диапазоне от 0 до 255. При выставлении любых значений, происходит частое моргание, как у стробоскопа. В чем может быть проблема?
Вот код:
analogWrite(6,3);
delay(350);
analogWrite(6,168);
Аналоговый выход позволяет регулировать сигналом в диапазоне от 0 до 255. При выставлении любых значений, происходит частое моргание, как у стробоскопа. В чем может быть проблема?
Проблема может быть в delay(350);
Вот код:
analogWrite(6,3);
delay(350);
analogWrite(6,168);
Это не код, это список из 3-х функций.
Если я просто в setup () указываю функцию, например, analogWrite(6,128) , то при запуске кода светодиод начинает моргать, но это моргание почти не заметно для глаз (только если вглядываться), однако, при подключении внешнего устройства (лампа на 12В), то моргание становится на порядок заметным. Не горит, а мигает.
ШИМ - это и есть пульсация с определенной частотой, указываемой во втором параметре ф-и analogWrite(), увеличенной на постоянный коэф-т, определяемый внутренним кодом ардуинки (можно и 1024 положения). Вот этот ШИМ и начинает проявляться.
ШИМ - это и есть пульсация с определенной частотой, указываемой во втором параметре ф-и analogWrite(), увеличенной на постоянный коэф-т, определяемый внутренним кодом ардуинки
Чего? о_О
Частота ШИМ там как раз стабильная (около 490 Гц), меняется только ширина импульса (скважность).
Так мы от топикстартера дождемся скетч целиком, и силовую схему управления? Ну чтоб хоть что то вменяемое посоветовать.. Или все дружно достаем свои штатные хрустальные шары и в них разглядываем суть обсуждаемой проблемы?
Попробую объяснить.
Есть вот такая схема:
Эту схему я реализовал. Вместо (М) стоит светодиод на 12V. Использовал MOSFET IRLR2905.
Когда задаю управляющий ШИМ равный 128 (либо любой другой, отличный от граничных 0 и 255), то на выходе происходит пульсация напряжения.
Я бы конечно посоветовал ткнуть осциллографом, много е стало бы ясно..
Но если нет доступа к такому оборудованию, то поопробуй параллельно нагрузке (если я правильно понимаю, это LED-лампа) поставить электролитический конденсатор например в таком диапазоне 150-500 мК * 16В.
И погоняй выходные значения от 1 до 253, посмотри как будет меняться напряжение на нагрузке.
Даже не видя скетча, а только пару функций (это я свой хрустальный шар протер) я ведь уже писал, что проблема в delay(350)
Это самый настоящий 3-хгерцовый (приблизительно) стробоскоп и получается.
Что еще надо? Ждете пока соберем консилиум?
Дело в том, что входная емкость у выбранного транзистора не очень маленькая, может при PWM режиме( а это как раз любяе значения , кроме граничных 0 и 254, при них то либо чистый ноль, либо чистая лог. единица)) . Сам то я по старинке на полевики, работающие в подобных PWM схемах ставлю драйверы нижнего плеча... Посему с такой проблемой сталкиваться не приходилось, да оно и многи други возможные косяки на корню решает....1 700
далее, как совершеено верно отметил уважаемый vk007 совершенно не исключены программные косяки, и трехгерцовый строб, это только видимая часть айсберга))) а там еще много всего может быть наворочено)))
Но скетч топикстартер пока не представил на всеобщее обозрение)))
может быть вообще что угодно.. включая блок питания из трансформатора и выпрямителя (без фильтрующих электролитов)
Тоесть управляющей части схемы своего стаба и конденсаторов хватает для работы, а на нагрузке в PWM-е из за биения частот может вообще что угодно показываться.. тоже был такой вариант у одного несомненно талантливого человека...(правда там не про Дуню шла речь, но все же)
Ну а чем тогда можно объяснить вот это:
analogWrite(6,3);
delay(350);
analogWrite(6,168);
К гадалке не ходи - в лупе крутится.
Пауза здесь не играет роли, т.к. мерцание происходит гораздо чаще, чем раз в секунду (примерно 5 раз). Обычный скеч с перебором значений:
void loop() {
for (value = 0; value <= 255; value += 5){
analogWrite(6, value);
delay(1000);
}
for (value = 255; value >= 0; value -= 5) {
analogWrite(6, value);
delay(1000);
}
}
А про пять раз уже интересно...
БП, я полагаю трансформаторный, не импульсник?
Каково напряжение БП без включенной лампы и с включенной? Велика ли просадка, и нет ли ощутимых пульсаций по питанию?
Просто чатота ШИМа у дуни около пятиста герц.. а при недостаточной фильтрации на выходе получаем пульсации в 100 герц..
Как раз примерно пятикратная разница..
Проверьте правильность питания вашего устройства..
А в скетче добавляйте по единице, просто с меньшим дилеем.. чтоб уменьшить ступени в регулировании яркости..
ОК, ещё раз перепроверю ... отпишусь. Есть подозрение на мосфетный транзистор. Вроде как из-за малого сопротивления он постоянно перезаряжается и работает как импульсный кондер. Накопил энергию - выпустил, снова накопил и т.д. Напряжение и ток не велики, до 50V и ток до 4 ампер с запасом (полевик на 25А рассчитан) (в реале до 1,5-2А макс.).
Может попробовать обычный биполярный транзистор с линейным регулируемым (по базе от 1 до 5 вольт) выходом? Какой можете посоветовать?
полевик на 25А рассчитан
-- исходя из даташита, на указанный вами транзистор, он расчитан на 42А при 25С и на 30А при 100С, а наличие столь мощного ключа не проходит бесследно, сильно растет емкость гейта, а для бездрайверной схемы это тоже может быть критичным.
Какой можете посоветовать?
-- да по сути собери составной n-p-n транзистор из практическии любого маломощного , и в пару к нему большей мощности на подходящий ток... Включай по схеме с общим эмиттером, а в базу ему токозадающий резистор ом на 100-200.. и все..
На пятиста герцах оно по любому работать будет без проблем.. Токи и напряжения рабочие тоже довольно смешные..
Вроде как из-за малого сопротивления он постоянно перезаряжается и работает как импульсный кондер. Накопил энергию - выпустил, снова накопил и т.д.
Полевик работает подобно конденсатору, конечно))) Но с другой логикой работы, вы почитайте как именно он работает, скорее всего пригодится.. В сети куча статей на этут тему, в том числе и очень даже здраво и интересно написанных..
Подскажите, правильно ли я делаю?
Между выходом ардуинки (выход D6) и базой полевика расположен резистор на 550 Ом (реально 544 Ома с учетом погрешности). Правильно ли это или можно обойтись без резистора, ведь затвор управляется не током, а напряжением, и поэтому токоограничивающий резистор не нужен ... ток через затвор не идет.
управляется напряжением, но кондесатор входной емкости никто не отменял. он есть и никуда не денется. если бы не этот конденсатор цены бы полевикам не было. сразу напрямую к мк можно было бы цеплять по 10-20 полевиков по 50-100А и охреневать от мощности
да ток ограничивается потому что конденсатор заряжается и разряжается постоянно, и если резко подать на конденсатор напряжение ток заряда в начальный момент будет только ограничен сопротивлением проводников. это сопротивление и увеличиывают чтобы порты не дохли
много где пишут, что в данном случае резистор там стоит не для полевика (ему он нафиг не нужен), а для защиты пинов МК от обратных бросков тока.
Незнаю насколько это соответствет действительности.
много где пишут, что в данном случае резистор там стоит не для полевика (ему он нафиг не нужен), а для защиты пинов МК от обратных бросков тока.
Незнаю насколько это соответствет действительности.
если есть емкость (а она там есть), значит есть реактивная составляющая – вот от нее и защищает транзистор. Плохое влияние реактивки давят током т.е. ставят драйвер рисунок 6 и 7
В общем, сгорел у меня полевик IRLR2905 из-за перегрева ... гонял на циклах увеличения/уменьшения ШИМ. Пришлось провести замену и поставить небольшой радиатор. Хорошо хоть не взорвался ...
Теперь вопрос. Какой транзистор использовать: низкочастотный или высокочастотный, и можете привести пример таких транзисторов что бы не блукал долго по даташитам? Частота ШИМ врое бы стандартная в 490 Гц.
Сейчас использую биполярный транзистор 2SC4408, но он тоже греется ...
IRLZ44 - у них меньше емкость затвора и можн подключать затвор через резистор 200-400 Ом к Arduino
Теперь вопрос. Какой транзистор использовать: низкочастотный или высокочастотный, и можете привести пример таких транзисторов что бы не блукал долго по даташитам? Частота ШИМ врое бы стандартная в 490 Гц.
чем выше частота, тем ниже емкость (не совсем так, есть там НО) нагрев происходить в момент переключения, нужен хороший фронт управляющего сигнала, значит нужен ТОК, давить емкость. Решение: поставить драйвер. Какой? - биполярник по обычной схеме ОК. R коллектора =U/I =5/0.1…ххх = 50-150 Ом и 50-100 Ом в затвор – не самый лучший вариант…
вот видео 1м:20с – нужная инфа, только там нужен сопрот от сквозного тока, который нужно подбирать (уменьшать от 50 Ом и параллельно ему кондер, не электролит )
UPD забыл совсем , необходимо смотреть напряжение полного открытия для полевика, примерно 7 вольт, от 5 он не полностью открывается (обычно, нужно листать даташит) вот и нагрев прет.
Подскажи пару таких, если сможешь. На какой параметр обращать внимание? Как он правильно называется? V(GS)?
Подскажи пару таких, если сможешь. На какой параметр обращать внимание? Как он правильно называется? V(GS)?
IRLZ44 - у них меньше емкость затвора и можн подключать затвор через резистор 200-400 Ом к Arduino
FIG-3 говорит что ему 5 В достаточно, 3В хватает 10А пропустить. Tomasina толково посоветовал.
Кт 3102 и 3107 можно попробовать для защиты поставить – их не жалко, и по 100-200 Ом в затвор.
В схеме будет использоваться максимум 3-4 ампера, частота генерации ШИМ ~500 Гц и питание ... какое напряжение используется при ШИМ? Уж не 5В? Изменяется только скважность импульсов. Если смотреть FIG-3, то открытие транзистора будет при 1-2В.
Получается амплитуда напряжения 5В, частота генерации ~500 Гц с изменяемой скважностью?
С частотой ШИМ на ардуино будет ли транзистор (IRLZ44) согласовываться?
На сайте cxem.net есть схема управления нагрузкой. Привожу рисунок (собирал по правой схеме):
На ардуино использую в качестве ШИМ выход № 6. Может в этом проблема?
Вот такая моя схема:
https://yadi.sk/i/-bB1eDpPkiBx8
Нагрузка - лампа с током потребления 0,7А.
На выходе прибора постоянное напряжение 12 вольт.
Если подключаю к нагрузке обычный светодиод на 12 вольт (диам. 10 мм), то он работает нормально по ШИМу. Если присотреться, то можно заметить частотную составляющую.
Если подключить лампу с потреблением 0,7А, то мерцание очень заметно. Частота около 10 Гц.
sezam, вы так и не написали от чего всё это питаете. Хотя с этого нужно было начать.
Обычный блок питания на 5В 1.5А.
Обычный блок питания на 5В 1.5А.
схема нормальная, если подключено все верно - должно работать.
вероятно, нужен отдельный БП 5В для ардуино, и отдельно для нагрузки. Общий провод объединить.
выложите весь скетч - вот как это сделать ПРАВИЛЬНО
UPD, добавьте к вашей схеме полностью разводку по питанию, что, откуда, куда...
Питание ардуинки: обычный блок питания на 5В 1.5А
Питание нагрузки отдельное, от внешнего прибора: 12В 1.0А
Программный код:
Программный код:
......
а где инициализация? объявление переменных? - это секрет?????
так я Вас уверяю - все вы сделали правильно! и схема рабочая, и собрано правильно, и питаете тоже правильно - раздельно! и все у вас работает - остальное вам кажется...
Да никакого секрета нет.
Да никакого секрета нет.
скажем, так... если это весь код, то вообще не понятно как он работает, сейчас у меня нет времени с ним возиться... попробуйте выкинуть программу из сетапа и нужное положить в луп. Строго говоря это не код а недоразумение или просто вам необходимо почитать это и это
попозже попробую помочь...
Питание ардуинки: обычный блок питания на 5В 1.5А
Питание нагрузки отдельное, от внешнего прибора: 12В 1.0А
Лампа с током потребления 0,7 ампера потребляет 0,7 только после того как разгорится. В момент включения она может вызвать скачёк тока до нескольких ампер. Если БП импульсный, то в момент скачка он может уходить в защиту и отключать питание на доли секунды, потом снова включаться, и этот процесс будет повторяться бесконечно пока стартовый ток не станет ниже допустимого.
эм, вы в обработик прерывания засунули две задержки по 0,5 сек?
В том-то и дело, что на прямую от прибора лампа нормально работает без перезапусков и миганий.
Померил напругу на затворе полевика. Дергается (при мигании лампы) в пределах от 2.3 до 2.5В. На граничных показателях открытия полевика. При "полном" открытии (граница 255) выдает 4.7 - 5.0В.
Tomasina Да, последовательно, т.к. прерывание срабатывает раз в 5 сек. Если код изменить вот так
Ситуация не изменится. Граничные состояния (0 и 255) будут работать нормально, а внутренние - мигать.
Полевики IRLZ44N купил. Вечером буду пробовать. Может всё дело в них.
В том-то и дело, что на прямую от прибора лампа нормально работает без перезапусков и миганий.
Этот факт ничего не доказывает и не опровергает. Попробуйте с более мощным БП, хотя бы со стандартным комповым atx.
Светодиод питается от источника тока, у которого напряжение на выходе может меняться от 3В до 10В, при этом он выдает стабильно ток 350мА. т.е эквивалентное нагрузочное сопротивление в пределах от 8 Ом до 28 Ом. За этим диапазоном вместо постоянного тока - частотный импульсный режим.
может поэтому и моргает, что источник тока все время пытается исправить влияние ШИМ?
В том-то и дело, что на прямую от прибора лампа нормально работает без перезапусков и миганий.
Померил напругу на затворе полевика. Дергается (при мигании лампы) в пределах от 2.3 до 2.5В. На граничных показателях открытия полевика. При "полном" открытии (граница 255) выдает 4.7 - 5.0В.
чем измеряли? вольтметром? постоянкой или переменкой? вольтметр вообще не покажет ничего нормального - ну максимум среднеквадратичное значение, которое не есть истинное в данном контексте.
вот только при максимальном открытии и можно "чего-нибудь" вразумительное увидеть.
ЗЫ. снова не полный скетч выложили... где инициализация? где объявление переменных?
Гриша, см. пост 41: отработка даже такого примитивного скеча - не срабатывает правильно.
Измерял вольтметром.
Пост 43 - ответ производителя.
Светодиод питается от источника тока, у которого напряжение на выходе может меняться от 3В до 10В, при этом он выдает стабильно ток 350мА. т.е эквивалентное нагрузочное сопротивление в пределах от 8 Ом до 28 Ом. За этим диапазоном вместо постоянного тока - частотный импульсный режим.
То вы пишете про лампу 0,7а , теперь откуда то светодиод объявился! Яркостью светодиода, включенного через стабилизатор тока нельзя управлять тупо коммутируя питание драйвера.
Питание ардуинки: обычный блок питания на 5В 1.5А
Питание нагрузки отдельное, от внешнего прибора: 12В 1.0А
Лампа с током потребления 0,7 ампера потребляет 0,7 только после того как разгорится. В момент включения она может вызвать скачёк тока до нескольких ампер. Если БП импульсный, то в момент скачка он может уходить в защиту и отключать питание на доли секунды, потом снова включаться, и этот процесс будет повторяться бесконечно пока стартовый ток не станет ниже допустимого.
Достаточно легко проверить…
Запускаем скетч со следующим лупом:
смотрим чего пишет в порт когда начинает мерцание
Гриша, см. пост 41: отработка даже такого примитивного скеча - не срабатывает правильно.
Измерял вольтметром.
Пост 43 - ответ производителя.
Пост 43 - вообще не будет работать в данном режиме включения, какая постаянная управления (тау драйвера) драйвера светодиодной ленты?
То вы пишете про лампу 0,7а , теперь откуда то светодиод объявился! Яркостью светодиода, включенного через стабилизатор тока нельзя управлять тупо коммутируя питание драйвера.
убивая светодиод импульсной накачкой выхода драйвера (зависит от регулирования тока, устройства драйвера)
В общем, надо такую схему: Источник напряжения ==> LED драйвер с ШИМ-управлением ==> Светодиод.