Микросхема, которая будет выводить вывод на землю, возможно, НЕ ворота?


8

У меня есть доска с четырьмя реле на нем. Он имеет стандартные контакты Vcc, Gnd и In1-In4. Я хочу управлять им с помощью Arduino или, в моем случае, ESP32. Тем не менее, я заметил, что когда выходной контакт на моем контроллере вытянут в ВЫСОКОЕ, ничего не произойдет, когда он будет вытянут НИЗКОМ, реле сработает.

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

Простой инвертор

Это работает по желанию, на реле всегда 5 В, и реле постоянно отключается. Когда я вывожу сигнал на базу Q1, он вытянет выход на землю, и реле включится.

Прямо сейчас у меня есть четыре из этих реле, и довольно скоро у меня будет больше. Итак, я хотел бы решить это с помощью IC. В частности, я смотрел на IC7404, который представляет собой кучу НЕ ворот, однако я не уверен, что это решит мою проблему.

Итак, есть ли микросхема, которая выводит выход на землю, когда на входе присутствует сигнал? Будет ли работать 7404 и я просто что-то не вижу? :)

Изменить: это модуль реле, который я использую . Я не смог найти какие-либо полезные данные на нем.


1
Добро пожаловать в EE.SE. Я собираюсь пойти прямо вперед и получить от вас +1 за вашу схему. Вероятно, это решаемо с помощью инвертора, но чтобы ответить, что нам нужно, вы знаете свои требования к выходной мощности. Вы знаете, сколько у вас нагрузки?
Винни

1
Вы можете добавить диод с обратным смещением от выхода до 5 В, если вы используете реле. Погуглите диод обратного хода или диод свободного хода даст больше информации
Колин

1
Пожалуйста, предоставьте ссылку на таблицу для реле. Нам нужно знать, сколько тока им требуется. 7404, вероятно, не сможет поглотить достаточно тока.
Эллиот Олдерсон

Что значит сигнал присутствует? Это высокое напряжение + 5 В на «входном» узле и что такое «сигнал отсутствует», 0 В или неизвестно / отключено?
Р.Джоши

Непонятно, почему реле были бы активны при сбросе, так как обычно контакты находятся в состоянии высокого импеданса, если вы не выбрали неразумно привязанные контакты режима или те, которые задействованы в загрузчике.
Крис Страттон

Ответы:


2

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

Редактировать: теперь, когда стало ясно, что это программная ошибка в вашем коде, для устранения непреднамеренного низкого уровня диска во время запуска настройте бит регистра выходных данных вывода на высокий, прежде чем установить вывод в качестве выхода.

Тем не менее, буквальный ответ на ваш оригинальный вопрос будет чип, содержащий несколько open collector inverters.

74xx05 является примером.

74xx06 аналогичен, но позволяет подавать приемлемое напряжение на выход, даже если оно превышает напряжение питания, например, вы можете управлять деталью на 3,3 В, но снижать выходы с 5 В.

Но это не решение вашей актуальной проблемы.


Вы были правы, я должен был проверить мои процедуры запуска. Я обычно устанавливаю все параметры ввода / вывода и инициализирую все, затем я забочусь о состоянии выводов по умолчанию. При установке вывода в качестве выходного, он автоматически переходит в состояние НИЗКОЕ. Похоже, что было достаточно времени между pinMode () и первым digitalWrite (), который установил вывод в состояние HIGH, предотвращая включение реле. Таким образом, мое решение теперь заключается в том, чтобы вызвать pinMode (), а затем сразу установить пин в HIGH.
Большой кит

Установите его на высокий, прежде чем сделать вывод, а не после.
Крис Страттон

У вас есть драйвер для катушки реле, да? Добавьте подтягивающие резисторы к своим входам, покончим с этим.
CrossRoads

1
Подтягивающие резисторы @CrossRoads не решат проблему и не улучшат ее вообще. Проблема заключается в том, что программное обеспечение asker делает вещи в неправильном порядке, приводя булавку в низкое положение, прежде чем она поднимает высокую. Неправильное вождение на низком уровне преодолеет ваш подтягивающий резистор. И, кроме того, это, вероятно, катоды светодиодов оптопары - подтягивание вообще ничего там не сделает, что нужно, это не ошибочно завершить путь к земле.
Крис Страттон,

Подтягивания будут поддерживать контакты на высоком уровне, пока устройство проходит процесс сброса / загрузки и контакты плавают.
CrossRoads

0

Самое простое решение - поменять местами контакты NO и NC реле.

Следующая опция - инвертировать логику программирования для этого вывода. Вы можете добавить несколько констант

#define RELAY_ON LOW
#define RELAY_OFF HIGH

Для смещения реле в определенное состояние во время сброса (в то время как выходной контакт имеет высокий импеданс), при необходимости вы можете добавить понижающее или понижающее сопротивление. Вывод IO будет легко подавлять ток, протекающий через резистор, и все равно правильно переключать реле.

Используя эти 2 метода, вы можете выбрать состояние реле по умолчанию как состояние без питания. Либо потому, что он используется большую часть времени, либо потому, что это безопасный вариант.


Я думаю, что вы упустили момент. OP не хочет, чтобы реле активировалось при сбросе .
Эллиот Олдерсон

0

Вот «Руководство пользователя» для вашего реле. Вы действительно никогда не должны проектировать систему, не имея вначале всех таблиц.

Из представленной схемы видно, что вы можете просто подключить свой контроллер непосредственно к контактам InX. То есть ни одна из разработанных вами схем не нужна.

Поскольку вход оптопар способен работать в режиме с открытым коллектором, я бы посоветовал вам просто сохранить соответствующие контакты вашего uC как вход / High-Z, когда вы хотите сохранить реле на NC.

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

Инициализация для каждого контакта, управляющего реле:

Set direction to input
Set level to "0" (do NOT change direction to output)

Командное реле на НЕТ:

Set direction to output

Командное реле обратно на NC:

Set direction to input

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

PS Для того момента, когда вам действительно понадобится какой-то инвертор тока, просто используйте что-то вроде ULN2003A !


3
«ULN» не является частью. Показать фактический номер детали, не скрывайте его в ссылке
Крис Страттон

Это единственная часть этой серии, которую я когда-либо использовал, так что она всегда была «просто ULN» для меня.
Equilibrius
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.