Сбой в работе Arduino Nano с датчиком BMP280 и дисплеем 16х2

lc433
Offline
Зарегистрирован: 22.03.2020

Устройство на Arduino Nano питается от сдвоенной розетки через импульсный блок питания 5В 1А. Во вторую включается нагрузка иногда. При этом Ардуино начинает глючить: выдает всякие непонятные символы на экран. Лечится нажатием кнопки перезагрузки. Но вот вопрос, как защититься от радиопомехи, чтобы устройство не глючило?

Насколько я понимаю, свободные входы Nano и МК соответственно выполняют роль антенны. Или это тактовый генератор дает сбой при помехе. Вообщем, прошу вашего совета, как защититься от помехи, которая заставляет глючить микроконтроллер.

Это мой первый в жизни проект Ардуино. Поэтому прошу не смеяться, если вопрос глупый.

SLKH
Offline
Зарегистрирован: 17.08.2015

lc433 пишет:

Устройство на Arduino Nano питается от сдвоенной розетки через импульсный блок питания 5В 1А. Во вторую включается нагрузка иногда. При этом Ардуино начинает глючить: выдает всякие непонятные символы на экран. Лечится нажатием кнопки перезагрузки. Но вот вопрос, как защититься от радиопомехи, чтобы устройство не глючило?

Насколько я понимаю, свободные входы Nano и МК соответственно выполняют роль антенны. Или это тактовый генератор дает сбой при помехе. Вообщем, прошу вашего совета, как защититься от помехи, которая заставляет глючить микроконтроллер.

Это мой первый в жизни проект Ардуино. Поэтому прошу не смеяться, если вопрос глупый.

Скорее помехи лезут не по эфиру, а по питанию. см. гугл, "помехи по питанию".

Ещё, возможно, не хватает запаса по току у питателя.

rkit
Offline
Зарегистрирован: 23.11.2016

Все висящие соплями провода сократить и собрать в шлейфы.

lc433
Offline
Зарегистрирован: 22.03.2020

Тогда почему устройство глючит только от индуктивной нагрузки, в частности при включении трансформатора в сеть? От паяльника или фена программа не сбивается и глюков нет.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

lc433 пишет:

Устройство на Arduino Nano питается от сдвоенной розетки через импульсный блок питания 5В 1А. Во вторую включается нагрузка иногда. При этом Ардуино начинает глючить: выдает всякие непонятные символы на экран. Лечится нажатием кнопки перезагрузки. Но вот вопрос, как защититься от радиопомехи, чтобы устройство не глючило?

Насколько я понимаю, свободные входы Nano и МК соответственно выполняют роль антенны. Или это тактовый генератор дает сбой при помехе. Вообщем, прошу вашего совета, как защититься от помехи, которая заставляет глючить микроконтроллер.

Это мой первый в жизни проект Ардуино. Поэтому прошу не смеяться, если вопрос глупый.

А чего за нагрузка? Индуктивная? - тогда добавьте конденсатор к нагрузке. 0,47мкф например

SLKH
Offline
Зарегистрирован: 17.08.2015

lc433 пишет:

Тогда почему устройство глючит только от индуктивной нагрузки, в частности при включении трансформатора в сеть? От паяльника или фена программа не сбивается и глюков нет.

цепляй осциллограф на 5 вольт и смотри, что творится. 

пробить не слишком быструю 5-вольтовую логику по эфиру, конечно, можно, но вероятность меньше.

Ещё был такой совет: дай что-то определенное на неиспользуемые входы. Хуже не будет.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

lc433 пишет:

.... питается от сдвоенной розетки через импульсный блок питания 5В 1А. Во вторую включается нагрузка иногда. При этом Ардуино начинает глючить...

.....

Я может пропустил, или почистил кто, но так и не понял -что за нагрузка такая включается, что дуина глючить начинает? Это к вопросу о помехах.

А о том, что "Лечится нажатием кнопки перезагрузки" ум мой заключает, что не в помехах проблема, а в питании скорее всего. Но если БП импульсный, то может быть и то и другое. Что за нагрузка то такая секретная, что включается иногда?

lc433
Offline
Зарегистрирован: 22.03.2020

Обычный будильник с радио, у которого трансформаторное питание. Я его иногда выключаю, там внутри батарейка для памяти времени. И включаю паяльник например. А стоит только включить этот радио-часы-будильник в розетку обратно, так сразу глючит конструкция на Ардуино.

