В предыдущей статье я рассмотрел подключение реле к выходу микроконтроллеров ESP8266/ESP32/Arduino через дискретный транзистор, т.е. без галванической развязки нагрузки и микроконтроллера.
Можно упростить себе жизнь и не мудрить с распайкой транзисторов, взяв на Aliexpress готовый модуль с оптической развязкой на 4-х канальной сборке оптронов TLP281-4.
Модуль предназначен для гальванической развязки выхода микроконтроллера от шумной нагрузки с высоким напряжением. Управляется модуль током с максимальным значением в 50 мА.
Максимальный ток на выходе TLP281-4 50 мА. Реле к такому выходу напрямую не подключить, поэтому после оптосборки установлены планарные транзисторы S8050 в корпусе SOT-23. У них максимальный ток коллектора 500 мА при напряжении коллектор-эмиттер (Vceo) в 25V.
Соответственно, модуль может коммутировать нагрузку управляемую током в 500 мА и максимальным напряжением 24 V (по документации к модулю).
Характеристики:
- Количество каналов: 4
- Оптронная сборка: TLP281-4
- Транзисторы на выходе: S8050
- Напряжение на входах (IN1..IN4) — 3..5 V
- Максимальный ток на входах (IN1..IN4): 50 мА
- Максимальное напряжение на выходах OUT1..OUT4: 24 V
- Максимальный ток на выходах OUT1..OUT4: 500 мА
- Размеры платы, мм: 25х24
- Доступность на Aliexpress: высокая
Диод параллельно реле
При подключении на Out реле нельзя забывать о параллельном шунтирующем диоде. Подробно написано здесь.
Диод лучше использовать импульсный, например, FR157. Но можно поставить и обычный выпрямительный, например, 1N4007.
Подключение реле через массив транзисторов Дарлингтона (ULN2003)
Если нужно подключить к микроконтроллеру несколько реле, то можно использовать матрицу из семи транзисторов Дарлингтона, 500мА, ULN2003A. Помимо транзисторов в сборку уже включены диоды для подавления обратного тока в индуктивной нагрузке.
Можно параллелить выходы для коммутации мощной нагрузки, но лучше подбирать соответствующие по току тразисторы или использовать реле.
Посмотреть возможные аналоги транзисторных сборок для управления реле и другими индуктивными нагрузками можно здесь.
Программа для включения реле через оптоизолятор на TLP281
Код простейший. Единственный момент,
не используйте GPIO0 (D3) и GPIO2 (D4) для управления реле!
При загрузке на этих PIN-ах должно быть определенное состояние, чтобы ESP8266 корректно загрузился. Если на эти PIN-ы повесить реле, то после reset ESP8266 загрузится некорректно и программа не будет работать.
const int led = 2; //D4 const int relay = 4; //D2 DO NOT USE GPIO0 (D3) and GPIO2 (D4) TO MANAGE THE RELAY void turnOnRelay(bool state) { String st = state ? "ON" : "OFF"; Serial.println("Relay state: " + st); digitalWrite (relay, state); digitalWrite (led, !state); } void setup() { pinMode (led, OUTPUT); pinMode(relay, OUTPUT); turnOnRelay(LOW); Serial.begin (9600); } void loop() { // put your main code here, to run repeatedly: turnOnRelay(HIGH); delay(5000); turnOnRelay(LOW); delay(5000); }