A veces pasa que trabajando en algún proyecto nos encontramos qué necesitamos activar una carga con un microcontrolador. Ultimamente, la tendencia es bajar el voltaje de funcionamiento de los micros, pasando de los 5V a los 3.3V, lo que hace que ya no se puedan actuar sobre ciertos MOSFETs directamente. En esta entrada vamos a ver como solucionamos estos problemas, y como podemos hacer, con unos pocos componentes más, un circuito para controlar los MOSFETs más pesados.
Uno de los principales transistores MOSFET que todos tenemos a mano es el famoso IRFZ44N, y es en el que nos vamos a fijar para nuestro ejemplo. Además del MOSFET vamos a necesitar un BJT NPN y alguna resistencia. Si necesitas obtener este tipo de componentes te recomiendo este post donde explico como aprovecharnos de Aliexpress, para engordar nuestro inventario de manera muy barata.
Un poco de teoría
Hay millones, de verdad, millones, de páginas explicando como funcionan los transistores MOSFET y BJTs, así que aquí vamos a pasar de explicarlo, vamos a usarlos. Lo que sí que necesitamos saber es que los MOSFET se “activan” con voltaje y los BJT con “corriente”. Con activar nos referimos a que funcionen como un interruptor cerrado.

Imagen de un MOSFET
Entonces, para encender un MOSFET necesitamos poner en su puerta (Gate) un voltaje mayor de y cuanto mayor sea este voltaje más “activo” estará el MOSFET. Por el contrario en un BJT tendremos que hacer que pase corriente por su base, para que haga de circuito cerrado. El parámetro importante de los BJT es la relación entre la corriente de la base y el colector
, y el voltaje
y
.
Ya os aviso que esto es una aproximación muy burda, y el funcionamiento es mucho más complejo que “se activa” con corriente o con voltaje… Pero espero que os sirva para seguir el resto del post.
El problema

Circuito con solo el MOSFET
Mirando los datos del IRFZ44N, vemos que el necesario para activar el transistor está entre 2 y 4V. Si nuestro microcontrolador solo puede dar 3.3V, no tenemos suficiente voltaje para pasar el MOSFET a saturación (nombre técnico para cuando actúa como un circuito cerrado). Y esto hará que por mucho que queramos no hagamos funcionar nada que esté conectado al MOSFET.
En el circuito de la derecha tenemos el circuito que tendríamos que usar para controlar un motor con un MOSFET. Sin embargo, si cogemos los datos de nuestro querido IRFZ44N, vemos que el voltaje necesario para empezar a conducir está entre 2 y 4V.

Características del IRFZ44N
Esto significa que aunque 3.3V entren dentro del rango, no nos podemos asegurar, ya que el peor caso es que el necesario sea de 4V. Además, incluso en el caso de que el MOSFET conduzca, lo hará de manera muy ineficiente. Lo cuál provocaría que se calentase y en el peor de los casos se destrozase.
Mirando la gráfica característica del IRFZ44N podemos ver que al menos serían necesarios 5-6V para hacerlo conducir de manera más holgada, aunque cuando mayor sea el voltaje de la puerta, mejor lo hará.

Curva característica IRFZ44N
La solución
Una de las soluciones que existe, y creo, que es la más barata, es usar un BJT como driver para nuestro MOSFET (Si quieres unos cuantos). Dado que si ponemos 3.3V en la puerta del MOSFET, este no llega a conducir, vamos a usar un BJT para elevar la tensión de 3.3V hasta la que necesitamos.

MOSFET y BJT
Para nuestro circuito vamos a hacer la cuentas con el BTJ 2N3415. Como podemos ver en el esquema tenemos nuestro “alto voltaje” de 7v conectado tanto al MOSFET como al BJT. Mientras que la señal de entrada a la base del BJT sigue siendo de 3.3V.
En resumidas cuentas lo que hacemos con el siguiente circuito es:
- Cuando la señal del microcontrolador vale 3.3v, forzamos que haya corriente por la base de Q1 y el transistor hace que la diferencia entre su colector y emisor sea cercana a 0. Con esto, la puerta de Q2 está a 0 voltios también y por tanto Q2 no conduce nada y se comporta como un circuito abierto.
- Y aquí viene la magia, cuando la señal en la base de Q1 la ponemos a 0, no circula corriente por Q1, y como por la puerta de Q2 no circula corriente. Todo esto hace que en la resistencia de 10k no haya caída de voltaje y en la puerta tengamos 7v.
Como podéis ver, con una señal de 3.3v podemos controlar la puerta del MOSFET entre 0 y 7v, o potencialmente entre 0 y cualquier valor. Y así hacer que el MOSFET trabaje en su zona más eficiente.
Parecía que esto era todo, pero NO!
Si montáis el circuito, veréis que funciona, y que si conectáis un arduino de 3.3v a la base con una señal digital, podréis controlar la carga, con lógica invertida. Sin embargo, hay un problema, que depende de la aplicación.
Os pongo mi caso, este circuito lo estaba pensando para mover una bomba de agua, para que cuando el microcontrolador decidiese que había que bombear, pudiese encender una pequeña bomba de 8v. Cuál es mi sorpresa, cuando nada más conectar el circuito, la bomba se enciende y empieza a echar agua como loca.
Esto se debe a que los GPIO de los micros, generalmente arrancan en alta impedancia, y hasta que no arranca y el micro pone el GPIO correspondiente a alto, el transistor Q1 no conduce y hace que el MOSFET este encendido por defecto. Esto, en general, no es nada recomendable.

Circuito final
Para asegurarnos de que cuando la salida de nuestro micro está en alta impedancia, Q1 se active, vamos a usar una resistencia de Pull-up. De forma que por defecto, y mientras que el micro arranca, la entrada a la base de Q1 sea 3.3v.
Y esto sería todo, espero que os sirva de ayuda!
“Dame un MOSFET, una señal en la puerta y moveré el mundo” – Gluón.