
Интернет-магазин «Неглупый Дом»
Все предыдущие проекты на сайте с реле питали Arduino от USB или отдельного низковольтного блока питания, и только силовая часть реле касалась сети. Здесь HLK-PM01 питает саму Arduino напрямую от розетки 220В — получается цельный узел без внешнего адаптера, который можно спрятать в один корпус и просто включить в розетку.
HLK-PM01 — компактный AC-DC модуль с гальванической развязкой: внутри него высоковольтная сторона (220В) и низковольтная сторона (5В на выходе) физически разделены трансформатором или аналогичным изолирующим элементом, то есть между ними нет прямого электрического контакта — это принципиально отличает его от простых безтрансформаторных схем гашения напряжения резистором/конденсатором, где такой развязки нет и прикосновение к низковольтной части может быть опасно. Именно эта развязка делает такой модуль пригодным для питания логики, к которой человек может прикасаться — Arduino, дисплей, кнопки.
С точки зрения Arduino модуль HLK-PM01 — это просто источник 5В постоянного тока, как и любой другой: он подключается к пинам 5V/GND точно так же, как питание от USB. Вся разница только в том, что провода "до" этого модуля несут реальное сетевое напряжение, и именно эта часть схемы требует аккуратного монтажа и изоляции, а не сам Arduino или реле.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему. Сетевая часть схемы
// (вход HLK-PM01 и силовые контакты реле) требует отдельной осторожности
// при монтаже — это не связано с программной частью ниже.
const int RELAY_PIN = 2;
void setup() {
Serial.begin(9600);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
Serial.println("Узел запущен от сетевого питания HLK-PM01");
}
void loop() {
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Нагрузка включена");
delay(5000);
digitalWrite(RELAY_PIN, LOW);
Serial.println("Нагрузка выключена");
delay(5000);
}
Дополнительных библиотек не требуется — программная часть идентична любому другому проекту с реле, разница только в способе питания самой Arduino. Логика включения/выключения здесь показана простейшим таймером для демонстрации — замените её на любую другую (по датчику, по расписанию, по команде через ESP8266) из других проектов на сайте.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 371 ₽ 334 ₽ (экономия 37 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.