Питание реле 5 В от контактов GPIO

22

У меня есть банк реле (5), который я собираюсь запустить от своего Пи. Я использую 5V TE Connectivity реле, работающие от мощных комплектов реле Sparkfun, которые используют NPN-транзистор для запуска реле.

Пока проблема в том, что я не могу заставить реле переключаться. Выходные контакты GPIO не питают 5 В? Я думал, что пи сделал на GPIO.

hightekjonathan
источник
4
Нет, контакты Gpio 3,3 вольт.
Стив Робиллард
Тогда вы знаете, как я мог бы изменить мою схему?
Hightekjonathan
1
Потребуется 5-вольтовый источник питания и запоминающее устройство, чтобы соединить все земли вместе - я делаю это, чтобы включить сигнальную лампу
Стив Робиллард
2
Я бы предложил сначала настроить его на работу с отдельным источником питания, а затем решить сложность энергопотребления Pi и мобильности. Как говорят, лучший способ съесть слона - это один укус за раз.
Стив Робиллард
1
Все основания связаны между собой. И 5v положительный связан с общим на Дарлингтоне. Я следовал за диаграммой.
Hightekjonathan

Ответы:

36

Почему не просто так?

Raspberry Pi переключается между 0 и 3В3, более чем достаточно для насыщения Q1, который берет на себя «тяжелую» работу: включение / выключение реле + 5В. В зависимости от используемых вами реле могут применяться небольшие модификации для D1 и Q1.

Raspberry Pi управляет реле

GeertVc
источник
Отличный ответ! И очень безопасный способ сделать это.
Петр Кула
3
Хороший ответ, который должен решить «эстафету» раз и навсегда. Может быть, было бы неплохо добавить, что тот факт, что напряжения питания Pi и реле должны быть одинаковыми или, по крайней мере, иметь общий GND. Хотя это может показаться очевидным для инженера-электрика, это может быть ловушкой для начинающих.
Ганима
@ Ганима: Да, у вас есть точка, конечно. Но, как вы упомянули, для меня "очевидно", если я вижу символ земли, что это для обеих сторон (здесь: малина и эстафета). И я намеренно запитал реле напряжением + 5В (может быть даже +24 В или любым другим безопасным низким напряжением постоянного тока), чтобы явным образом показать аудитории, что цель вышеуказанной схемы - иметь разные напряжения на обоих участках. Это цель схемы.
GeertVc
1
Какова цель R2?
ErikH
2
@erikH: этот резистор будет гарантировать, что база Q1 имеет фиксированный уровень (в данном случае подключен к земле) на случай, если вход на R1 будет плавать. Если вы уверены, что ввод никогда не будет плавающим, тогда R2 не нужен, но это своего рода «гарантия». Если вход может плавать, а R2 не подключен, тогда транзистор может начать переключение неконтролируемым образом.
GeertVc
7

# Вступление #

ОП хотел бы использовать Rpi для безопасного управления банком из 5 релейных модулей Sparkfun's Beefcake . У него была проблема, потому что логический уровень Rpi GPIO составляет 3,3 В, но его реле использует логическое управление 5 В. Он хочет знать, как изменить Rpi, чтобы обойти проблему несоответствия логического уровня. Его выбор включает следующее: использование транзистора BC5468 для возбуждения катушки реле; получить оптоизолирующее реле и управлять им, используя ULN2803; используя драйвер источника, такой как UDN2981, ...

После расследования я сейчас предлагаю пару решений, с их соответствующими плюсами и минусами. ОП может выбрать решение после компромисса с риском, надежностью, стоимостью и т. Д.

# Содержание #

Решение 1 - Модификация резистора смещения NPN транзистора

Решение 2. Использование UDN2981 для увеличения сигнала GPIO Rpi 3,3 В до 5 В

Решение 3 - Использование 74HC03 и 74HC04 для увеличения сигнала GPIO Rpi 3,3 В до 5 В

Решение 4 - Использование 74HCT125 для преобразования логического уровня

Решение 5. Использование TXS0102 для преобразования логического уровня

Soution 6 - Использование 2N2222 для преобразования логического уровня

Решение 7. Использование 2N7000 для преобразования логического уровня

FAQ1 - Как включить Rpi и релейный модуль и связать заземления вместе

