Usando MOSFET para encender/apagar un sensor controlado por ESP8266

Quiero alimentar una MCU (ESP8266, 3,3 V) y un sensor ultrasónico (HC-SR04, requiere >= 3,7 V) con pilas AA. Al usar un LDO eficiente (MCP1700T-3302E) y pasar mucho tiempo en modo de suspensión profunda, el consumo de corriente promedio de la propia MCU se mantiene por debajo de 0,1 mA. Sin embargo, dado que el sensor ultrasónico parece generar una corriente de reposo (relativamente alta) de alrededor de 1,5 mA, me gustaría controlar su línea VCC mediante el ESP y encenderlo solo cuando sea necesario. Hacer esto de una manera eficiente en energía parece hacerse mejor usando un MOSFET, ¿tal vez como en el siguiente esquema?

esquemático

simular este circuito : esquema creado con CircuitLab

¿Tiene sentido este plan? ¿Qué modelo sería óptimo para M1 (especialmente teniendo en cuenta el contexto de batería/baja potencia) y la compuerta requiere una resistencia adicional desplegable o en serie?

Si el ESP no mantiene su estado pin durante la suspensión, entonces necesita un pull-down o pull-up (según el tipo de MOSFET) para asegurarse de que el FET esté apagado durante el modo de suspensión.
Los miliamperios no son una unidad de potencia. Las unidades importan. Arreglalo.
@bence: Espressif sugiere que los pines mantengan su estado durante el sueño profundo (aunque la corriente está limitada a 2uA).
Sé que ha pasado mucho tiempo desde que planteaste esta pregunta, espero que aún recuerdes este proyecto porque tengo una pregunta. ¿Por qué usar MOSFET de canal P para encender el ultrasónico mientras que solo puede usar MOSFET de canal N entre el ultrasónico y GND (con una resistencia desplegable) y sin necesidad de ningún BJT? tengo un proyecto similar pero no con ultrasonido, solo un sensor que usa la misma fuente de alimentación (entre 3.3V y 5V de batería aún no estoy seguro).
Para responder a su pregunta, cambiar de tierra significa que la tierra ya no es una tierra real y eso puede causar problemas, aunque en este caso podría estar bien. Por favor, use mayúsculas correctamente para evitar parecer semianalfabeto.
Gracias. Como notará, estoy tratando de reducir el consumo de energía de mi sistema tanto como puedo, lo que explica por qué estoy evitando el uso de BJT con MOSFET o cualquier otro componente que pueda consumir energía innecesaria de la batería. Su proyecto es casi el mismo que el mío, pero usar el canal P hace que me pregunte el motivo de su elección y si funcionó. Una vez más, gracias

Respuestas (2)

Usar un MOSFET de canal P para cambiar la potencia es razonable, pero la forma en que propone conducir la puerta no lo es.

El microcontrolador puede conducir la puerta básicamente a tierra, por lo que encender el FET no es un problema. Sin embargo, el micro solo puede conducir la puerta a 3,3 V, no a su fuente, por lo que es posible que no apague el FET por completo. Desea que la puerta oscile en el rango completo de 0 a 4,5 V.

Una forma de hacerlo es usar otro transistor:

Cuando la salida digital sube, Q1 se enciende. Eso tira hacia abajo la puerta de Q2 baja, encendiéndola. Cuando la salida digital es baja, Q1 se mantiene apagado. R1 luego tira de la puerta hacia arriba, apagando Q2.

El apagado no será rápido (puede ser de unos pocos ms), pero eso no debería importar para el encendido y apagado ocasional del sensor ultrasónico.

R1 fue elegido para ser tan alto para minimizar la corriente a través de él cuando el dispositivo está encendido. Normalmente habría usado alrededor de 10 kΩ, pero en este caso consumiría alrededor del 30% de la potencia del dispositivo que se está cambiando. Hacer R1 10 veces más grande hace que use 1/10 de la energía, o solo alrededor del 3% de la corriente del dispositivo. La desventaja es que la constante de tiempo RC de R1 y la capacitancia de la puerta son más altas, llevará más tiempo apagar el FET una vez que Q1 deje de bajar la puerta. Sin embargo, unos pocos ms no deberían importar en esta aplicación tal como la describe.

