Замер времени работы электродвигателя. STM32, таймер...

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Замер времени работы электродвигателя. STM32, таймер...

Сообщение DataLife »

День добрый друзья. Может следовало бы написать в раздел ARM, но проблема прикладная, уже в железе и не особо работает так, как задумывается. И видится мне, что проблема не софтовая, но давайте по порядку.

Имеется электродвигатель на 220В (однофазный асинхрон, через конденсатор), управляемый внешней электроникой (реле), которая тут не играет роли. Питание убирается отключением сразу двух питающих проводов.

Имеется мой самопальный прибор, сердцем которого является STM32F103F6T6A.
К питанию самого электромотора подключена схема "детекции наличия питания" - 200к резистор - диодный мост - стабилитрон 5,6В - конденсатор 100мФ/50В резистор 100 Ом - оптопара PC817 -> и идём на ногу МК с таймером по захвату (Таймер_2). Подтяжка "вверх" (внутренняя) на ногу есть!

Внутри МК настроен и тикает ежесекундный таймер (Таймер_1). В Колбэке увеличивает значение переменной "counter_sec" (volatile).

Суть поближе: появляется питание на моторе - "детектор питания" оптопарой прижимает ногу МК на землю - включается таймер по захвату, где в колбэке я обнуляю counter_sec и выходим.
Ждём отключения мотора. Запускается колбэк по высокому фронту (подтяжка ноги) - смотрим на значение counter_sec и если оно меньше 5 (допустим мотор работал всего лишь 3 сек), то кидаем некий "флаг" и уже что-то делается в основном цикле.

Всё собрано в железе, на качественной ПП и протестировано на столе: вместо мотора - просто подаю питание на "детектор" через кнопку. Всё работает.

Но когда ставлю на мотор - происходят чудеса, закономерность которых мне не удаётся отследить: мотор работает около 14 сек (что уже за пределами 5сек) и при выключении, МК кидает флаг, что якобы он работал меньше 5 сек! Но не всегда...

То есть, происходит ложное срабатывание "захвата" с обнуление "счётчика".

Из мыслей только дребезг контактов реле, что включает электромотор...

Как софтово (лучше) или железом (хуже) побороть? Делать задержку в колбэке захвата - моветон ... Ставить триггер Шмидта - ПП не позволяет, максимум могу конденсатор впаять для "сглаживания"....
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Реклама
Аватара пользователя
Динозавр
Сверлит текстолит когтями
Сообщения: 1245
Зарегистрирован: Пн ноя 08, 2021 13:12:57
Откуда: 58С 58В

Re: Замер времени работы электродвигателя. STM32, таймер...

Сообщение Динозавр »

DataLife, ---PC817 -> и идём на ногу МК---
Керамический конденсатор 0,1-1 мкФ с ноги МК на общий провод (цифровой, питания непосредственно).
Защитит от помехи при Отключении Индуктивности двигателя, которая
проникает через паразитные ёмкости и индуктивные связи монтажа. :dont_know:
На контактах реле нужны искрогасящие RC цепочки.
Свежий взгляд из прошлого тысячелетия.
Реклама
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: Замер времени работы электродвигателя. STM32, таймер...

Сообщение DataLife »

Большое спасибо за ответ .

Почитал за гашение искр на реле при индуктивной нагрузке.
Спасёт ли отца русской демократии такой вариант решения?
Изображение
Чёрным - как есть сейчас. Красным - что предлагаю/могу сделать.

Или в таком случае работать RC цепочка не будет?
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: Замер времени работы электродвигателя. STM32, таймер...

Сообщение tonyk »

R4 не туда подключен.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: Замер времени работы электродвигателя. STM32, таймер...

Сообщение DataLife »

tonyk, понимаю, что нужно с другой стороны контакта реле. Просто так я могу всё уместить на плате, в противном случае нужно лезть в реле и мотор...

Кстати, добавил внешнюю подтяжку на ногу МК и конденсатор 0.33мкФ. Пока сбоев не было...
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Реклама
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: Замер времени работы электродвигателя. STM32, таймер...

Сообщение DataLife »

Друзья, вынужден поднять тему со дна археологии. Имеются новые глюки в работе того же устройства.

Схема выше в сообщении - детектор наличия питания 220 В:
R1-R2 = 100k
D1 = 5.6v
R3 = 100
С1 - 100 uF/50v
C2 = 0.33 uF
+ подтяжка сигнального провода к плюсу питания (3,3в) резистором 10к и + внутренняя.

Сам МК и прочая схема питается от такого БП (5v/700 мА) + 1117-3.3V:
Изображение

Сейчас прибор демонтирован от электромотора, опыты провожу на столе. Подача питания на "детектор" - кнопкой.
Суть нового глюка: при ВКЛЮЧЕНИИ питания "детектора" кнопкой (иногда, но не всегда) - проседает напряжение +5 Вольт на блоке питания! Влечёт это и проседание питания 3,3 Вольт (это вылечил более ёмким конденсатором после 1117-3,3). Особенно страдает модуль Блютуза (HC-06), который питается от +5. Он рвёт соединение.
Напряжение сети на входе БП не меняется при любых действиях. Пробовал ставить меньшую ёмкость в детекторе - С1 поставил на 22 мФ. Не помогло.
Пробовал отключать внутреннюю подтяжку в МК от детектора - не помогло.

Изображение
Кусок платы, с детектором и БП. Чего не было на плате, а сейчас на соплях - дорисовал.

Подскажите, пожалуйста, где я накосячил? ... Почему так ведёт себя устройство?

UPD1: замерил ток на входе питания самого устройства (220 Вольт) токовыми клещами. В момент включения "детектора" проскакивают броски тока до 1,8 А !!! И именно в такие моменты происходит сбой... Я так понимаю, это из-за зарядки конденсатора С1 "детектора", но можно ли его уменьшать ещё?

UPD2: сделал замер тока именно через кнопку "детектора" - ток там скромнее, но проскакивал 0,3 А (при 220 В). Связь на блютузе рвётся уже при скачке в 0,026А.
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Реклама
Аватара пользователя
Динозавр
Сверлит текстолит когтями
Сообщения: 1245
Зарегистрирован: Пн ноя 08, 2021 13:12:57
Откуда: 58С 58В

Re: Замер времени работы электродвигателя. STM32, таймер...

Сообщение Динозавр »

DataLife, ---проскакивают броски тока до 1,8 А---
Через искрогасящую цепочку (отключить)? Питающие провода тонкие (длинные, плохой контакт)- просадка?
Конденсатор электролит входной с большим ESR в БП ? :dont_know:
Свежий взгляд из прошлого тысячелетия.
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Re: Замер времени работы электродвигателя. STM32, таймер...

Сообщение DataLife »

Динозавр, входящий конденсатор имеет характеристики:
4,7 мкФ / 400v
ESR 7.9 Ом
Vloss 0.7%

Искрогасящих цепей нет. Провода 1,5 кв, длина на кнопку всего 10 см, общее питание 1,5 м.
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Ответить

Вернуться в «Практика»