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:
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.
fuente
Respuestas:
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 .
fuente
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
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.
fuente
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é:
Comando relé a NO:
Comando relé de vuelta a NC:
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 !
fuente