lo que estoy tratando de hacer
Esta pregunta trata sobre el uso de cualquier microcontrolador de suministro de 3V3 para controlar módulos de relé alimentados con 5V que están disponibles en muchos proveedores. He proporcionado detalles a continuación de los microcontroladores y módulos que estoy usando específicamente, pero la pregunta es genérica.
En mi aplicación tengo una Raspberry Pi Zero y un Arduino que me gustaría usar para un proyecto de automatización. Tengo dos de los módulos SSR (HCMODU0115), como el de la imagen de abajo.
Los conecté a mis pines GPIO, como en la imagen a continuación, y los activé, pero noté que ambos LED brillaban independientemente de la salida proporcionada por mis controladores. Solo que cuando estaba activo, los LED eran como 100% brillantes, y cuando estaban inactivos, estaban a la mitad de brillo, pero aún encendidos.
Por curiosidad, decidí conectar un par de diodos en las entradas de los canales, como la imagen de abajo, pero luego los relés no se activaron en absoluto.
Entonces decidí invertir los diodos y de repente el módulo de relé comenzó a funcionar de nuevo, pero esta vez el LED1 y el LED2 funcionaban como debían, estando tapados solo cuando estaban activos.
Esto me trae dos preguntas.
Primero, ¿es seguro conectar directamente este módulo de relé a mis controladores? ¿Por qué los LED siempre están encendidos?
Segundo, ¿por qué solo funcionó cuando invertí los diodos? ¿Tiene algo que ver con la dirección del flujo de electrones?
Pregunta
El OP tiene un SSR activado por bajo nivel para Arduino de 5V .
El OP descubrió que 3V3 Raspberry Pi Zero (y 3V3 Arduino Mini Pro, etc.) pueden encenderlo, pero no apagarlo (solo el LED de estado cambia de brillante a tenue)
El OP descubrió que agregar un diodo en serie en el terminal de entrada resuelve el problema. ¿Por qué?
/ continuar, ...
Respuesta
Respuesta corta
Parte 1: Causa raíz del problema de no poder apagar el dispositivo
La causa raíz es la siguiente.
El dispositivo compatible con Arduino está diseñado para apagarse con un nivel alto de > 3,5 V (Apéndice A)
Sin embargo, el nivel alto de Rpi < 3,3 V no es lo suficientemente alto , por lo que SSR siempre está activado.
Parte 2 - Soluciones alternativas
Hay un par de soluciones alternativas, incluidas las siguientes:
(1) Agregue una resistencia en serie 4k7 en el terminal de entrada (IN/CH1)
Explicación: El 4k7 provoca una caída adicional de 5V a los 3V de Rpi (que es constante). Esta caída de tensión adicional hace que la tensión en el terminal IN/CH1 sea superior a 3 V, digamos 3,5 V. Así que problema resuelto.
(2) Convierta la lógica 3.3 de Rpi a 5V
Hay un par de formas, incluidas las siguientes:
(a) Using a NPN BJT (eg 2N2222) in open collector mode, to pull up the 0V/3V signal to 0V/5V. This method is only one directional, ie, output only.
(b) Using any MOSFET logical level converter module which is auto detect bidirectional (Ref 4).
(3) Cambie GPIO al modo de entrada para apagar SSR/Relé/Zumbador (Apéndice C)
Como se explicó anteriormente, Rpi's High no es lo suficientemente alto como para cortar el LED del optoacoplador, o la corriente de base / emisor / colector de PNP BJT, una solución es simplemente cambiar el GPIO al modo de entrada, por lo que no se hunde la corriente de base, por lo tanto, todo apagado. Consulte el Apéndice C para conocer el caso de estudio del zumbador.
Advertencia: esta solución alternativa de cambiar el pin GPIO al modo de entrada para apagar el SSR tiene el riesgo de bloquear el circuito GPIO, lo que resulta en freír el Rpi tarde o temprano o acortar la vida útil del Rpi/s.
Parte 3 - Discusión, conclusión y recomendación
Discusión
/ continuar, ...
Conclusión
/ continuar, ...
Recomendación
(1) Los dispositivos disparados de alto nivel compatibles con Arduino casi siempre no tienen el problema de señal de alto nivel no lo suficientemente alta, por lo tanto, no se puede apagar el dispositivo.
Por otro lado, el dispositivo disparado de bajo nivel compatible con Arduno a menudo tiene el problema anterior.
Por lo tanto, para confundir a los novatos, una recomendación rápida y sucia es la siguiente:
Para jugar seguro, siempre obtenga un dispositivo activado de alto nivel, si tiene una opción.
(2) No use cambiar GPIO al modo de entrada, para evitar el bloqueo
Para evitar engancharse y freír su Rpi/3v3 Arduino Mini Pro, no use la solución de cambiar el pin GPIO al modo de entrada (configuración por configuración de modo o función de limpieza) para apagar el dispositivo.
/ continuar, ...
Respuesta larga
/ continuar, ...
Referencias
Parte A - Generalidades
(2.1) Relé de estado sólido G3MB - Omron
Parte B - Cambiador de nivel lógico (3V a 5V)
(4) TXB0108 Convertidor de nivel lógico bidireccional de 8 canales - AdaFruit US$8
(5) Cambiador de nivel cuádruple HCT125 de 3V a 5V - AdaFruit US$1.50
(6) HC03 Quad NAND Gartes con Open Drain Outpus (cambiador de nivel lógico de 3 V a 5 V)
(7) Conjuntos de transistores Darlington ULN2803A (cambiador de nivel de 3 V a 5 V) - TI
(8) Controlador de fuente de 8 canales UDN2981 (desplazador de nivel lógico de 3 V a 5 V - AllegroMicro
(9) Tutorial de nivel lógico - SparkFun
(10) Especificaciones eléctricas Rpi GPIO - Mosiac Industries
(11) Tutorial de transistores bipolares - Tutoriales de electrónica
/ continuar, ...
Apéndices
Apéndice A - Especificaciones del SSR activado por bajo nivel de HobbyComponents
(1) Especificaciones de entrada
Tensión de alimentación (CC- y CC+): 5V
Voltaje del interruptor de entrada: 0V a 2.4V
Voltaje de liberación de entrada: 3,5 a 5 V - ¡Causa raíz del problema!
(2) Especificaciones de salida
Voltaje de carga nominal: 100 V a 240 V CA
Corriente de carga: 0,10 a 2A
Sobrecorriente: 30 A (60 Hz, 1 ciclo)
Apéndice B - El nivel alto de Rpi/3v3Arduino no es un problema lo suficientemente alto
La muy triste historia comenzó en los viejos tiempos felices, cuando los aficionados jugábamos con solo 5V Arduino y todos los niveles lógicos eran una especie de 5V TTL, la vida era fácil.
Solo cuando apareció 3V3 Raspberry Pi, y más tarde también 3V3 Arduinos (por ejemplo, Pro Mini 328 3V3 8MHz), la vida se volvió confusa, especialmente para los viejos/novatos que solo conocen la lógica Arduino/TTL 5V.
Para entender por qué todos (bueno, casi) los novatos se confunden, debemos mirar de cerca el siguiente gráfico de niveles lógicos, que muestra la causa raíz de las molestias de los novatos de 3V/5V.
Gráfico de niveles lógicos
Centrémonos en las dos columnas más a la izquierda, TTL y Arduino. En esos eran los días, mis amigos de Arduino pensaron que el imperio imperial de Arudino viviría feliz para siempre, nunca imaginaron que pronto aparecerían algunos tipos grandes como Rpi. Entonces, la historia cuenta que los ingenieros de Arduino idearon un nuevo estándar/especificación de nivel lógico:
High level means at least 4.2V
Low level means at most 0.8V
El resultado es que la mayoría de los dispositivos, digamos actuadores, incluidos relés, solenoides, zumbadores, lo que sea, cumplen con esta especificación, con (este último Rpi, chicos, da miedo) el requisito de que para hacer algo usando un nivel alto, debe proporcionar 4,2 V o más. .
Por supuesto, esto hace que la vida de Rpi nazca más tarde, muy miserable, porque son tipos débiles de 3V3, y su nivel alto suele ser de 2.4V a 3.2V como máximo. Esto es lo que suelo referirme como el
El alto de Rpi no es un problema lo suficientemente alto
Apéndice C - Cambie GPIO al modo de entrada para apagar el zumbador
Por qué el zumbador activo siempre está encendido.
La causa raíz es usar un zumbador activo compatible con Arduino para Rpi. Para este zumbador compatible con Arduino, está diseñado para ser de baja actividad, es decir, cuando la señal de entrada sea inferior a aproximadamente 1,0 V, el zumbador estará encendido. Y si la señal de entrada es superior a 3,5 V, el zumbador se apagará. Ahora Arduino no tiene problema, porque su High es de unos 4,2V, muy por encima de los 3,5V.
Ahora Rpi está en un gran problema, porque su alto es solo de unos 3 V, no hay esperanza de alcanzar los 3,5 V necesarios para apagarse.
Solución alterna
Fácil: inserte una resistencia 4k7 (o un diodo, como sugiere el OP) entre el pin Rpi GPIO y la entrada del zumbador activo.
Explicación rápida y sucia.
Es muy probable que la entrada del circuito del zumbador sea un PNP BJT. Está sesgado de tal manera que cuando la señal de entrada a la base, a través de una resistencia de polarización, es de 3,5 V o más, el transistor se corta (suerte, Arduino High es de 4,2 V, por lo tanto, un corte limpio), no fluye corriente base, por lo tanto no suficiente corriente de colector para activar el zumbador piezoeléctrico.
Ahora Rpi's High es solo 3V, por lo tanto, no es lo suficientemente alto como para tener un corte limpio, lo que da como resultado una corriente de base y, por lo tanto, una corriente de colector para activar parcialmente / débilmente el piezoeléctrico, por lo tanto, el zumbido más pequeño.
La solución de insertar un 4k7 entre Rpi GPIO y la entrada es no permitir que fluya ni siquiera una pequeña corriente de base, para obtener un corte limpio, por lo que no hay sonido.
Ahora, para el caso de activación/encendido, tanto Arduino como Rpi tienen un nivel bajo inferior a 1V, por lo tanto, ambos no tienen problemas para encenderse.
En realidad, Rpi tiene el mismo problema con un par de otros dispositivos Arduino, incluido el relé de activación de bajo nivel de 5V. Del mismo modo, Rpi solo puede encenderse, pero no apagarse. El mismo truco de agregar una resistencia de 4k7 es la cura rápida. Otra solución es la siguiente:
Para apagar el relé, en lugar de configurar GPIO alto,
establecer GPIO en modo de entrada
/ continuar, ...
Apéndice D: el problema del enganche, freír el Rpi o acortar su vida
Usar la solución alternativa de cambiar el pin GPIO al modo de entrada para apagar el SSR o el relé, tiene el riesgo de bloquear el circuito del pin GPIO de Rpi o acortar la vida útil de Rpi. La razón es que conectar un pin de entrada GPIO a 5V, incluso a través de una resistencia, puede ser fatal, como se explica en el siguiente artículo.
Apéndice E: ¿Por qué los dispositivos de disparo de bajo nivel a menudo causan problemas, pero nunca los dispositivos de alto nivel?
/ continuar, ...
fin de respuesta
Esta es la forma más fácil de hacer que esto funcione: agregue solo una parte (por salida):
simular este circuito : esquema creado con CircuitLab
El esquema interno del módulo es algo como esto (desde aquí ):
El Omron SSR obtiene alrededor de 0,7 o 0,8 V menos que el voltaje de suministro y necesita un mínimo de 4 V para funcionar de manera confiable, por lo que realmente necesita un suministro de 5 V. Comienza a encenderse un par de diodos por debajo del suministro, por lo que supera el voltaje de salida máximo de la MCU de 3,3 V.
chris stratton
tlfong01