Luego, R2 simplemente se convirtió en R1 x 10. Eso extraerá una pequeña cantidad de corriente de la salida digital, pero es suficiente para encender cualquier transistor NPN de señal pequeña que pueda encontrar, dado que su carga de colector es de 100 kΩ.

Una clave para esta solución son los valores de R1/R2, que son más altos de lo que OP podría encontrar al investigar las notas de aplicación de BJT. Aquellos que buscan usar esta solución deberían pensar un poco acerca de por qué R1 y R2 son los valores que son.
¿Hay alguna razón especial para que Q1 sea un BJT? ¿Habría algún problema con un NMOSFET como Q1?
@Ben: Q1 también podría ser un MOSFET de canal N, siempre que se pueda encender lo suficientemente bien con un controlador de compuerta de 3,3 V. Casi cualquier NPN de señal pequeña funcionará aquí. Esos son generalmente más baratos y más disponibles en cajas de chatarra.
@OlinLathrop Gracias por su sugerencia y la descripción detallada. Entonces, si entiendo correctamente, un MOSFET requiere un voltaje de activación (puerta) en el rango del voltaje que se cambiará (fuente de drenaje). ¿Podría el sensor también ser conmutado por un solo NPN y, de ser así, cuál es la ventaja de esta combinación BJT-MOSFET? Y (última pregunta :-) ¿hay alguna sugerencia para un MOSFET concreto, o cuáles son las especificaciones importantes a tener en cuenta al elegir?
@mar: No podría usar un solo NPN para cambiar la potencia del lado alto. Podría usar un MOSFET de un solo canal P si el procesador y el sensor estuvieran funcionando con el mismo voltaje de alimentación.
Quien sea que votó negativamente, tengo curiosidad por saber qué piensa que está mal.
¿Alguna recomendación de pieza MOSFET?

Puede haber un problema con la compuerta de su MOSfet de lado alto: ESP8266 no puede subir la compuerta de M1 hasta 4.5V. Esto significa que es posible que M1 no se apague por completo.

Dado que su carga es de baja corriente, es posible que pueda usar una puerta lógica CMOS estándar de alta velocidad como interruptor. Use una puerta compatible con TTL (HCT en lugar de HC) para igualar mejor el nivel de salida lógica de ESP8266. Tiene muchas opciones, un 74HCT2G34 es un ejemplo. En el siguiente esquema, los dos búferes de 74HCT2G34 son "BUF1" y "BUF2". Ambos están alimentados desde el lado de 4,5 V del regulador de voltaje de caída baja U2. Se puede recomendar un divisor de voltaje para convertir la salida "ECHO" de 4.5v del ultrasonido a un nivel lógico más bajo compatible con ESP8266. Una resistencia en serie simple puede ser suficiente protección para las E/S de ESP8266 contra sobrevoltaje.
Condensadores de derivación de suministro omitidos solo para mayor claridad.

esquemático

simular este circuito : esquema creado con CircuitLab

Esta solución puede ser marginal, ya que la especificación de voltaje de suministro para las puertas lógicas HCT tiene un mínimo de 4,5 V, por lo que se debe probar una condición de batería baja para un funcionamiento adecuado.

El divisor de voltaje suena como algo muy sensato, incluso si la especificación (abajo) sugiere que <= 4.5V deberían guardarse para el ESP :-) Sin embargo, dado que mis propios "estudios empíricos" mostraron que el ESP funcionó estable hasta el voltaje de la batería cayó por debajo de 3,6 V, preferiría no usar componentes que requirieran 4,5 V. ¿Por qué HC no funcionaría en este caso?
@martin: es probable que HC funcione, pero HCT ha adaptado el umbral lógico "alto" para que sea más compatible con la lógica de voltaje más bajo (como su ESP8266): obtiene una mejor inmunidad al ruido. Por otro lado, HC se especifica hasta Vdd = 3V.