Сценарий знакомый: вы подключаете реле, загружаете скетч, всё работает … и в момент включения реле Arduino внезапно перезагружается. Иногда — только первый раз. Иногда — случайно. Иногда — всегда.
Новички грешат на «плохой клон», опытные — на «наводки». На самом деле причина почти всегда электрическая, и она вполне объяснима.
Главная причина: просадка питания
Реле — это индуктивная нагрузка.
Когда его катушка включается, она:
- резко потребляет ток
- создаёт импульсный провал напряжения
- вносит шум в линию питания
Arduino же очень чувствительна к питанию, особенно:
- при питании от USB
- при использовании линейного стабилизатора
- при плохой развязке по земле
Если напряжение падает ниже порога brown-out, микроконтроллер просто честно делает reset.
Brown-out reset — тихий убийца проектов
В ATmega328P есть схема Brown-Out Detection (BOD).
Она следит за питанием и перезагружает MCU, если напряжение становится опасно низким.
Особенности:
- сброс может быть очень коротким
- светодиоды могут даже не погаснуть
- выглядит как «рандомный баг»
Особенно часто это происходит, если:
- реле питается от той же линии 5 В
- используется USB-питание от слабого источника
- длинные провода и тонкие дорожки

Вторая причина: выбросы от катушки реле
При выключении реле катушка создаёт высоковольтный выброс (закон Ленца никто не отменял).
Если:
- нет защитного диода
- диод стоит неправильно
- используется оптрон без диода
выброс летит:
- в питание
- в землю
- в управляющий пин
И снова: reset, зависание или странные глюки.
Третья причина: плохая земля (GND)
Очень частая ошибка — общая земля «где-то есть», но не там, где надо.
Проблемы возникают, если:
- реле и Arduino имеют общую землю через длинный провод
- по этой земле течёт ток катушки
- нет «звезды» по питанию
В итоге:
- земля «подпрыгивает»
- логические уровни плывут
- RESET-пин получает ложный импульс
Неочевидный виновник: RESET-пин
RESET у Arduino — очень чувствительный вход.
Если:
- рядом проходят силовые дорожки
- нет подтяжки
- длинные провода
- наводки от реле
краткий импульс — и микроконтроллер честно перезагружается.
Почему это часто происходит «через раз»
Потому что всё зависит от:
- момента включения
- текущего потребления
- температуры
- качества USB-источника
- длины проводов
Это не «мистика», а аналоговая реальность.

Что делать: практический чеклист
Правильное питание
- отдельный источник для реле
- DC-DC вместо линейного стабилизатора
- конденсаторы 100 нФ + 10–100 мкФ рядом с реле
Защита катушки
- диод параллельно катушке (обязательно!)
- правильная полярность
- лучше — быстрый диод (1N4148, UF4007)
Развязка
- оптрон с отдельным питанием
- транзисторный драйвер
- реле-модуль с нормальной схемой
Земля
- топология «звезда»
- минимизировать общий путь тока
- толстые провода для силовой части
RESET
- конденсатор 100 нФ на RESET
- короткие трассы
- не вести рядом с реле и силой
Почему «готовые реле-модули» иногда тоже подводят
Потому что:
- диод стоит, но далеко
- земля разведена плохо
- оптрон питается от Arduino
- стабилизатор не справляется
Не все модули одинаково полезны.
Итог
Arduino не перезагружается просто так.
Если это происходит при включении реле — значит, система честно сигнализирует:
«У тебя проблемы с питанием или помехами».
Это не баг Arduino.
Это урок схемотехники.
И именно такие проблемы превращают «скетч» в настоящий embedded-проект.