Реле и Arduino: схема подключения модуля KY-019, скетч и техника безопасности
Реле — это выключатель, которым управляет не палец, а электромагнит. Подаёте ток на катушку, внутри щёлкает якорь и замыкает контакты. Смысл в том, что цепь управления и цепь нагрузки полностью развязаны: пятивольтовая плата спокойно включает лампу на двести двадцать вольт и электрически с ней никак не связана.
Голое реле к плате не подключают: катушке нужно больше тока, чем даёт пин, а в момент отключения она выдаёт всплеск напряжения, способный убить микроконтроллер. Поэтому берут готовый модуль — на нём уже стоят транзистор, защитный диод и светодиод индикации. Ваша задача сводится к трём проводам.
Схема подключения
Распиновка
| Провод | Куда и зачем |
|---|---|
| S (сигнал) | Любой цифровой пин. В примере седьмой. |
| + (VCC) | Питание 5 В. |
| − (GND) | Земля. |
| COM | Общий контакт силовой цепи — сюда заходит провод от источника. |
| NO | Нормально разомкнутый. Замыкается на COM, когда реле включено. Обычный режим для нагрузки. |
| NC | Нормально замкнутый. Соединён с COM, пока реле выключено. |
Характеристики
- Коммутация переменного тока
- до 250 В, 10 А
- Коммутация постоянного тока
- до 30 В, 10 А
- Напряжение катушки
- 5 В
- Ток катушки
- около 70 мА на канал
- Ресурс контактов
- около 100 000 срабатываний под нагрузкой
Работа с сетевым напряжением
Силовая сторона модуля — это настоящие двести двадцать вольт, а не учебная схема. Все соединения делают при полностью обесточенной цепи: вилка вынута, а не выключатель щёлкнут. Проверять пальцем «а есть ли там напряжение» нельзя ни при каких обстоятельствах.
Разрывать нужно фазный провод, а не нулевой: если разорвать ноль, на выключенной лампе всё равно останется фаза. Клеммы модуля рассчитаны на десять ампер, но дорожки на дешёвых платах — заметно меньше, поэтому чайник или обогреватель через такой модуль включать не стоит.
Если сомневаетесь — начните с безопасного: светодиодная лента на двенадцать вольт или моторчик от батарейки. Схема получится та же, а цена ошибки несравнима.
Библиотека
не нужна— Модуль управляется обычным digitalWrite. Всё, что нужно, — помнить про возможную инверсию сигнала.
Готовый скетч
const int RELAY_PIN = 7;
// У многих модулей вход инверсный: реле включается НИЗКИМ уровнем.
// Поставьте true, если ваш ведёт себя наоборот.
const bool ACTIVE_LOW = false;
void relayOn() { digitalWrite(RELAY_PIN, ACTIVE_LOW ? LOW : HIGH); }
void relayOff() { digitalWrite(RELAY_PIN, ACTIVE_LOW ? HIGH : LOW); }
void setup() {
pinMode(RELAY_PIN, OUTPUT);
relayOff(); // сначала выключаем, потом объявляем выходом
}
void loop() {
relayOn();
delay(5000); // пять секунд включено
relayOff();
delay(5000); // пять секунд выключено
}Скетч собирается arduino-cli под Arduino UNO
Обратите внимание на порядок в setup: сначала задаём выключенное состояние. Иначе в первые миллисекунды после подачи питания пин болтается в неопределённом состоянии и реле успевает щёлкнуть.
Частые ошибки
Реле работает наоборот
Половина модулей на рынке инверсные: единица их выключает, ноль включает. Это не брак. Поменяйте ACTIVE_LOW в скетче и не переделывайте схему.
Щёлкает при включении и при загрузке скетча
Пока плата стартует или прошивается, выводы находятся в неопределённом состоянии. Для инверсных модулей помогает подтяжка сигнального провода к питанию резистором на 10 кОм.
Плата перезагружается в момент щелчка
Катушка при срабатывании даёт бросок тока. Один модуль плата обычно тянет, но при нескольких каналах или питании от слабого USB напряжение проседает. Лечится отдельным источником пять вольт с общей землёй.
Нагрузка подключена не к тем контактам
Провод от источника всегда идёт на COM. Второй провод — на NO, если нужно «выключено по умолчанию», и на NC, если наоборот. Подключать нагрузку между NO и NC бессмысленно: эти контакты между собой никогда не соединяются.
Контакты подгорели за неделю
Индуктивная нагрузка — насос, компрессор, мотор — искрит в момент разрыва. Для такой нагрузки берут реле с запасом по току или ставят снаббер-цепочку параллельно контактам.
Что понадобится
- Модуль реле KY-019 (одноканальный, 5 В)
- Arduino UNO
- Провода «папа-мама»