Raspberry Pi Pico и релейный модуль на MicroPython

Перевод статьи Raspberry Pi Pico with Relay Module (MicroPython) — Rui Santos & Sara Santos, Random Nerd Tutorials.
Учимся управлять релейным модулем с Raspberry Pi Pico, запрограммированного на MicroPython. С точки зрения кода управление реле ничем не отличается от управления обычным светодиодом командами «включить» и «выключить». Реле работают как электронные ключи, позволяя Raspberry Pi Pico управлять мощными устройствами — лампами, моторами и множеством других электроприборов.
Что нужно заранее#
Чтобы пройти это руководство, на плате Raspberry Pi Pico должна быть прошита MicroPython, и понадобится среда для написания и загрузки кода. Рекомендуемая среда для Pico — Thonny IDE.
Знакомимся с реле#
Реле — это электрически управляемый ключ, и, как любой ключ, он может быть включён или выключен, пропуская ток или нет. Управлять им можно низким напряжением — например, теми 3,3 В, которые выдают выводы GPIO у Raspberry Pi Pico, — а коммутировать он способен высокое: 12 В, 24 В или сетевое напряжение (230 В в Европе, 120 В в США).
Обычно лучший способ управлять реле с микроконтроллера — использовать готовый релейный модуль, где уже собрана вся обвязка для безопасного управления, плюс есть светодиод для визуальной обратной связи.

Релейные модули на один, два и восемь каналов
Модули бывают с разным числом каналов: на один, два, четыре, восемь и даже шестнадцать. Число каналов определяет количество выходов, которыми вы можете управлять. Вдобавок большинство модулей несут на борту оптрон, добавляющий дополнительный «слой» защиты за счёт оптической развязки Raspberry Pi Pico от цепи реле.
Распиновка реле#
Для объяснения возьмём двухканальный модуль — с другим числом каналов всё устроено аналогично.

Распиновка релейного модуля
Слева расположены два набора по три гнезда для подключения высокого напряжения, а выводы справа (низковольтная сторона) подключаются к микроконтроллеру — в нашем случае к Raspberry Pi Pico.
Высоковольтные подключения#

Высоковольтная сторона: NO, COM и NC
У показанного модуля два разъёма, в каждом по три гнезда: нормально разомкнутый (NO), общий (COM) и нормально замкнутый (NC).
- COM — сюда подключается ток, которым вы хотите управлять; это среднее гнездо.
- NC (Normally Closed, нормально замкнутый) — конфигурация для случая, когда реле по умолчанию должно быть замкнуто. Выводы NC и COM соединены, то есть ток течёт, пока Pico не подаст сигнал на размыкание цепи. Это гнездо справа.
- NO (Normally Open, нормально разомкнутый) — работает наоборот: между NO и COM соединения нет, цепь разорвана, пока Pico не подаст сигнал на замыкание. Это гнездо слева.
Управляющие выводы#

Низковольтная сторона: управляющие выводы
На низковольтной стороне есть набор из четырёх выводов и набор из трёх. Первый состоит из VCC и GND для питания модуля и входов IN1 и IN2 для управления нижним и верхним реле соответственно. Если у модуля один канал — будет только один вывод IN, если четыре канала — четыре, и так далее.
Сигнал, который вы подаёте на выводы IN, определяет, сработает реле или нет. Реле срабатывает, когда напряжение на входе опускается примерно ниже 2 В. Отсюда следующие варианты:
- Нормально замкнутая конфигурация (NC): высокий уровень — ток течёт; низкий уровень — ток не течёт.
- Нормально разомкнутая конфигурация (NO): высокий уровень — ток не течёт; низкий уровень — ток течёт.
В этом руководстве мы управляем лампой на 12 В постоянного тока. Поскольку мы хотим, чтобы лампа была выключена, пока Pico не подаёт сигнал, используем нормально разомкнутую схему.
Выбор источника питания#

