¿IC que llevaría la salida al suelo, tal vez NO a la puerta?


8

Tengo una placa con cuatro relés. Tiene pines estándar Vcc, Gnd e In1-In4. Quiero controlarlo con Arduino o en mi caso un ESP32. Sin embargo, noté que cuando el pin de salida de mi controlador se pone en ALTO, no sucede nada cuando se pone en BAJO, el relé se activará.

Esto es un problema cuando la placa se reinicia debido a que todos los interruptores de relé se activarán hasta y esto no es algo que quiera. Después de cavar un poco, hice esto:

Inversor simple

Esto funciona como se desea, siempre hay 5V en el relé y el relé está desconectado todo el tiempo. Cuando envié una señal a la base del Q1, tirará de la salida al suelo y el relé se activará.

En este momento tengo cuatro de estos relés y muy pronto tendré más. Entonces, me gustaría resolver esto con un IC. En particular, estaba mirando el IC7404 que es un montón de puertas NO, sin embargo, no estoy seguro de que esto resuelva mi problema.

Entonces, ¿hay un IC que tiraría de la salida al suelo cuando la señal está presente en la entrada? ¿Funcionará el 7404 y simplemente no estoy viendo algo? :)

Editar: este es el módulo de relé que estoy usando . No pude encontrar ninguna hoja de datos útil en él.


1
Bienvenido a EESE. Voy a seguir adelante y te doy un +1 para tu esquema. Probablemente sea solucionable con un inversor, pero para responder que necesitamos que conozca sus requisitos de potencia de salida. ¿Sabes cuánta carga tienes?
winny

1
Es posible que desee agregar un diodo con polarización inversa de Salida a 5 V si está operando un relé. Googlear diodo de retorno o de diodo de marcha libre dará más información
Colin

1
Proporcione un enlace a la hoja de datos para los relés. Necesitamos saber cuánta corriente requieren. Un 7404 probablemente no podrá absorber suficiente corriente.
Elliot Alderson

¿Qué quieres decir con señal presente? ¿Es un alto voltaje + 5v en el nodo de "entrada" y qué es "señal no presente", 0V o desconocido / desconectado?
R.Joshi

No está claro por qué los relés estarían activos en el reinicio, ya que normalmente los pines están en un estado de alta impedancia a menos que elija imprudentemente los pines de amarre de modo o aquellos involucrados en un cargador de arranque.
Chris Stratton

Respuestas:


2

El hecho de que los relés actúen en el reinicio cuando los pines deben estar en un modo de alta impedancia es preocupante, y es algo que debe comprender completamente para validar su sistema y solucionarlo.

Editar: ahora que está claro que se trata de un error de software en su código, para resolver el disco inadvertido bajo durante el inicio, configure el bit de registro de datos de salida del pin en alto antes de configurar el pin como salida.

Dicho esto, una respuesta literal a su pregunta original sería un chip que contiene varios open collector inverters.

El 74xx05 es un ejemplo.

El 74xx06 es similar, pero permite aplicar un voltaje aceptable a la salida, incluso cuando esto excede el voltaje de suministro, por ejemplo, puede operar la parte en 3.3v pero extraer las salidas de 5v.

Pero estas no son la solución a su problema real .


Tenías razón, tuve que verificar mis procedimientos de inicio. Normalmente configuro todos los parámetros de E / S e inicializo todo, luego me encargo del estado predeterminado de los pines. Al configurar el pin como pin de salida, pasa automáticamente al estado BAJO. Parece que hubo suficiente tiempo entre pinMode () y el primer digitalWrite () que configuró el pin en un estado ALTO, evitando que el relé se active. Entonces, mi solución ahora es llamar a pinMode () y luego configurar inmediatamente el pin a ALTO.
BigWhale

Póngalo en alto antes de convertirlo en una salida, no después.
Chris Stratton

Tienes un controlador para el relé coilm, ¿sí? Agregue resistencias pullup a sus entradas, termine con esto.
CrossRoads

1
Las resistencias pull-up de @CrossRoads no resolverán el problema ni mejorarán marginalmente las cosas. El problema es que el software del autor de la pregunta está haciendo las cosas en el orden incorrecto, bajando el pin antes de subirlo. La conducción errónea baja superaría su resistencia pull-up. Y además, estos son probablemente los cátodos de los LED del optoacoplador: un pull-up en realidad no hará nada en absoluto, lo que se necesita no es completar erróneamente un camino a tierra.
Chris Stratton

Los pullups mantendrían los pines altos mientras el dispositivo pasa por el proceso de reinicio / arranque y los pines están flotando.
CrossRoads

0

La solución más simple es intercambiar las conexiones de los pines NA y NC del relé.

La siguiente opción es invertir la lógica de programación para ese pin. Puedes agregar algunas constantes

#define RELAY_ON LOW
#define RELAY_OFF HIGH

Para polarizar los relés en un cierto estado durante el reinicio (mientras el pin de salida es de alta impedancia) puede agregar una resistencia pull-up o pull-down según sea necesario. El pin IO dominará fácilmente la corriente filtrada a través de la resistencia y aún así conmutará correctamente el relé.

Usando esas 2 técnicas, puede elegir el estado predeterminado del relé para que sea el estado sin alimentación. Ya sea porque es el que se usa la mayor parte del tiempo o porque es la opción a prueba de fallas.


Creo que te perdiste el punto. El OP no quiere que los relés se activen al reiniciar .
Elliot Alderson

0

Aquí hay un "Manual de usuario" para su relé. Realmente nunca debe diseñar un sistema sin tener primero todas las hojas de datos.

Desde el esquema suministrado allí se puede ver claramente que puede conectar su controlador directamente a los pines InX. Es decir, no se necesita ninguno de los esquemas que ideó.

Dado que la entrada de los optoacopladores puede funcionar en modo de colector abierto, le sugiero que mantenga los pines correspondientes de su uC como entrada / High-Z cuando desee mantener los relés en NC.

Como no estoy familiarizado con su controlador, aquí hay algunos pseudocódigos para ayudarlo:

Inicialización, para cada pin que controla un relé:

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

Comando relé a NO:

Set direction to output

Comando relé de vuelta a NC:

Set direction to input

Por lo general, un uC se activará con sus pines ya como entrada, por lo que la primera línea de inicialización es redundante, pero siempre es más seguro realizarlo para asegurarse de que el sistema esté en un estado conocido. Asegúrese de no tener algún código que haga un inicio general de todos los pines a algunos valores como parte de algún código de placa de caldera, se sabe que los principiantes cometen este error.

PD: Para el momento en que realmente necesitará un controlador de corriente de inversión, ¡use algo como un ULN2003A !


3
"un ULN" no es una parte. Muestre el número de pieza real, no lo oculte en el enlace
Chris Stratton

Esta es la única parte de esa serie que he usado, por lo que siempre ha sido "solo un ULN" para mí.
Equilibrius
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.