FAQ2 - Как избежать плавающей проблемы ввода

FAQ3 - Мое реле всегда включено, независимо от того, высокий ли вход или низкий, потому что сигнал Rpi Low недостаточно низкий?

FAQ3 - Мой сигнал Rpi GPIO Low не может выключить реле, но установка GPIO в качестве входа подойдет. Буду ли я больно мой Rpi, если я это сделаю?

Решение проблем с оборудованием

Решение проблем с программным обеспечением

Ссылки

# Решение 1. Изменение смещения транзистора NPN, чтобы сделать его совместимым с 3.3 В #

Существует два основных типа решений:

(1) изменить входную цепь логического уровня модуля 5 В для адаптации к сигналам 3,3 В,

(2) используйте преобразователь логического уровня от 3,3 В до 5 В, чтобы поднять 3,3 В сигналов Rpi до 5 В.

Теперь я начну с (1).

изучение

Релейный модуль Sparkfun's Beefcake имеет NPN-транзистор 2N3904 (Q2), управляющий катушкой (U1). Он предназначен для 5V логических сигналов Arduino.

Схема комплекта реле управления SparkFun

У меня есть аналогичный транзисторный модуль NPN KY019, который может управляться сигналами Rpi 3,3 В. Поэтому я проверил его требования к входному сигналу, чтобы выяснить, почему KY019 может принимать сигналы 3,3 В, а Beecake - нет.

Спецификация KY019

Я обнаружил, что KY-019 имеет уровень срабатывания 2,5 В и 0,1 мА . Этот сигнал усиливается NPN-транзистором до 50 мА, достаточно высокого для включения катушки для активации реле.

Спиральные катушки

Rpi GPIO (с высоким уровнем выше 2,8 В и максимальным пределом тока 16 мА ), может комфортно питать 4 мА, не должно быть проблем с непосредственным управлением модулем.

Катушка имеет время отклика 10 мс. Я запрограммировал вывод 17 Rpi GPIO для переключения модуля реле с периодом 40 мс (25 с / с) и обнаружил, что реле срабатывает счастливо, как и ожидалось. (Я использовал 2-метровые соединительные провода для сигналов GPIO, поэтому сигнал на входном конце реле немного шумный.)

KY019 тумблер

Как изменить модуль Beefcake, чтобы сделать его совместимым с логикой 3.3 В

NPN-транзистор Beefcake имеет токоограничивающий резистор R2 со значением 1К. Этот резистор ограничивает ток базы на высоком логическом уровне Arduino 5V. Ток базы в пределах предела после усиления (обычно hFE> 100) достаточно велик для включения катушки.

Расчет тока Arduino 5V GPIO в релейном модуле Beefcake:

Ток Arduino i ~ (4 В [Arduino High] - 1 В [Vce (sat)]) / 1K [R]) = 3 В / 1K = 3 мА

Однако сигнал высокого логического уровня Rpi ниже, чем у Arduino, поэтому соответствующий ограниченный ток меньше и после усиления недостаточно велик для возбуждения катушки.

