Arduino Nano ESD выходит из строя, несмотря на меры защиты от электростатического разряда
Добрый день!
Я только что столкнулся с проблемой в своем проекте, в которой я сам больше не могу разобраться. Поэтому я надеюсь, что кто-то здесь сможет мне помочь...
Сначала, я пытаюсь заменить контроллер сплит-кондиционера после того, как его микроконтроллер сгорел. Идея довольно проста: три датчика температуры, три реле и VFD для внутреннего вентилятора. Добавьте к этому три кнопки и небольшой дисплей.
Система построена следующим образом:
Проблема, с которой я столкнулся, заключается в том, что добавление «обведенной» секции, состоящей из отдельной панели пользовательского интерфейса с тремя кнопками и OLED-дисплеем размером 128,64 пикселя, приводит к случайным зависаниям кода Arduino, но ТОЛЬКО если на секцию высокого напряжения подано питание.
Если дисплей не подключен, система работает нормально, даже если компрессор запускается и выключается. То же самое происходит, когда дисплей подключен, но напряжение в сети отключено (т.е. питание по USB)
Любопытно, что это происходит только с дисплеем, подключенным к экранированному и заземленному ленточному кабелю длиной 10 см, тогда как два датчика температуры прикреплены стяжками к основному проводу питания на длине почти пять метров.
Я уже пробовал обычные методы защиты от электростатического разряда. Добавление ограничивающих диодов в корпус UI, конденсаторов на переключатели для гашения любых индуцированных скачков тока и добавление пары резисторов с низким сопротивлением к шине I²C (еще не на схеме). Весь кабель, соединяющий корпус UI с Arduino, экранирован изнутри, а также отдельной обмоткой из прочной алюминиевой ленты.
Высоковольтные и низковольтные секции схемы полностью разделены реле, системная земля, заземление экрана, заземление шасси и заземление сети закорочены. Arduino подключен только через один из своих контактов GND, поэтому никакое внешнее питание не может проходить через его заземляющую плоскость.
Тем не менее, как только подключается раздел пользовательского интерфейса, Arduino зависает, пока сторожевой таймер не сбросит его некоторое время спустя, а затем это повторяется через несколько минут.
На данный момент я перепробовал все, кроме обновления до настоящего контроллера ПЛК, и поэтому был бы очень признателен за любую помощь или советы по этой проблеме...
Вот снимок установки (я знаю про Wagos, но мне надоело каждый раз откручивать провода):
А это раздел пользовательского интерфейса с температурой, кнопкой температуры и питания, а также дисплеем:
Совет по безопасности: я сертифицированный электрик IT-систем с разрешениями на работу с хладагентами. Не убивайте себя проектами, связанными с сетевым напряжением
@TPoE, 👍0
1 ответ
Лучший ответ:
Итак... Я наконец-то разобрался. Потратив почти два дня на отладку этого странного случая, оказалось, что мой Arduino, по-видимому, сломался.
На короткое время я подключил Nano к ESP8266 с выходным расширением PCA9685 и сдвигателями уровня, чтобы попытаться выяснить, давал ли мне USB-кабель, который я подключил во время программирования, ложные показания при использовании последовательного порта для отладки. С этим ESP8266 все работало безупречно.
Затем мне стало интересно, с какими еще платами он будет работать, и я попробовал Arduino Leonardo (Atmega 32u4), а затем и сторонний Uno, который тоже работал.
Я был довольно удивлен, увидев, что это работает с тем, что по сути было просто Nano на большой плате. Подозревая нечестную игру со стороны моего старого Nano, я заказал замену, которая прибыла сегодня.
С той же программой и проводкой все работает безупречно, работая часами без сбоев.
Так что либо у меня все это время был сломанный контроллер, либо новый, который я купил, — это удачный чип, который лучше справляется с помехами, чем старый.
Теперь у меня в корзине с деталями есть Arduino nano с надписью «Не используйте I2C»
Я от всего сердца благодарю всех присутствующих за помощь!
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
- Arduino nano как клавиатура HID
- Как я могу запитать Arduino Nano от батареи LiPo, желательно 3,7 В
- В чем разница между библиотеками Software Serial? Какая из них совместима с Arduino Nano?