Arduino pro mini начинает странно работать после электромагнитного импулься
- Войдите на сайт для отправки комментариев
Всем привет,
Ардуино установлен в корпусе холодильника, к нему подключены две сенсорные кнопки, зуммер и один ШИМ-выход, питается от отдельного БП.
Всё работает нормально но до того момента, как компрессор холодильника отключается, достигнув нужной температуры.
Я изначально грешил на кабель, которым подключен ардуино, он 70см, но после серии тестов выяснилось, что ардуино глючит только когда в момент отключаения компрессора находится внутри корпуса холодильника.
Стоит его туть вытащить, так всё работает нормально.
Логика работы ардуино предельно простая, одна кнопка увеличивает % ШИМ, вторая уменьшает. При зажатии кнопки происходит плавное увеличение/уменьшение до предельного значения.
Так вот когда ардуино начинает глючить, то получается эффект одной зажатой кнопки.
Обрабатываю нажатие кнопок через прерывания:
pinMode(interruptPin1, INPUT_PULLUP); pinMode(interruptPin2, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(interruptPin1), up, CHANGE); attachInterrupt(digitalPinToInterrupt(interruptPin2), down, CHANGE);
Кнопки вот такие https://robotdyn.ru/catalog/modules/buttons-control/capacitive_touch_sensor_.html
Попробуйте убрать PULLUP, на входах прерываний, а притянуть внешним резистором на 1 кОм. Также эти же пины прерываний притяните к земле (или питанию - всё равно) конденсатором , например 100 или 220 nF.
Посмотрите, поможет ли.
Если не поможет, то хотелось бы увидеть осциллограммы момента выключения компрессора с конденсаторами и без.
Я бы предпположил, что глючит не ардуино, а глючит именно кнопка. Для проверки предложил бы в конце цикла поставить метку, которая моргнет светодиодом. Если цикл выполняется, значит с самой ардуино все в норме.
Между выводами 3 и 4 микросхемы есть кондер. Если увеличить его емкость, то чувствительность кнопки может упасть, но уменьшиться и чуствсительность к наводкам.
Я бы предпположил, что глючит не ардуино, а глючит именно кнопка. Можно ссылку, на модель кнопок? Для проверки предложил бы в конце цикла поставить метку, которая моргнет светодиодом. Если цикл выполняется, значит с самой ардуино все в норме.
К ардуино ещё зуммер подключен, озвучивает нажатие кнопок. И во время глюков он тоже пищит.
Попробуйте убрать PULLUP, на входах прерываний, а притянуть внешним резистором на 1 кОм. Также эти же пины прерываний притяните к земле (или питанию - всё равно) конденсатором , например 100 или 220 nF.
Посмотрите, поможет ли.
Если не поможет, то хотелось бы увидеть осциллограммы момента выключения компрессора с конденсаторами и без.
Да, я специально указал этот код, т.к. грешу на него. Попробую сделать так.
По поводу самого компрессора, может с ним можно что-то сделать, чтоб он меньше помех создавал, т.к. ардуино это только первый пробный шаг, в планах ещё модем sim800 поставить
EugeneVB, сделайте опрос кнопок без прерываний -с большой вероятностью проблема уйдёт.
Компрессор... во момент размыкания реле происходит импульс самоиндукции, напряжение его очень высокое. Если ты там был постоянный ток, было бы очень просто, а так, фильтр перед копмпрессором, представляющий из себя две катушки индуктивности, примерно как в компьютерных БП. Может поможет конденсатор включенный последовательно с резистором, подключенный ко контактам реле. Но проще защитить ардуино. Как, уже указано, все к земле.