# Вступление #
ОП хотел бы использовать 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.
У меня есть аналогичный транзисторный модуль NPN KY019, который может управляться сигналами Rpi 3,3 В. Поэтому я проверил его требования к входному сигналу, чтобы выяснить, почему KY019 может принимать сигналы 3,3 В, а Beecake - нет.
Я обнаружил, что KY-019 имеет уровень срабатывания 2,5 В и 0,1 мА . Этот сигнал усиливается NPN-транзистором до 50 мА, достаточно высокого для включения катушки для активации реле.
Rpi GPIO (с высоким уровнем выше 2,8 В и максимальным пределом тока 16 мА ), может комфортно питать 4 мА, не должно быть проблем с непосредственным управлением модулем.
Катушка имеет время отклика 10 мс. Я запрограммировал вывод 17 Rpi GPIO для переключения модуля реле с периодом 40 мс (25 с / с) и обнаружил, что реле срабатывает счастливо, как и ожидалось. (Я использовал 2-метровые соединительные провода для сигналов GPIO, поэтому сигнал на входном конце реле немного шумный.)
Как изменить модуль 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 светодиода, чтобы убедиться, что схема работает нормально.
Затем я установил 4 релейных модуля с транзисторным входом NPN (KY019) и подключил 4 входа релейного модуля к 4 выходам канала UDN2981.
Затем я подключил 4 контакта GPIO Rpi 3.3V непосредственно к 4 входам канала UDN2981. Я использовал следующую функцию python для переключения 4 релейных модулей со скоростью 25 cps.
Результат был хорош. 4 релейных модуля щелкают, а светодиоды мигают со скоростью 25 cps, как и ожидалось. Выходные сигналы Rpi GPIO оставались около 3,3 В, а выходные сигналы UDN около 4,0 В, что означает, что ни один вход не был перегружен.
UDN2981 управляет модулями реле с высоким триггером, оптоизолированными
OP также рассмотрел возможность использования оптоизолированных релейных модулей, потому что они безопаснее. Я успешно использовал тот же UDN2981 для управления четырьмя модулями высокого уровня с оптоизолированными релейными модулями (MK055).
На самом деле UDN2981 может использоваться для управления любым типом модулей запуска высокого уровня, независимо от типа NPN-транзистора или оптоизолированного типа.
Однако для модулей запуска низкого уровня, будь то PNP-транзистор или оптоизолированный, драйвер источника UDN2981 не работает, следует использовать ULN2803 или другой драйвер приемника.
ULN2803 управляет входом PNP транзистора с низким триггером или оптико-изолированными релейными модулями
Я успешно подтвердил, что драйвер приемника ULN2083 может управлять 4 модулями оптоизолированных реле низкого уровня запуска. Сначала я проверил мигающие вручную 4 светодиода, а затем использовал ту же функцию Python, что и выше, чтобы протестировать 4 модуля. Результаты также были хорошими.
обсуждение
ULN2803 и UDN2981 Плюсы и минусы
Pros
ULN2803 и UDN2981 могут напрямую управляться логическим сигналом TTL или CMOS с напряжением питания 3,3 В или 5 В.
Их номинальные выходы 500 мА с зажимными диодами подходят для переключения реле и шаговых двигателей.
Cons
ULN2803 и особенно UDN2981 не так распространены.
Они имеют 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 В, и обнаружил, что она работает как для транзисторного входа, так и для оптоизолированных модулей запуска высокого уровня.
# Ссылки #
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-транзисторным управлением.
/ ...
Конец Приложений
** * Длинный ответ будет удален * **
Этот длинный ответ слишком длинный и грязный. Сейчас я пытаюсь удалить ненужные абзацы и, возможно, заменить их, задавая соответствующий вопрос и отвечая на себя.
Как проверить модуль фоторазъема / изолированного реле
- Получить перемычку.
- Подключите один конец к сигнальному / входному контакту модуля реле.
- Удерживая другой конец, прикоснитесь к контактам 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, шум на высоком уровне также значительно снижается.
Однако я обнаружил большую проблему при подаче преобразованного сингла 5 В GPIO в релейный модуль. Реле по-прежнему включалось и выключалось, как и раньше, с сигналом 3V3, но когда я использовал прицел для проверки формы сигнала, я обнаружил очень удивительно, что сигнал 5V упал вдвое, до 2,2V .
Я подозревал, что причина в том, что TXS0102 может потреблять ток намного лучше, чем ток источника к модулю реле. Чтобы проверить мои предположения, я подал сигнал 5 В на другой релейный модуль, типа опускного фотопара, модель MK01.
На этот раз я обнаружил, что сигнал 5V не упал заметной величины.
Поэтому я быстро пришел к выводу, что релейный модуль NPN транзисторного типа - плохой выбор. С этого момента я бы прекратил тестирование такого рода реле и перешел бы на реле типа фотопары.
Я также протестировал другой модуль драйвера фотопары MK101. Этот модуль имеет перемычку для выбора более высокого запуска или низкого запуска. Я обнаружил, что для нижнего триггера уровень сигнала 5V, преобразованный TSX0102, не изменяется. Но когда выбран низкий триггер, преобразованный уровень сигнала 5 В упал примерно до 2,5 В, хотя реле все еще работает.
Приложение E - Преобразователь логического уровня с использованием HC04
HCT125 не так часто встречается. Поэтому я попробовал еще одну схему преобразователя, используя четырехканальный вентиль NAND с открытым стоком HC03 и шестнадцатеричный инвертор HC04. Когда я тестировал выход HC04, я обнаружил, что он очень шумный. Я предположил, что одной из причин было то, что я использовал разные источники питания, один для rpi, другой для конвертера. Даже я соединил точки заземления блоков питания, чтобы сделать общую точку, шум не пропал. Затем я использовал один источник питания для rpi и конвертера, и шум исчез.
Я пробовал выходной сигнал HC04 для релейного модуля в режиме низкого триггера (который требует понижающего тока, но не в режиме высокого триггера (который требует тока источника), поэтому я собираюсь добавить шестнадцатеричный вентиль NOT04 HC04, который может подавать ток в релейный модуль.
Приложение F - Проблема плавающего входа преобразователя уровня HC04
В прошлый раз, когда я впервые попробовал преобразователь уровня на основе HC03, на модуле реле фотопары, я обнаружил, что если я оставил входной сигнал плавающим, модуль уловил шум, и реле безумно включалось и выключалось. Я думал, что частота была, возможно, 1 кГц. Я не был уверен, было ли это какое-то положительное колебание обратной связи. Но когда я воспользовался прицелом, чтобы проверить, я неожиданно обнаружил, что это была 50 Гц! Я думаю, это какой-то резонанс. Но я не знаю, в чем разница между резонансом и колебанием. Возможно, мне следует снова поглядеть. Во всяком случае, я думаю, что мне нужно добавить резистор тяги вверх / вниз где-то.
Ниже сокращается или удаляется
# Приложения #
# A1. Оптоизолированный / Фотоприемник релейный модуль платы и схема #
Оптоизолированный релейный модуль имеет фотоприемник с 4-контактной ИС. На рисунке ниже показан фотопреобразователь PC1 (его 4 контакта обозначены 1, 2, 3, 4 зеленым цветом) и транзистор Q1. Микросхемы не всегда отмечены. На этом рисунке PC1 - EL354, а Q1 - 8050.
Диаграмма Ссылки
35 : https://i.stack.imgur.com/cWkRi.jpg