ESP32 con 4 relays problemas

Hola, les explico, tengo un proyecto que realmente no me di cuenta ósea algo andaba mal, pero funcionaban las cosas, hasta que trate de encender 4 relays simultáneamente con el esp32 38 pin que tengo. todos los relés están buenos. no tiene optoacopladores, los tengo con transistor y dos resistencias una a la base y otra al colector, en fin prenden encienden, pero al tratar de encender los 4 al mismo tiempo, ninguno enciende. todos los relays, son alimentados por un LM2596 5V 3A, el tema es que al tratar de conectar el negativo del lm al gnd del esp32, automáticamente, sin inicializarse ni nada, se enciende solo el primero de los reles. queda activo, los otros apagados obviamente, sin código ni nada, como si fuera un corto circuito, en fin el lm alimenta los cuatro reles, pero el primero que le llega la corriente es al que le sucede esto, al conectarlo, ya el esp32 no prende de nuevo (si estaba prendido y le meto el gnd, sigue funcionando, pero no resetea, y si se apaga no enciende). en fin, necesito poder encender los 4 relays al mismo tiempo, puedo encender hasta 3 relays cualquiera de estos cuatro, pero no los 4 al mismo tiempo. que estará dañado? el esp32? la conexión que hice? alguien mas le sucede algo asi? ayuda sera bien recibida.

Moderador
Esquema electrónico, por favor.
Código usando etiquetas.
La próxima vez, lee donde se postean consultas de micros no Arduino como este caso.

Hola, primera vez que me animo a preguntar en el foro la verdad, no creo que las mayúsculas sean sinónimo de "gritos" ya que son letras y no sonidos(las use para resaltar lo importante)en fin. busque para postear esp32 y similares y no aparecían, asique puse electrónica y esto fue a donde me dejo poner, pero lo tendré en conocimiento ahora que lo se. no entiendo eso de "código usando etiquetas", pero el código no es el problema. ya que con un simple digitalWrite y todo vacío, pasa lo mismo que mencione en el inicio. este es el diagrama de circuito. lm2596 (regulado a 5V), alimenta a 4 relays(srd-05vdc-sl-c) con 4 transistores(2n3904), de los cuales tienen dos resistencias, una a la base(de aqui sale el in al esp32) y otro al colector (este se conecta con el positivo del lm2596) y el emisor directamente al negativo del lm2596. y bueno eso seria todo. se me ocurre que se puede haber quemado algun regulador de potencia dentro del modulo del esp32 que estoy usando. ya que también trate de conectar el lm2596 al pin gnd, del esp32 y paf se enciende el primero de los relay conectados anteriormente en el diagrama explicativo, como si hubiera un corto circuito, o algo mal conectado. revise todos los cables y todos tienen la lógica antes mencionada. creo que tratare de cambiar a relays con optoacopladores, aunque según mi lógica el esp32 debería poder encender 4 relays en simultaneo. creo que antes lo hice, pero no se, quizás se quemo el esp32. he visto que mas gente a tenido problemas con esp332 especialmente cuando no tiene optoacopladores, y tiene que usar transistores, ya que existe mas ruido, pero eso de que se encienda solo un relay al conectar la tierra para evitar ruido.. esta raro, que puedo decir, Saludos.

Desde la época de los bbs (bulletin boards services), allá por los años '80, se convino que escribir en mayúsculas equivale a gritar.
Además está aclarado en las Normas del Foro.
Si deseas resaltar un texto usa las negritas que son justo para eso.

Así como para tí lo escrito solo son letras, no sonidos, para nosotros (y el resto del mundo) un diagrama es un dibujo, no letras.

Adjunta un esquema, puede ser hecho a mano, lo importante es que se entienda.

No sabía que era el foro de la rae, desviaron todo el problema, cualquiera que lea esto, se perderá en algo que no tiene nada que ver con un problema de electrónica.. en fin lo solucionare solo. En todo caso no soy el único que tiene este problema, lo he visto en este mismo foro pero en ingles y todos están perdidos. Asique bueno ahí se ve el enfoque egocentrista que tienen algunos "genios" del foro la hora de responder lo puntual. Ahora sí alguien quiere encontrar solucion al problema no la encontrará, es más dudo que le interese lo de las mayúsculas o lo de los años 80.

@radioman85 por favor, no te corresponde en lo más mínimo tu respuesta.

