У меня есть доска с четырьмя реле на нем. Он имеет стандартные контакты Vcc, Gnd и In1-In4. Я хочу управлять им с помощью Arduino или, в моем случае, ESP32. Тем не менее, я заметил, что когда выходной контакт на моем контроллере вытянут в ВЫСОКОЕ, ничего не произойдет, когда он будет вытянут НИЗКОМ, реле сработает.
Это проблема, когда плата сбрасывается из-за того, что все релейные переключатели будут срабатывать до тех пор, пока я этого не хочу. После некоторых копаний я сделал это:
Это работает по желанию, на реле всегда 5 В, и реле постоянно отключается. Когда я вывожу сигнал на базу Q1, он вытянет выход на землю, и реле включится.
Прямо сейчас у меня есть четыре из этих реле, и довольно скоро у меня будет больше. Итак, я хотел бы решить это с помощью IC. В частности, я смотрел на IC7404, который представляет собой кучу НЕ ворот, однако я не уверен, что это решит мою проблему.
Итак, есть ли микросхема, которая выводит выход на землю, когда на входе присутствует сигнал? Будет ли работать 7404 и я просто что-то не вижу? :)
Изменить: это модуль реле, который я использую . Я не смог найти какие-либо полезные данные на нем.
источник
Ответы:
Тот факт, что реле активируются при сбросе, когда контакты должны находиться в режиме с высоким импедансом, вызывает беспокойство, и вам необходимо полностью разобраться, чтобы проверить вашу систему и исправить ее.
Редактировать: теперь, когда стало ясно, что это программная ошибка в вашем коде, для устранения непреднамеренного низкого уровня диска во время запуска настройте бит регистра выходных данных вывода на высокий, прежде чем установить вывод в качестве выхода.
Тем не менее, буквальный ответ на ваш оригинальный вопрос будет чип, содержащий несколько
open collector inverters
.74xx05 является примером.
74xx06 аналогичен, но позволяет подавать приемлемое напряжение на выход, даже если оно превышает напряжение питания, например, вы можете управлять деталью на 3,3 В, но снижать выходы с 5 В.
Но это не решение вашей актуальной проблемы.
источник
Самое простое решение - поменять местами контакты NO и NC реле.
Следующая опция - инвертировать логику программирования для этого вывода. Вы можете добавить несколько констант
Для смещения реле в определенное состояние во время сброса (в то время как выходной контакт имеет высокий импеданс), при необходимости вы можете добавить понижающее или понижающее сопротивление. Вывод IO будет легко подавлять ток, протекающий через резистор, и все равно правильно переключать реле.
Используя эти 2 метода, вы можете выбрать состояние реле по умолчанию как состояние без питания. Либо потому, что он используется большую часть времени, либо потому, что это безопасный вариант.
источник
Вот «Руководство пользователя» для вашего реле. Вы действительно никогда не должны проектировать систему, не имея вначале всех таблиц.
Из представленной схемы видно, что вы можете просто подключить свой контроллер непосредственно к контактам InX. То есть ни одна из разработанных вами схем не нужна.
Поскольку вход оптопар способен работать в режиме с открытым коллектором, я бы посоветовал вам просто сохранить соответствующие контакты вашего uC как вход / High-Z, когда вы хотите сохранить реле на NC.
Поскольку я не знаком с вашим контроллером, вот несколько псевдокодов, которые помогут вам:
Инициализация для каждого контакта, управляющего реле:
Командное реле на НЕТ:
Командное реле обратно на NC:
Обычно ОК активируется со своими выводами уже в качестве ввода, поэтому первая строка инициализации является избыточной, но всегда безопаснее выполнить ее, чтобы убедиться, что система находится в известном состоянии. Убедитесь, что у вас нет некоторого кода, который выполняет общую инициализацию всех выводов для некоторых значений как часть некоторого стандартного кода, новички, как известно, делают эту ошибку.
PS Для того момента, когда вам действительно понадобится какой-то инвертор тока, просто используйте что-то вроде ULN2003A !
источник