Controlar Mosfets con ESP-01

Hola,
Estoy tratando de activar un par de MOSFET NDP6020P (Tipo P) mediante un ESP-01 según el circuito de la figura:
1591647739404.png
Sé que el Sketch del ESP-01 (es el ejemplo de Blink) funciona porque si desconecto el GPIO02 de la base del BJT y lo conecto directamente a un LED, éste se enciende y apaga según lo programado en el sketch.

La parte del circuito que "ceba" los 2 MOSFET también funciona por su cuenta porque si en lugar de la salida del ESP-01, uso un cable para conectar la base del BJT directamente a 3,3V o a tierra, el circuito funciona perfectamente, encendiendo y apagando los LEDs 1 y 2.

Tengo el circuito montado en una protoboard y conecto el ESP-01 mediante un adaptador como el de la foto. He probado con varios ESP-01 y varios adaptadores del mismo tipo, así que descarto fallos por hardware averiado.
1591647807596.png

Lo curioso es que si tengo el circuito con tensión (alimentación del circuito y alimentación del ESP-01 con tierras unidas) y enchufo el ESP-01 al adaptador, todo funciona perfectamente, pero si enchufo primero el ESP-01 y luego doy tensión, se quedan los Leds rojo (LED1) y verde (LED2) encendidos y ya no se apagan. Además, si pasa esto, ya da igual que ponga a tierra el pin de RST o el de CHPD del ESP-01. Ya no se recupera.

Mi sospecha es que, de alguna manera, el circuito, le afecta al ESP-01 a través de su pin GPIO02. He probado a poner un diodo en serie con R1, por si estuviera entrándome corriente desde el transistor al pin del ESP-01, pero no resuelve nada (aunque creo que esto no es concluyente). También he probado a poner una resistencia de Pull-Down the 100K en la base del BJT y tampoco ha servido de nada.
Me he dado cuenta de que cuando pongo el pin RST del ESP-01 a tierra, el LED del ESP no termina de apagarse. He probado a cambiar el valor de R1 por otra resistencia de 100K y entonces el ESP-01 sí se resetea, pero la R es demasiado grande y la I-base del BJT no alcanza a saturar el transistor cuando mando un 1 por el pin del microcontrolador.
Creo que tengo bastante claro que el problema es que me entra corriente desde el BJT hacia el pin del ESP-01, pero no sé cómo evitarlo.

¿Alguien tiene alguna idea de qué puede estar pasando o de qué puedo medir para sacar alguna conclusión?
 

Adjuntos

  • 1591647643806.png
    1591647643806.png
    32.9 KB · Visitas: 4
Última edición:
El conjunto de LEDs y MOSFETs lo alimentas con una fuente de 12V. ¿Con qué fuente alimentas la protoboard?.
Hay veces que si se mezclan dos fuentes distindas y una no tiene buen aislamiento galvánico, puede haber incluso 220VAC entre una y otra. Lo he visto en varias ocasiones. Ocasionando averias extrañas.
Supongo que cuando dices "tierra" te refieres a masa, cero voltios. Prueba a medir AC con respecto a tierra real por si acaso.
Cuando se te quedan los LEDs encendidos y tenían que estar apagados, no tienes más que medir tensiones en MOSFET y transistor para ver qué tensión no debería estar y de dónde viene.
 
Lo que no me gusta es ese pull-up compartido en dos líneas de tensión distintas 5V y 3,3V.

¿Por qué no probás solo con un led a ver si se da ese problema (sacá el otro mosfet)?
 
El conjunto de LEDs y MOSFETs lo alimentas con una fuente de 12V. ¿Con qué fuente alimentas la protoboard?.
La protoboard la alimento con una pila de 9V. También he probado a quitar la fuente y usar ahí también otra pila de 9V. El resultado no cambia.
Hay veces que si se mezclan dos fuentes distindas y una no tiene buen aislamiento galvánico, puede haber incluso 220VAC entre una y otra. Lo he visto en varias ocasiones. Ocasionando averias extrañas.
Supongo que cuando dices "tierra" te refieres a masa, cero voltios. Prueba a medir AC con respecto a tierra real por si acaso.
Sí es "masa", en vez de "tierra" (intentaré cambiar el texto si consigo ser capaz de encontrar donde se edita). He medido, pero no sé muy bien qué tengo que medir... Midiendo en alterna me salen 81V. En continua, me salen 0V. No sé interpretar esto. En cualquier caso, como también me pasa con 2 pilas de 9V (sin fuente), no creo que el origen del problema esté ahí.
Cuando se te quedan los LEDs encendidos y tenían que estar apagados, no tienes más que medir tensiones en MOSFET y transistor para ver qué tensión no debería estar y de dónde viene.
En la base del BJT tengo 0,3V. En las Gates tengo 0,76V y en Drain y Source tengo 5V en Q2 y 3,3V en Q3.
Si quito la parte de Q3, tengo 0,3V en la base del BJT, 0,9 en la Gate de Q2 y en Drain y Source tengo 5V.
Yo no veo nada raro.
Lo que no me gusta es ese pull-up compartido en dos líneas de tensión distintas 5V y 3,3V.

¿Por qué no probás solo con un led a ver si se da ese problema (sacá el otro mosfet)?
Acabo de hacer la prueba, pero pasa lo mismo.
 
yo intentaria:
R1-10K o 2k2
R2 y R3 1K

y cambiar de puerto, yo tuve problemas con un esp8266 usando el puerto del LED
no he investigado bien, pero supongo que el Led funciona como pullup y el puerto no tiene suficiente corriente para saturar un transistor. podrias tambien, si tienes el equipo, intentar desoldar el LED
 
Última edición:
Pues finalmente funciona, pero no sé qué tenía mal.
Cambiando las conexiones de GPIO2 a GPIO0 (gracias por el consejo, papirrin) he debido de mover algo sin darme cuenta y ahora funciona tanto con el GPIO0, como con el GPIO2. También funciona sólo con Q2, sólo con Q3 y con Q2 y Q3 a la vez.
Dejo el esquema por si a alguien le sirve de algo (he cambiado las R Pull-Up de 100 K por resistencias de 10K). Esto lo tenía mal en el esquema, pero desde el principio eran de 10K, no ha sido un cambio físico.
Quiero daros las gracias por la ayuda y pediros perdón por el tiempo que os he hecho perder.


1591823764481.png
 
Arriba