Ток Rpi i ~ ((3 В [Rpi High] - 1 В) / 1 К = 2 мА

Модификация проста - просто замените 1K R2 меньшим резистором, скажем, 510R.

Rpi ток i (после модификации) = (3В - 1В) / 501R = 4мА

Я делаю догадки образования на основе анализа цепи и экспериментов. Я думаю, что мое предположение на 90% вероятно верно.

Анализ риска

Хотя NPN-транзистор 2N3094 с малым сигналом можно использовать для переключения с малой нагрузкой, он не настолько надежен. Для релейной коммутации безопаснее использовать силовые транзисторы, такие как SS8050, UDN2981, специально разработанные для индуктивных нагрузок.

Оператору требуется безопасный метод, который не поджарил бы его Pi, поэтому для надежности драйвер источника, такой как UDN2981, является подходящим вариантом.

/ ...

# Решение 2 - Использование UDN2981 для управления модулем ретрансляции Beefcake #

В комментариях указывается, что модуль реле Sparkfun Beefcake OP является высокоуровневым триггером, поэтому обычно используемый драйвер приемника ULN2803 использовать нельзя. Вместо этого следует использовать драйвер, аналогичный ULN2803, но вместо источника тока следует использовать источник тока

Я думаю, что UDN2981 является подходящим драйвером для модуля реле OP.

Я успешно проверил UDN2981, управляя модулем реле переключения tirgger высокого уровня, подобным Beefcak, и ULN2803 - модулем низкого уровня триггера. Ниже приводится резюме.

UDN2981 управляет модулями реле с высоким триггером и входным транзистором NPN

Сначала я вручную проверил UDN2981, не подключаясь к Rpi, чтобы мигнул 4 светодиода, чтобы убедиться, что схема работает нормально.

uln2803 udn2981 фото

Затем я установил 4 релейных модуля с транзисторным входом NPN (KY019) и подключил 4 входа релейного модуля к 4 выходам канала UDN2981.

KY019 x 4

Затем я подключил 4 контакта GPIO Rpi 3.3V непосредственно к 4 входам канала UDN2981. Я использовал следующую функцию python для переключения 4 релейных модулей со скоростью 25 cps.

функция Python для переключения 4 реле

Результат был хорош. 4 релейных модуля щелкают, а светодиоды мигают со скоростью 25 cps, как и ожидалось. Выходные сигналы Rpi GPIO оставались около 3,3 В, а выходные сигналы UDN около 4,0 В, что означает, что ни один вход не был перегружен.

Форма сигнала модуля переключения

UDN2981 управляет модулями реле с высоким триггером, оптоизолированными

OP также рассмотрел возможность использования оптоизолированных релейных модулей, потому что они безопаснее. Я успешно использовал тот же UDN2981 для управления четырьмя модулями высокого уровня с оптоизолированными релейными модулями (MK055).

MK055 релейные модули

На самом деле UDN2981 может использоваться для управления любым типом модулей запуска высокого уровня, независимо от типа NPN-транзистора или оптоизолированного типа.

Однако для модулей запуска низкого уровня, будь то PNP-транзистор или оптоизолированный, драйвер источника UDN2981 не работает, следует использовать ULN2803 или другой драйвер приемника.

ULN2803 управляет входом PNP транзистора с низким триггером или оптико-изолированными релейными модулями

Я успешно подтвердил, что драйвер приемника ULN2083 может управлять 4 модулями оптоизолированных реле низкого уровня запуска. Сначала я проверил мигающие вручную 4 светодиода, а затем использовал ту же функцию Python, что и выше, чтобы протестировать 4 модуля. Результаты также были хорошими.

MK101 релейный модуль

обсуждение

ULN2803 и UDN2981 Плюсы и минусы

Pros

  1. ULN2803 и UDN2981 могут напрямую управляться логическим сигналом TTL или CMOS с напряжением питания 3,3 В или 5 В.

  2. Их номинальные выходы 500 мА с зажимными диодами подходят для переключения реле и шаговых двигателей.

Cons

  1. ULN2803 и особенно UDN2981 не так распространены.

  2. Они имеют 8 каналов и, следовательно, имеют больший размер 18-контактного DIP-корпуса. Для меньшего количества каналов более распространены 74HC03 / 04 или 74HCT125 с 14-контактным DIP-пакетом, которые более просты в обращении.

# Решение 3 - Использование 74HC03 и 74HC04 для увеличения сигнала GPI на 3.3 В RPi #

Использование UDN2981 для управления релейным модулем является серьезной проблемой, поскольку они разработаны со встроенными обратными диодами для непосредственного включения реле.

UDN2981 не является обычным и не для начинающих экспериментировать. Для новичков очень распространенные и дешевые ИС логических вентилей, 74HC03 Quad NAND вентили и шестнадцатеричные инверторы HC04 могут выполнять ту же работу, что и UDN2981, сдвигая вверх 3,3 В логические сигналы.

Я успешно проверил HC03 и HC04, сдвигая логику 3,3 В до 5 В, и обнаружил, что она работает как для транзисторного входа, так и для оптоизолированных модулей запуска высокого уровня.

hc03 04 схема преобразователя

hc03 hc04 ky019 mk047

hc03 hc04 ky019 ky047

# Ссылки #

R1. Как работает электрическое реле? - ТехыйДИЙ

R2. Схема релейного переключателя - Учебники по электронике

R3. Руководство по подключению управления реле Beefcake - SparkFun

R4. Цифровые буферы и буферы с тремя состояниями - Учебники по электронике

R5. Подтягивающие резисторы - Учебники по электронике

R6. Учебник по уровням логики - SparkFun

Arduino Voh 4.2V, Vol 0.9V

R7. Спецификация напряжения и тока на выводе Rpi GPIO

Rpi Voh 2,4 В, Vol 0,7 В

R8. Биполярный транзистор - Учебники по электронике

================

# A.3 Преобразователь логического уровня с использованием HCT125 #

Итак, я проверил еще один конвертер, HCT125. Я был счастлив обнаружить, что это работает хорошо. Преобразованный сигнал HCV125 5V0 не падает при подключении к релейному модулю с NPN-транзисторным управлением.

Преобразователь уровня HCT125

/ ...

Конец Приложений

** * Длинный ответ будет удален * **

Этот длинный ответ слишком длинный и грязный. Сейчас я пытаюсь удалить ненужные абзацы и, возможно, заменить их, задавая соответствующий вопрос и отвечая на себя.


Как проверить модуль фоторазъема / изолированного реле

  1. Получить перемычку.
  2. Подключите один конец к сигнальному / входному контакту модуля реле.
  3. Удерживая другой конец, прикоснитесь к контактам Vcc (+) и Gnd (-) и проверьте результаты ниже.

Таблица результатов испытаний модуля реле

2.1 Тип транзисторного входа

Для популярного биполярного входа NPN-транзистора сигнал драйвера источника (сигнал Rpi GPIO или сигнал RPi GPIO после преобразования логического уровня от 3,3 В до 5 В) поступает на базу транзистора через последовательный светодиод и резистор смещения.

Пример модуля реле типа транзисторного входа (BJT NPN)

Существуют и другие не очень популярные схемы переключения реле, как описано в этом руководстве по переключению реле.

2.2 Тип входа фотопара

Реле типа входа фотопары имеет вход фтопары. Фотопара управляет другим транзистором, который, в свою очередь, управляет катушкой реле.


Приложение C - преобразователь логического уровня с использованием TXS0102

Теперь я знаю, что Rpi GPIO может напрямую управлять модулем реле, но есть две проблемы. Во-первых, сигнал GPIO с длинным соединительным проводом зашумлен, поэтому не настолько надежен. Во-вторых, диод маховика 1N4148 может не полностью подавлять обратную ЭДС катушки, и если по несчастью, 1N4148 выходит из строя или неправильно подключен (плохой контакт, сухая пайка и т. Д.), Обратная ЭДС может повредить Rpi.

Поэтому я решил использовать преобразователь логического уровня, чтобы поднять сигнал Rpi GPIO с 3V3 до 5V. Сначала я попробовал конвертер TXS102 и обнаружил, что он работает хорошо. Помимо сдвига вверх по GPIO siganl, шум на высоком уровне также значительно снижается.

TXs0102 фото и форма волны

Однако я обнаружил большую проблему при подаче преобразованного сингла 5 В GPIO в релейный модуль. Реле по-прежнему включалось и выключалось, как и раньше, с сигналом 3V3, но когда я использовал прицел для проверки формы сигнала, я обнаружил очень удивительно, что сигнал 5V упал вдвое, до 2,2V .

Я подозревал, что причина в том, что TXS0102 может потреблять ток намного лучше, чем ток источника к модулю реле. Чтобы проверить мои предположения, я подал сигнал 5 В на другой релейный модуль, типа опускного фотопара, модель MK01.

На этот раз я обнаружил, что сигнал 5V не упал заметной величины.

Поэтому я быстро пришел к выводу, что релейный модуль NPN транзисторного типа - плохой выбор. С этого момента я бы прекратил тестирование такого рода реле и перешел бы на реле типа фотопары.

Я также протестировал другой модуль драйвера фотопары MK101. Этот модуль имеет перемычку для выбора более высокого запуска или низкого запуска. Я обнаружил, что для нижнего триггера уровень сигнала 5V, преобразованный TSX0102, не изменяется. Но когда выбран низкий триггер, преобразованный уровень сигнала 5 В упал примерно до 2,5 В, хотя реле все еще работает.

Триггерные модули для тестирования высокого и низкого уровня txs0102


Приложение E - Преобразователь логического уровня с использованием HC04

HCT125 не так часто встречается. Поэтому я попробовал еще одну схему преобразователя, используя четырехканальный вентиль NAND с открытым стоком HC03 и шестнадцатеричный инвертор HC04. Когда я тестировал выход HC04, я обнаружил, что он очень шумный. Я предположил, что одной из причин было то, что я использовал разные источники питания, один для rpi, другой для конвертера. Даже я соединил точки заземления блоков питания, чтобы сделать общую точку, шум не пропал. Затем я использовал один источник питания для rpi и конвертера, и шум исчез.

Выходной шумовой преобразователь

введите описание изображения здесь

Я пробовал выходной сигнал HC04 для релейного модуля в режиме низкого триггера (который требует понижающего тока, но не в режиме высокого триггера (который требует тока источника), поэтому я собираюсь добавить шестнадцатеричный вентиль NOT04 HC04, который может подавать ток в релейный модуль.

Приложение F - Проблема плавающего входа преобразователя уровня HC04

В прошлый раз, когда я впервые попробовал преобразователь уровня на основе HC03, на модуле реле фотопары, я обнаружил, что если я оставил входной сигнал плавающим, модуль уловил шум, и реле безумно включалось и выключалось. Я думал, что частота была, возможно, 1 кГц. Я не был уверен, было ли это какое-то положительное колебание обратной связи. Но когда я воспользовался прицелом, чтобы проверить, я неожиданно обнаружил, что это была 50 Гц! Я думаю, это какой-то резонанс. Но я не знаю, в чем разница между резонансом и колебанием. Возможно, мне следует снова поглядеть. Во всяком случае, я думаю, что мне нужно добавить резистор тяги вверх / вниз где-то.

HC04 Проблема с плавающим входом преобразователя уровня


Ниже сокращается или удаляется

# Приложения #

# A1. Оптоизолированный / Фотоприемник релейный модуль платы и схема #

Оптоизолированный релейный модуль имеет фотоприемник с 4-контактной ИС. На рисунке ниже показан фотопреобразователь PC1 (его 4 контакта обозначены 1, 2, 3, 4 зеленым цветом) и транзистор Q1. Микросхемы не всегда отмечены. На этом рисунке PC1 - EL354, а Q1 - 8050.

Фотоэлемент входного типа, релейный модуль фото

Схема модуля входного реле фотопара

Диаграмма Ссылки

 35 : https://i.stack.imgur.com/cWkRi.jpg

tlfong01
источник
1
tlfong01: «Таким образом, сигнал Rpi 3V3 GPIO может напрямую управлять реле». : Вы не должны говорить, что поскольку чтение этой строки может создать впечатление у нетехнических людей, они могут напрямую подключить вывод GPIO RPi к катушке реле. С разрушительными последствиями ... Есть причина для добавления 2N3904 ... Вы должны сказать: «Вместо этого сигнал GPI 3V3 RPi может напрямую управлять модулем реле » ...
GeertVc
Спасибо, что указали на мою неосторожную ошибку, заключающуюся в том, что вы не задумывались о нетехнических людях. И когда я сделал исправление, я обнаружил, что совершил еще одну ошибку, вставив два одинаковых изображения KY019. На самом деле первым должен быть схематический модуль SparkFun.
tlfong01
Нет проблем, мы здесь, чтобы помогать друг другу ... :-)
GeertVc
Причиной несоответствия при использовании GPIO напрямую по сравнению с GPIO с переключателем является то, что он предназначен для подачи определенного напряжения (5 В). С другой стороны, логический вывод 3.3 В имеет специальные пороговые значения, указывающие на разницу между низким и высоким значениями. Для пи это означает, что все, что выше 1,3В является высоким . Если вы опускаетесь из-за сопротивления заземления (то есть, тянущего тока), вы должны получить 3,3 В, но это, вероятно, не то, что делает вход реле - оно плавает.
Златовласка
@goldilocks: Да, это сбивает с толку. О. говорит, что его релейный комплект использует NPN-транзистор для запуска реле [катушка]. Один из ответов предлагает модифицировать транзистор [до BC5468]. Еще одно предложение - использовать дарлингтон ULN2803, .. Мне нужно прочитать комментарии еще раз, чтобы очистить свой разум.
tlfong01