• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Сглаживание программного PWM сигнала.

pazyzy

New member
Добрый день.
Подскажите, можно ли как-то сгладить выдаваемый pwm сигнал с esp8266?
Прошивка NodeMCU. Частота 1000.
pwm реализован програмно, и когда процессор чем-то занят (у меня это происходит иногда при получении сообщений из очереди mqtt или опроса датчиков bmp280 и dht22, или при отправке сообщения в очередь, но когда точно - неизвестно), я замечаю что с pwm что-то не то.
pwm управляет схемой, которая управляет скоростью вентилятора.
Осциллографа нет, сужу по звуку вентилятора.

Задача: сгладить скачки или проседании/скачке pwm сигнала на 1-2 секунды. Если из-за этого вентилятор будет откликаться на 2 секунды позже - не проблема.

Конденсатор поможет? Если да, то какие параметры?

Спасибо.
 

Jury_78

New member
Если по простому - нужна RC цепь. Постоянная времени цепи определяется произведением R*C. Резистор 100 Ом и конденсатор 10000 мкф, дадут постоянную времени в 1 сек. Если ток потребления не большой, то резистор можно увеличить, а конденсатор уменьшить и обратно - если наоборот. Какая нужна Вам постоянная времени без данных определить трудно, пробуйте.
 

pazyzy

New member
Нашлось время и я опять возвращаюсь к этой теме.
Ток потребления 0.05 мА, иногда при включении китайский мультиметр показывает скачек до 0.3мА.
Т.е. ток очень небольшой.

Спасибо за совет. Я прочитал описание что такое RC цепь, как ее рассчитать и какие параметры нужно менять, но не нашел формулы расчета возможной емкости конденсатора (или его крайних значений) от потребляемого тока, чтобы определить что такое "ток потребления небольшой", и на сколько можно уменьшить конденсатор.

Сейчас больше 220uF у меня конденсатора нету, поэтому попробую воткнуть его и резистор на 10кОм.
 

Сергей_Ф

Moderator
Команда форума
не нашел формулы расчета возможной емкости конденсатора (или его крайних значений) от потребляемого тока,
Просто считайте нагрузку как R2 во второй R2C цепи и считайте по той же формуле. Только помните, что R первой цепи должен быть значительно меньше R2 - т.е. нагрузки.
 

pazyzy

New member
Попробовал, реализовал, не понравилось.
Проседание напряжения было около секунды. Пробовал подобрать конденсатор и резистор, но при экспериментах с фильтром небольшое изменение напряжения все равно присутствует. А так как это значение для вентилятора граничное (при небольшом уменьшении он сразу начинает работать в неправильном режиме), то изменения быть не должно.
Поэтому решил вопрос с помощью вынесения управляющего PWM за пределы ESP.
Написал скетч для ATTiny13a, который слушает ногу ADC и выдает такое же напряжение в другую ногу, если сигнал был стабильный в течении двух секунд.
Ногу ADC через резистор 10kOm подтянул к земле. Все работает как часы :)

Понимаю, что можно передавать цифровое значение с ESP на ATTiny, но это уже следующий этап.
Всем спасибо за советы.
 
Сверху Снизу