ШИМ шумит
- Войдите на сайт для отправки комментариев
Вс, 11/08/2019 - 02:15
Есть задача - пищит блок питания при шимировании, бесит ужасно! ))
Реализованно на ардуино про мини и на esp 8266 - пищит и там и там.
Тому, кто поможет решить проблему - перевод на карту 3 000 р. или 5 000 если решим проблему на обоих устройствах. По железу реализация простая, контроллер + мосфет по стандартной схеме (индуктивность в цепь вставлял, практически не помогает)
Код:
#define MIN_LIGHT 0 #define MAX_LIGHT 255 #define ledPin 9 //управл¤ющий пин мосфета холодный свет #define movePin 10 //пин датчика движения //блок с константами int pwmLevel=0; //значение ¤ркости холодного света static unsigned long time_fade; //счетчик времени static unsigned long time_fade_ligth; //счетчик времени для холодного света static unsigned long next_time; bool flag_ligth = 0; bool flag_power = 0; //флаг включени¤ int timeout = 30000; // время свечения void setup() { pinMode(ledPin, OUTPUT); } void loop() { //автоматика if(flag_power==0) { if(digitalRead(movePin)) { next_time = millis() + timeout; // вычисляем время выключения } if(millis()>= next_time ) // если текущее время превысило намеченное время, то { ChangeLevel(MIN_LIGHT); } else { ChangeLevel(MAX_LIGHT); } } } void ChangeLevel(int new_value) { if(new_value!=pwmLevel) { if(millis()>time_fade) { if(new_value-pwmLevel>0) { pwmLevel++; pwmLevel = constrain(pwmLevel, MIN_LIGHT, MAX_LIGHT); analogWrite(ledPin, pwmLevel); time_fade=millis()+20; flag_ligth=1; } else { pwmLevel--; pwmLevel = constrain(pwmLevel, MIN_LIGHT, MAX_LIGHT); analogWrite(ledPin, pwmLevel); time_fade=millis()+30; flag_ligth=0; } if(pwmLevel==MAX_LIGHT && flag_ligth==1) { analogWrite(ledPin, MAX_LIGHT); } if(pwmLevel==MIN_LIGHT && flag_ligth==0) { analogWrite(ledPin, MIN_LIGHT); } } } }
По железу реализация простая, контроллер + мосфет по стандартной схеме (индуктивность в цепь вставлял, практически не помогает)
Код:
схему рисуйте, у меня третий глаз заболел - ничего не видит...
1 пищит при какой яркости - максимальная, промежуточная или минимальная? Зависит-ли частота писка от яркости?
2 Каковы мощности БП и нагрузки?
3 Одной индуктивности недостаточно частота ШИМ достаточно низкая - нужно еще и емкости по питанию ставить, в непосредственной близости от нагруки.
1 пищит при какой яркости - максимальная, промежуточная или минимальная? Зависит-ли частота писка от яркости?
2 Каковы мощности БП и нагрузки?
3 Одной индуктивности недостаточно частота ШИМ достаточно низкая - нужно еще и емкости по питанию ставить, в непосредственной близости от нагруки.
пытаетесь угадать схему :))))))))) ну удачи, может повезет :)
про себя я в таких случаях говорю (если угадал) - у дураков мысли совпадают.... :)))))))))
пытаетесь угадать схему :))))))))) ну удачи, может повезет :)
А что ее угадывать? По скетчу все видно - на 9 пин-мосфет, 10 пин следит за датчиком движения. К этому нет претезий. А вот качество блока питания, вызывает подозрения. Или он на грани, по мощности, или просто сделан халтурно. И выходной дроссель работает в качестве динамика. Во втором случае можно еще бороться. А в первом-только менять.
FDV - пять лет ардуино занимаетесь, а не знаете что частоту ШИМ выбирать надо?
И никаких дросселей и кондеров ставить не нужно - этим вы только убьете регуляяцию. Просто выведите Шим за пределы звукового диапазона, это описано в куче статей в гугле
FDV, для Шим на пине 9 добавьте в setup() две следующие строчки:
TCCR1A = TCCR1A & 0xe0 | 1;
TCCR1B = TCCR1B & 0xe0 | 0x09;
Это для атмеги328. Если шум пропадет - с вас магарыч
Это если мы слышим частоту ШИМ, а если блок питания работает на грани срыва? ТС пока внятно не объяснил, что за шум и в каких случаях его бесит. Если шумит и при полной яркости, то ШИМ здесь ни при чем.
Это если мы слышим частоту ШИМ, а если блок питания работает на грани срыва? ТС пока внятно не объяснил, что за шум и в каких случаях его бесит. Если шумит и при полной яркости, то ШИМ здесь ни при чем.
ну пусть попробует, две строчки в код добавить недолго. А вдруг повезет :) на кону 3 тыр
Это если мы слышим частоту ШИМ, а если блок питания работает на грани срыва? ТС пока внятно не объяснил, что за шум и в каких случаях его бесит. Если шумит и при полной яркости, то ШИМ здесь ни при чем.
Я в чудеса не верю. Кому-то может и повезет (Шум от ШИМа, бесить небудет).
Прошу прощения только добрался до форума.
Ардуино занимаюсь в свободные крохи времени, поэтому сложно над каждой задачей ломать голову месяцами (по 5 мин в неделю )) )
Блоки питания разные все, один от системника. Качество блока влияет только на громкость, нагрузки от 20 до 100Вт.
Шум слышен на промежуточных отрезках - при полном заполнении (100%) тишина. Как правильно заметили, это влияние на уровне частоты слышимости и решение дросселями с емкостями не спасет - эффект плавного включения и выключения пропадает (да и на 100 ватах страшновато индуктивностями баловаться)
"TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x09;"
а для леонардо ? ;) - (есть только они и проверить проще всего на них)
и может есть что то подобное для esp8266?
Похоже не видать мне премии :) ТС получил ответ и пропал
Где пропал? )))
Тут я, задал уточнение выше ;)
Сорри, не увидел. Конечно, для Леонардо и для Есп тоже есть подобное. Но вы в первом сообщении просили для про мини : то есть для атмеги328. А теперь по ходу меняете условия:)
Может попробуете вариант для обычной ардуины который я уже дал, чтоб понимать, пропадает шум или нет - и стоит ли для других МК подбирать?
Моя вина - ошибся в названии. (для 328 решение я конечно сам видел, в инете полно) У меня про микро на леонардо, и необходимо найти решение именно для них (по всей кваритире навешаны) дороже менять получится
или для esp (их у меня 2 десятка)
Моя вина - ошибся в названии. (для 328 решение я конечно сам видел, в инете полно)
для леонардо точно так же в инете полно.
Желательно ещё на транзисторы драйвер затвора сделать, если он отсутствует.
Простейший - взять 555й таймер (8ногую микросхему с цифрами 555 на корпусе), выводы 1, 2 - минус (общий), 8, 6 - плюс 12 В, 4й вывод вход (в PWM выход), 3й вывод через резистор 56 Ом на затвор. В непосредственной близости от микросхемы - керамический конденсатор 0.1 мкФ а лучше 1 мкФ.
поменять на
Нужно конечное решение с моим кодом, времени у самого реально нет разбираться ((
Нашел это: http://r6500.blogspot.com/2014/12/fast-pwm-on-arduino-leonardo.html может поможет )
взять оттуда то, что нужно и вставить в мой код
Магарыч ждет того, кто полноценно решит задачу - от слова не отказываюсь (не в обиду, но отсылок в интернет недостаточно)
Спасиб, посмотрю что это такое "Простейший - взять 555й таймер "
пока непонятно чем он поможет..
Простите, но когда вы сначала типа "ошиблись в плате", а потом пропали на неделю, теперь как не особо хочется вам верить. И с одной стороны, вроде две строчки настройки таймера не стоят три тысячи, но с другой эту сумму предложили Вы сами, за язык никто не тянул. Так что как-то некрасиво выглядит и я лучше ограничусь отсылкой в инет.
Я же писал, у меня проблема со временем, работы по горло. И не "типа" - я реально ошибся ))
Мне не жалко, но не за 2 строчки того что не нужно. Или вы ждете 3000 на те две строчки не к тому контроллеру....?
Предлагаю вернуться к конструктивному обсуждению. Все уточнено, я даже нашел и дал ссылку на возможное решение.
Если решим задачу, за мной выполнение слова.
Ок, посмотрю ночью, если найду решение напишу
FDV - для пина 9 на Леонардо добавьте в Сетап:
а на ЕСП8266 вообще все просто - для ЕСП есть готовая функция для настройки ШИМ
диапазон допустимых частот - от 100 до 40000 Гц
отлично, завтра проверю - отпишусь!
ESP переклинило, нужно думать.....
Ардуина вроде перестала шуметь - проверил на малой нагрузке (раньше еле слышно но пищала, сейчас тихо), на большой проверю в ближайшие дни, нужно спаять дублер существующей - думаю заработает )))
Чота непонятно, исключили блок питания? Он так то тоже имеет свойство при некоторых условиях хрипеть/свистеть/пердеть и т. п. Там такой звук, похожий чем-то на шарканье щёткой/тряпкой по листу металла.
Да, проверял на нескольких разных БП. Звук - писк, громкость и частота напрямую зависят от уровня ШИМ.
FDV - для пина 9 на Леонардо добавьте в Сетап:
Короче на малой нагрузке и с простым БП в одной комнате перестал пищать - это радует!
На кухне стоит БП от компа и нагрузка побольше, писк слышен, но вроде потише.
А еще повысить частоту возможно? Кстати с этим кодом она какая?
Сам БП может уже уставший... пока нет замены, может на выхи заменю на новый.
С ESP при плавном разгорании вспышками и дергано нарастает, нужно разбираться
И еще - прошу номер карты в личку (или по номеру тел.) - слово держу ;)
Короче на малой нагрузке и с простым БП в одной комнате перестал пищать - это радует!
На кухне стоит БП от компа и нагрузка побольше, писк слышен, но вроде потише.
А еще повысить частоту возможно? Кстати с этим кодом она какая?
Скорее всего это означает, что писк не от ШИМ, поскольку с этими параметрами частота должна быть 62 КГц(при частоте такта 16 МГц) - много выше порога слышимости. Это максимум, выше поднять нельзя.
К сожалению, вживую проверить не могу, Леонардо под рукой нет.
С ESP при плавном разгорании вспышками и дергано нарастает, нужно разбираться
В работоспособности этой функции в ЕСП я не уверен, попробую сам потестировать, если получится - напишу.
И еще - прошу номер карты в личку (или по номеру тел.) - слово держу ;)
лички тут нет, можете написать мне на ded собака cur-ex.ru
Проверил осцилом установку частоты ШИМ на ЕСП8266 (NODEMCU v 0.9) функцией
при f от 1 КГц до 20 КГц частота меняется, цифры выше 20 КГц на моей плате не работают - просто игнорируются и все.
Магарыч ушел b707 ;) прошу подтвердить получение.
Исследования продолжу в выходные!
Полностью подтверждаю, FDV держит слово, респект!
Проверил осцилом установку частоты ШИМ на ЕСП8266 (NODEMCU v 0.9) функцией
при f от 1 КГц до 20 КГц частота меняется, цифры выше 20 КГц на моей плате не работают - просто игнорируются и все.
Привет!
Перебрал все частоты до 20 000 - тот же эффект +\- яркость регулируется со скачками, свист коррелирует с яркостью. похоже эта настройка для аналогового пина esp
Я использую пины 4 и 5 - может на них не действует настройка шим...?
(у меня wemos d1 mini) разницы у них нет - все esp12e
На всякий случай сам скетч
там 2 контура света и упревление включением БП. Яркость задается командой с сервера.
На всякий случай сам скетч
FDV, не нашел в этом коде настройки частоты PWM