Перемычка между VCC и JD-VCC
Второй набор выводов состоит из GND, VCC и JD-VCC. Вывод JD-VCC питает электромагнит реле. Обратите внимание: на модуле стоит перемычка, соединяющая VCC и JD-VCC — здесь она жёлтая, у вас может быть другого цвета.
С установленной перемычкой выводы VCC и JD-VCC соединены, то есть электромагнит реле питается напрямую от вывода питания Pico, и цепи модуля и Pico физически не развязаны.
Без перемычки нужно подать на JD-VCC независимое питание для электромагнита. Такая конфигурация физически развязывает реле от Raspberry Pi Pico встроенным оптроном, что защищает Pico от повреждения при выбросах напряжения. Впрочем, некоторые модули устроены проще и питаются прямо от VCC.
Что понадобится#
- Raspberry Pi Pico
- Релейный модуль
- Светодиодная лампа на 12 В или насос на 12 В
Подключение релейного модуля к Pico#
Для демонстрации мы управляем светодиодной лампой на 12 В. Точно так же можно управлять другими приборами — насосами на 12 В или даже устройствами, питающимися от сети.
Внимание: работа с сетевым напряжением опасна. Неправильное обращение может привести к серьёзным травмам. Если вы не имеете опыта работы с сетевым напряжением, попросите помочь того, кто имеет. Во время программирования Pico и монтажа схемы убедитесь, что всё отключено от сети. Если опыта нет, используйте источник на 12 В и приборы на 12 В, как в этом примере.

Схема подключения релейного модуля к Raspberry Pi Pico
Высоковольтная сторона:
- Подключите одну из клемм патрона лампы к клемме «−» разъёма питания постоянного тока (или к «−» вашего источника питания).
- Подключите клемму «+» разъёма питания к гнёздам COM реле.
- Подключите вторую клемму лампы к гнезду NO реле.
Низковольтная сторона:
- Вывод IN1 реле — к GPIO 0.
- Вывод GND реле — к GND.
- Вывод VCC реле — к выводу VBUS на Pico (некоторым модулям для питания достаточно 3,3 В, тогда подключайте к выводу 3V3(OUT)).
Код: управление реле на MicroPython#
Как уже говорилось, управлять релейным модулем не сложнее, чем светодиодом: нужно просто подавать низкий (0) и высокий (1) уровни. Следующий код включает реле на 10 секунд, затем выключает на 10 секунд, и так по кругу.
# Rui Santos & Sara Santos - Random Nerd Tutorials
# Полное описание проекта: https://RandomNerdTutorials.com/raspberry-pi-pico-relay-micropython/
from machine import Pin
from time import sleep
relay = Pin(0, Pin.OUT)
while True:
# РЕЛЕ ВКЛЮЧЕНО
relay.value(0)
sleep(10)
# РЕЛЕ ВЫКЛЮЧЕНО
relay.value(1)
sleep(10)
Как видите, код предельно простой: реле управляется так же, как светодиод или любой другой выход.
Сам по себе этот пример вряд ли имеет практическое применение, но он показывает, как работают реле. Дальше усвоенные принципы можно применять на практике: управлять реле по показаниям датчиков, дистанционно через веб-сервер и так далее. Причём подключить можно любой прибор — насос, лампу или тостер.
Проверяем#
После загрузки кода в Raspberry Pi Pico лампа загорится на 10 секунд, затем на 10 секунд погаснет. Цикл будет повторяться, пока вы не остановите программу.

Реле выключено — лампа не горит

Реле включено — лампа горит
Обратите внимание: светодиод на плате релейного модуля загорается при срабатывании реле и гаснет, когда реле отпущено (у некоторых модулей индикаторного светодиода может не быть).
Подводя итог#
В этом руководстве вы научились подключать релейный модуль к Raspberry Pi Pico. Это позволяет управлять устройствами на 12 В или сетевом напряжении сигналом 3,3 В с выводов Pico.
Управление релейным модулем сводится к подаче высокого и низкого уровня — не сложнее, чем управление обычным выходом вроде светодиода.