De tanto en tanto llega gente y ante el menor pedido nuestro sale con que somos esto o somos lo otro.
Un esquema, lo puedes hace a mano alzada y sacarle una foto y subirlo, nadie te pide que uses el mejor programa de electrónica, algo que sea simple.
Imagina que yo nosotros nos tengamos que poner a entender que has querido decir con tu explicación, claro que se puede pero dime que pasa si uno no quiere hacerlo.
Lee las normas del foro, aporta toda la información y si no estas de acuerdo, espera a que alguien con mejor predisposición que nosotros que te pedimos un esquema electrónico te responda.

Dudo mucho esto que dices. Si es así aporta el link para entender mejor tu punto de vista. Tal vez ayude.

Moderador:
Ahora te dejo el punto 11 de las normas para que veas que nadie te solicita algo fuera de lo normal.

11. Tips para obtener mejores respuestas

• Menciona que Arduino tienes. ¿Es un UNO? ¿Leonardo? ¿Due? ¿Mini? ¿Mega? El problema podría ser específico de cualquiera de estos modelos.
• Describe tu problema en detalle.
• Si es relacionado a una pieza electrónica (chip o modulo), menciona el modelo exacto y preferentemente un link al data sheet.
• Describe cómo has conectado cosas como registros. ¿Los has conectado a tierra? ¿o +5v? ¿Están con resistencias pull-up ó pull-down? Postea el circuito si tienes dudas.
• Agrega el Sketch (código) ¡completo! Si no lo haces harás perder el tiempo a las personas que te pidan hacerlo. Sin embargo, con problemas de código, si es posible postear un sketch mínimo que reproduzca el problema - sin cientos de líneas de código. Si el problema se desvanece en el sketch reducido, el error no estaba donde pensabas que estaba.
• Copia y pega el código que te ha dado problemas, no trates de reproducirlo escribiéndolo de memoria en el post.
• Si tienes un error, postea el mensaje de error, (copia y pega). No solo digas: “Tengo un error”.
• Si has agregado sentencias para debugin en tu sketch (Serial), postea los mensajes del monitor serial (solo una muestra representativa).
• Si estas usando una librería que no viene con el IDE (en otras palabras, la has descargado de otro sitio) por favor pon un link al sitio donde la has descargado.
• Describe que esperas que pase y que es lo que pasa en realidad. No solo “no funciona”
• Si es posible, describe que es lo que tratas de hacer realmente, no solo lo que no puedes echar a andar, por ejemplo “Estoy tratando de encender un calentador y una bomba en un acuario al mismo tiempo”; no como “Como hago dos cosas al mismo tiempo”.
• Trata de aislar el problema, ya sea en código o electrónico. No nos confundamos tratando de hacer todo en de una vez. Por ejemplo si estas teniendo problemas leyendo un sensor has una simple prueba aislando el sensor y probándolo en un código dedicado solo al sensor.

Mirá, el que necesita resolver el problema sos vos, está en vos facilitar las cosas para que podamos ayudarte.

Por otro lado, discutir las Normas no tiene el menor sentido, las aceptas o no, y como todo en la vida, si no estás de acuerdo con las costumbres (en este caso las Normas) tienes toda la libertad de retirarte.

Saludos y hasta siempre.


Aquí está el diagrama, no pueden encender los 4 simultáneos el esp32, pero si 3 simultáneos cualquiera de esos 4. También si conecto el negativo al gnd del esp32. Se enciende de inmediato el rele 1, como si estuviera en corto circuito.. alguna idea?

Bueno tu diagrama tiene muchos errores.
Asi que como te dije, dudo que en el foro en inglés tenga un problema como este sobre todo porque es un problema muy básico y en este foro en español tampoco lo tendremos por dos razones:

  1. Porque ahora que has puesto un diagrama y ahora se comprende que has hecho y donde estan tus errores.
  2. porque le daremos solución.

Ves que no hay que discutir gratuitamente?
Respetando lo que se solicita nos entendemos y podemos dialogar.

Okay.. tu esquema no solo esta mal sino muy mal.
Un transitor no se polariza como lo has hecho.
Tu esquema tal vez funcionaría en parte usando mosfet 2n7000, o sea resistencia entre GPIOx y GND. La resistencia de colector a GND no tiene sentido. No vale la pena seguir haciendo correcciones.
Tampoco veo diodo en antiparalelo en bornes de los relés y eso es básico usando relés.
En fin.. muchas fallas.
Haré un esquema correcto y luego hablamos.

Los GPIO los eliges tu. Solo comparte GND del ESP32 con el GND del modulo LM2596.
Los diodos en antiparalelo son 1n4007.

1 Like