lc433
Offline
Зарегистрирован: 22.03.2020

То есть можно разобрать будильник и параллельно входу трансформатора 220В подключить конденсатор?

sadman41
Offline
Зарегистрирован: 19.10.2016

Какая-то квантовая запутанность налицо.

nik182
Offline
Зарегистрирован: 04.05.2015

В каждый девайс по конденсатору? Проще на питание +5 вольт ардуины повесить электролит на 100 и более мкф и параллельно керамику на 0.1 мкф как можно ближе к процессору. 

-NMi-
Offline
Зарегистрирован: 20.08.2018

lc433 пишет:

Обычный будильник с радио, у которого трансформаторное питание. Я его иногда выключаю, там внутри батарейка для памяти времени. И включаю паяльник например. А стоит только включить этот радио-часы-будильник в розетку обратно, так сразу глючит конструкция на Ардуино.

Значит купи себе удлинитель на большее количество розеток, ну шоп нивыключать будильнег, или раскури шо це есть вачдог. И фсё.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

lc433 пишет:

То есть можно разобрать будильник и параллельно входу трансформатора 220В подключить конденсатор?

Да никто не запрещает, можно. Только решит ли это проблему? В хороших ИБП стоят фильтры что по входу 230В (входное питание, чтобы в сеть помеха не лезла), что по выходу нужных напряжений - чтобы помехи в саму рабочую схему не вводить.

Есть с советских времен хорошие схемы блоков питания - на трансформаторах 50Гц. Там если и бывает помеха, то по НЧ и частотой 50-100Гц. И лечится как раз банальным фильтром из конденсатора.

lc433
Offline
Зарегистрирован: 22.03.2020

Дело не в питании. Сейчас запитался от USB и рядом потыркал в розетку этот будильник. Точно такой же глюк. Только я не могу понять, это микроконтроллер глючит или дисплей?

У меня похожая ситуация была с зарядкой на PIC16F877A, когда я MCLR не подключил к плюсу через резистор. МК просто сбрасывался периодически без всяких причин. От какого-то импульса в радиочастотном спектре.

А сейчас похожая история с Ардуино. Еще что заметил, если отверткой несколько раз коснуться среднего контакта потенциометра регулировки контрастности, то тоже иногда начинает глючить и выдает на дисплей непонятные символы.

Как хоть определить-то, это МК глючит или дисплей?

lc433
Offline
Зарегистрирован: 22.03.2020

Все свободные аналоговые контакты подключил на минус через резисторы 10 кОм. Результата никакого. Глючит также от включения будильника в сеть.

nik182
Offline
Зарегистрирован: 04.05.2015

Конденсатор на 470 мкф припаять прямо на плату на точки +5 и gnd пробывали? 1 мкф на ресет добавили?

lc433
Offline
Зарегистрирован: 22.03.2020

Вообщем, я пришел к выводу, что ни дисплей, ни Ардуино не виноваты в низкочастотных электромагнитных помехах и в глюках от этих помех. А все дело в библиотеке к дисплею. Потому что на Пик-контроллерах у меня такого глюка ЖКИ дисплея никогда не было. Очевидно, во Флоукод библиотека написана более грамотно.

Что я сделал? Посмотрев несколько видео на ютубе и почитав форумы, пришел к выводу, что HD44780 и любая Arduino совместно глючат от искр размыкания индуктивной нагрузки по соседству. И эта проблема обсуждается не первый год и ни на одном форуме.

Единственный выход ввести строчку инициализации дисплея в начало исполняемой программы, а не только в конфигурацию сетапа скетча.

Я решил это повторением строки: 

lcd.begin(16, 2);

каждые 5 секунд. Потому что команда lcd.clean() не работает.

Теперь любые глюки на дисплее появляются как и прежде от замыкания/размыкания индуктивной нагрузки, но они каждые 5 секунд очищаются и дисплей показывает нужную информацию.

lc433
Offline
Зарегистрирован: 22.03.2020

Ресет не трогал вообще. Он же атмегу перезапускает, а у меня с дисплеем проблемы, судя по всему.

nik182
Offline
Зарегистрирован: 04.05.2015

Любые глюки на дисплее возникают когда на линии E есть наводка. Других причин нет. Достаточно обычно нагрузить провод Е сопротивлением 1к , что бы все глюки исчезли. Помогает так же емкость в сотню пик. Программа не при чём.