Me faltó poner que estoy usando este módulo de rele, que si tiene diodo1n4148, 3 resistencias smd(20E,102,302) y el 2TY pero no tiene octocoplador(con este me simplificó la vida no?) mi diagrama está hecho en base a este módulo, osea dónde sale rele, incluye estos componentes...quizás me faltó poner eso. A ver si eso cambia el hecho de mi conexión. Y el error extraño que tengo. Y no, no usaría el puro rele conectado sin tener diodo o resistencias.

Hi,
Para mi no puedes energizar el relay ya que tiene un transistor y posiblemente una resistencia de base que no vaz a poder energizarlo con tres voltios del esp32. Puedes hacer una prueba de desconectar el pin que energiza el relay y lo conecta directamente a lo 5 voltios. Si se energiaza indica que no puedes usar 3 voltios para energizar el relay. Vaz a tener que usar un convertidor de nivel de logica. Adjunto foto.

Seguramente el problema es el explicado en
How to use a popular 1 channel webstore relay on 3V3...

Si deseas dejar la activación por defecto (LOW) la solución más simple es la que indica @tauro0221, en cambio si deseas invertirlo (o sea que dispare con HIGH) agregas un transistor NPN como explica el mismo artículo.

Saludos

Te refieres a que en vez de usar el transistor 2N3904 debería usar un PNP? Porque el opuesto sería un 2N3906 PNP En el circuito y eso arreglaría el problema? Porque claro quiero que estén Low siempre, para evitar el gasto de corriente, y mandarle un High para activarlo que va hacer menos tiempo que el estado del low.

Saludos

Pero si logra energizar los 3 reles incluso en simultáneo, pero no los 4 al mismo tiempo. Se me ocurre que como dices puede que se deba a una caída de tensión, pero no tendría sentido ya que los 5V que alimentan a los Relays, son del LM2596 que tiene hasta de sobra para darles corriente, y tengo entendido que el pulso para que enciendan debe ser mínimo, que es lo que manda el esp32, ahora como dice máximo esfuerzo, me tinca más que sea un problema de polaridad, aunque no entendí muy bien tu respuesta si me pudieras aclarar estos puntos.

Saludos

El PNP está en la placa.
Usa la traducción automática del navegador y lee el artículo que te adjunté

No vas a evitar nada porque cuando el pin del ESP esté en LOW el colector del transistor que agregas como inversor estará en HIGH.

Pero el artículo que me mandaste hace algo similar al que yo use, pero en vez de una resistencia de 1k usa un de 10k y en vez del transistor 2N3904, usa un BC548, que requiere menos mA para funcionar y tira más voltaje que el 2N3904... Es prácticamente lo mismo. Pero puede que esas pequeñas diferencias de mA, y voltaje puedan hacer la diferencia, ya que habla que uso un inverted pero que no funcionaría del todo para volver a mandar la señal, si no me equivoco lo que lei del artículo. En fin probaré cambiando el transistor al BC548 del artículo y los 10k ojalá que esto logré hacer prender los 4 Relays simultáneamente. Y evite el corto circuito en el negativo al esp32.

Mientras el transistor sea NPN y para baja señal no hace falta cambiarlo, usa el 3904.
La resistencia de 10K en la base está para asegurar un nivel bajo (LOW) cuando al alimentar o resetear el ESP y el pin correspondiente esté en alta impedancia el relé no se active momentáneamente.

Que pena que no indicaste al principio el tipo de reles que estabas usando, te hubiera dado un mejor esquema.
Ahora no estoy en mi taller. Mañana si sigue la duda lo modifico.

Creo que este es el esquema de tu RELE, tienes 2 leds y un transitor

  1. VCC
  2. IN
  3. GND

Verifica si se aproxima.

Con un 99% de seguridad el esquema coincide con el módulo que está usando.

En el link que le adjunté al PO en #12 tiene todo lo necesario para solucionar el problema y explicado con lujo de detalles.

Hi,
Una pregunta si el transistor es un PNP enotnces tiene que prender cuando el pin esta en zero y no esta prendiendo. Quire decir que el transistor es un NPN. Ya que no prende cuando el pin es positivo. Para estar seguro mi sugerencia es de con un jumper conectar los 5 voltios al pin que energiza el relay y si prende enotonces el transistor es un NPN. Sino funciona la segunda prueba es de llevar el pin a ground y si prende entonces el transistor es un PNP. En el circuito se ve que las 3 resistencias son de 1K ohmios.
Adjunto el circuito que creo que es el que el tiene .si usa un transistor NPN.