Arduino Nano ESP32 - Módulo MOSFET

En esta guía, aprenderemos a usar un módulo MOSFET con el Arduino Nano ESP32 para controlar una carga de 12 V. Los pines del Nano ESP32 dan solo 3,3 V y una corriente muy pequeña, así que no pueden alimentar por sí solos una tira LED o un ventilador de 12 V. El módulo MOSFET se pone en el medio y hace el trabajo pesado. En detalle, aprenderemos:

Arduino Nano ESP32 y módulo MOSFET AOD4184, LR7843 o FR120N

Cuando esto funcione, más adelante puedes añadir WiFi al mismo programa y ajustar la potencia de tu tira o ventilador desde un móvil o una página web.

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×(Opcional) Conector de Alimentación DC
1×MOSFET Module (AOD4184, LR7843 or FR120N)
1×12V Tira LED
1×(Alternativo) 12V DC Ventilador de Refrigeración
1×Adaptador de Corriente 12V
1×DC Power Jack (for the 12V load)
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del módulo MOSFET

Piensa en el módulo MOSFET como un interruptor electrónico sin piezas móviles. El Nano ESP32 envía una señal pequeña de 3,3 V, y el módulo abre o cierra el paso de una corriente continua mucho mayor. Funciona con tiras LED de 12 V, motores de corriente continua, ventiladores, bombas, electroválvulas y calefactores.

Esta guía cubre tres módulos: AOD4184 (también vendido como D4184), LR7843 y FR120N. Usan el mismo diseño de placa. El tamaño, los pines, el cableado y el código son iguales. Solo cambia el chip MOSFET de la placa.

¿Por qué elegir un módulo MOSFET y no un relé? Un relé hace clic y se desgasta con el tiempo, y solo puede hacer ENCENDIDO o APAGADO. El módulo MOSFET es silencioso, muy rápido y dura mucho tiempo. También acepta PWM, así que puedes regular una tira LED o bajar la velocidad de un ventilador. El único límite: es solo para cargas de corriente continua. Nunca lo uses con la corriente alterna de la red.

AOD4184 LR7843 FR120N
MOSFET AOD4184A (canal N) IRLR7843 (canal N) IRFR120N (canal N)
Voltaje máximo de la carga (valor del MOSFET) 40 V CC 30 V CC 100 V CC
Corriente máxima (valor del MOSFET) 50 A 161 A 9,4 A
Resistencia en conducción RDS(on) unos 7 mΩ unos 3,3 mΩ unos 210 mΩ
Corriente práctica sin disipador unos 10–15 A unos 15 A unos 2 A
Señal de control lógica de 3,3 V / 5 V, activa en ALTO lógica de 3,3 V / 5 V, activa en ALTO lógica de 3,3 V / 5 V, activa en ALTO
Aislamiento optoacoplador PC817 optoacoplador PC817 optoacoplador PC817
PWM sí, mantener ≤ ~1 kHz sí, mantener ≤ ~1 kHz sí, mantener ≤ ~1 kHz
Tipo de carga solo CC solo CC solo CC

¿Cuál debes comprar?

  • LR7843: la resistencia más baja, así que se mantiene más frío con corriente alta. Es una buena opción para cargas grandes de 12 V o 24 V, como tiras LED largas o motores grandes. Máximo 30 V.
  • AOD4184: un buen modelo para todo. Soporta hasta 40 V con corriente fuerte, así que sirve para cargas de 12 V, 24 V y 36 V.
  • FR120N: soporta el voltaje más alto (hasta 100 V), pero su resistencia también es la más alta. Úsalo con corrientes pequeñas, unos 2 A sin disipador. Es bueno para cargas pequeñas de 24 V o 48 V.

Los números de 50 A y 161 A son límites del chip, no de la placa pequeña. En el uso real, el límite es el calor. Después de unos minutos de funcionamiento, toca el módulo. Si está demasiado caliente, reduce la carga o añade un disipador.

Cómo funciona

El lado de entrada tiene un optoacoplador PC817, y la señal del pin D9 sigue este camino: pin PWM → resistencia pequeña → LED dentro del PC817 → luz → fototransistor dentro del PC817 → puerta del MOSFET. Una resistencia en la puerta la mantiene a 0 V cuando el PC817 está apagado. Solo la luz cruza el PC817, así que el lado del Nano ESP32 y el lado de 12 V nunca se tocan. El GND de la señal y el GND de la carga no están conectados en el módulo.

El MOSFET es un interruptor de canal N en el lado bajo. Está entre el terminal LOAD y el terminal −, así que conmuta el cable negativo de la carga, no el positivo. La carga se conecta entre + y LOAD.

Esto es lo que hace el módulo con cada tipo de señal del pin D9.

ALTO (3,3 V) en el pin PWM → carga a plena potencia

  • Unos pocos mA fluyen hacia el LED dentro del PC817, y este se enciende (no lo puedes ver, está dentro del chip).
  • El fototransistor conduce y da a la puerta del MOSFET cerca de la mitad del voltaje de la carga. Con un adaptador de 12 V, son unos 6 V.
  • El MOSFET está ahora totalmente ENCENDIDO, como un interruptor cerrado. Su resistencia es muy pequeña: unos pocos mΩ (AOD4184, LR7843) o unos 0,2 Ω (FR120N).
  • La corriente va del + del adaptador al terminal +, pasa por la carga, entra en LOAD, pasa por el MOSFET, sale por − y vuelve al − del adaptador.
  • La carga recibe casi los 12 V completos. El pin de 3,3 V es suficiente para esto, porque el LED del PC817 necesita solo una corriente pequeña. No hace falta un adaptador de nivel.
  • Código: analogWrite(MOSFET_PIN, 255), o 100% de ciclo de trabajo.

BAJO (0 V) en el pin PWM → carga apagada

  • No hay corriente, así que el LED dentro del PC817 se queda oscuro.
  • El fototransistor está apagado. La resistencia de la puerta mantiene la puerta a 0 V.
  • El MOSFET está APAGADO, como un interruptor abierto entre LOAD y −.
  • El cable negativo de la carga queda cortado del adaptador, así que no fluye corriente y la carga recibe 0 V.
  • Código: analogWrite(MOSFET_PIN, 0), o 0% de ciclo de trabajo.

Señal PWM en el pin PWM → carga a media potencia

  • D9 cambia entre BAJO y ALTO muy rápido. El analogWrite() del Nano ESP32 usa 1 kHz por defecto, es decir, 1000 veces por segundo.
  • El MOSFET sigue cada cambio: ENCENDIDO en cada parte ALTA, APAGADO en cada parte BAJA. La carga recibe pulsos de 12 V.
  • El ciclo de trabajo es la parte del tiempo en que el pin está en ALTO. Es el valor de analogWrite() dividido entre 255. El voltaje medio y la potencia son el ciclo de trabajo por el valor completo. Con una fuente de 12 V:
    • AnalogWrite 64 (25%) → unos 3 V de media → cerca de un cuarto de la potencia
    • AnalogWrite 128 (50%) → unos 6 V de media → cerca de la mitad de la potencia
    • AnalogWrite 191 (75%) → unos 9 V de media → cerca de tres cuartos de la potencia
  • Una tira LED se ve más tenue, porque parpadea demasiado rápido para tus ojos. Un ventilador, motor o bomba gira más lento, porque su parte giratoria suaviza los pulsos. Un ventilador puede no arrancar con un ciclo de trabajo bajo.
  • El PC817 es lento, así que mantén la frecuencia entre 500 Hz y 1 kHz. El valor por defecto de 1 kHz está bien. Con una frecuencia mucho más alta, el MOSFET no conmuta del todo, los pulsos se deforman y el MOSFET se calienta.
  • No uses PWM en una cerradura o válvula con solenoide. Usa solo ALTO y BAJO con ellas.

Algunas reglas que debes recordar:

  • Como la puerta recibe solo cerca de la mitad del voltaje de la carga, la fuente de la carga debe ser de al menos unos 6 V. Una fuente de 5 V no funcionará bien. Si la carga consume más de unos pocos amperios, usa 9 V o más.
  • La placa no tiene diodo de rueda libre (flyback). Para un motor, bomba, solenoide o bobina de relé, añade un diodo externo (por ejemplo 1N5819 o 1N4007) en paralelo con la carga. Conecta el cátodo (el lado con la franja) al + de la carga y el ánodo al − de la carga.

Diagrama de pines

Diagrama de pines del módulo MOSFET AOD4184, LR7843 y FR120N

El módulo tiene dos grupos de pines. Un conector de 2 pines (2,54 mm, cabe en una protoboard) está en el lado de control, y las borneras de tornillo están en el lado de potencia.

Lado de control:

  • Pin PWM: conéctalo a un pin GPIO del Arduino Nano ESP32 (la señal de control)
  • Pin GND: conéctalo a GND del Arduino Nano ESP32 (tierra de la señal)

Lado de potencia:

  • Pin +: conéctalo al positivo de la fuente de la carga (por ejemplo 12 V) Y al cable positivo de la carga. Ambos cables comparten este terminal.
  • Pin LOAD: conéctalo al cable negativo de la carga (este es el lado conmutado, va al drenador del MOSFET)
  • Pin −: conéctalo al negativo (tierra) de la fuente de la carga

Las etiquetas pueden ser un poco distintas entre lotes. Lee siempre el texto impreso en tu propia placa.

Diagrama de Cableado

El Nano ESP32 solo envía una señal desde el pin D9 (más GND) a los pines PWM y GND del módulo, mientras que el adaptador de 12 V alimenta la carga a través de las borneras de tornillo, así que los 12 V nunca se acercan a los pines de la placa.

Diagrama de cableado del Arduino Nano ESP32 con módulo MOSFET AOD4184, LR7843 o FR120N

This image is created using Fritzing. Click to enlarge image

Ejemplos: conectar diferentes cargas

¿Quieres controlar algo distinto de una tira LED? Deja los cables D9 y GND del Nano ESP32 como están. Solo cambia el lado de potencia, y el patrón es siempre el mismo:

  • El + del adaptador de 12 V al terminal +, y el − del adaptador al terminal −.
  • El cable + de la carga al mismo terminal +, y el cable − de la carga al terminal LOAD.

Antes de empezar:

  • Elige el adaptador según la carga. Una carga de 12 V necesita un adaptador de 12 V. El módulo necesita al menos 6 V para funcionar.
  • Elige el módulo según la corriente. El FR120N sirve solo para cargas pequeñas (unos 2 A sin disipador). Para cargas mayores, usa el AOD4184 o el LR7843.
  • Puedes subir el mismo código para todas las cargas. Para un solenoide, usa solo ENCENDIDO total y APAGADO total (ALTO y BAJO) en lugar del efecto de atenuación.

El diodo de rueda libre de la parte "Cómo funciona" es necesario para cada carga de abajo que tiene una bobina dentro: el motor, el ventilador, la bomba y los dos solenoides. Ponlo entre los dos cables de la carga, con la franja hacia el +.

Ejemplo con motor de CC de 12 V

Ejemplo con Arduino Nano ESP32: módulo MOSFET controlando un motor de CC de 12 V

This image is created using Fritzing. Click to enlarge image

El + del motor va a +, el − del motor va a LOAD. Añade el diodo (1N5819 o 1N4007): el lado de la franja (cátodo) al + del motor, el otro lado (ánodo) al − del motor. El PWM cambia la velocidad.

El módulo solo puede girar el motor en un sentido. Si necesitas avance y retroceso, usa un controlador de motor como el L298N. La guía Arduino Nano ESP32 - Motor de CC muestra cómo.

Ejemplo con ventilador de 12 V

Módulo MOSFET conectado a un ventilador de 12 V

This image is created using Fritzing. Click to enlarge image

El cable rojo (+) va a +, el cable negro (−) va a LOAD. Si tu ventilador tiene un cable amarillo, es la señal de velocidad. Déjalo libre. El diodo también es una buena idea aquí, porque es barato y seguro. El PWM ajusta la velocidad del ventilador, pero un ventilador puede no arrancar con un ciclo de trabajo bajo, así que empieza desde un 30% o más.

Ejemplo con tira LED de 12 V

Cableado de una tira LED de 12 V de un solo color al módulo MOSFET

This image is created using Fritzing. Click to enlarge image

Es la misma carga que en el diagrama principal. El + de la tira (a menudo marcado 12V) a +, el − de la tira a LOAD. No hace falta diodo, porque una tira LED no tiene bobina. El PWM ajusta el brillo. Una tira larga consume más corriente, así que revisa primero su corriente y elige el módulo adecuado. Nota: esto funciona con una tira de un solo color, no con tiras RGB ni direccionables.

Ejemplo con bomba de agua de 12 V

Bomba de agua de 12 V conectada al módulo MOSFET

This image is created using Fritzing. Click to enlarge image

El + de la bomba a +, el − de la bomba a LOAD, y añade el diodo. El PWM ajusta el caudal de agua. No dejes que la bomba funcione sin agua.

Ejemplo con cerradura con solenoide de 12 V

Ejemplo de módulo MOSFET con una cerradura con solenoide de 12 V

This image is created using Fritzing. Click to enlarge image

Conéctala como la bomba, con el diodo. Solo enciéndela por completo o apágala por completo (100% o 0%). Sin regulación PWM. La cerradura se calienta si la dejas ENCENDIDA, así que enciéndela por un momento corto para abrir y luego APÁGALA.

Ejemplo con electroválvula de 12 V

Electroválvula de 12 V normalmente cerrada conectada al módulo MOSFET

This image is created using Fritzing. Click to enlarge image

Mismo cableado, mismo diodo. Esta es una válvula normalmente cerrada: ENCENDIDO la abre, APAGADO la cierra. Usa solo ENCENDIDO y APAGADO, no PWM.

Cómo programar el módulo MOSFET

No hace falta ninguna biblioteca. El Nano ESP32 usa la función integrada analogWrite().

  • Define el pin del Arduino Nano ESP32 que se conecta al pin PWM del módulo:
const int MOSFET_PIN = D9;
  • Pon el pin como salida y empieza con la carga APAGADA:
pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0);
  • Enciende la carga por completo:
analogWrite(MOSFET_PIN, 255);
  • Apaga la carga:
analogWrite(MOSFET_PIN, 0);
  • Ajusta la carga a un nivel de potencia en porcentaje (0 a 100):
int duty = map(percent, 0, 100, 0, 255); analogWrite(MOSFET_PIN, duty);

Si solo necesitas ENCENDIDO y APAGADO, digitalWrite(MOSFET_PIN, HIGH) y digitalWrite(MOSFET_PIN, LOW) también funcionan.

Código del Arduino Nano ESP32 - Módulo MOSFET

El siguiente código enciende la carga durante 2 segundos y la apaga durante 2 segundos. Luego sube la potencia del 10% al 100% en pasos del 10%, cada 0,5 segundos. Después baja la potencia del 90% al 0%, espera 1 segundo y empieza otra vez.

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-mosfet-module */ const int MOSFET_PIN = D9; // Arduino Nano ESP32 pin connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

Pasos R\u00e1pidos

Sigue estas instrucciones paso a paso:

  • Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta los componentes según el diagrama. Deja el adaptador de 12 V desenchufado por ahora.
  • Conecta el Arduino Nano ESP32 a tu ordenador con un cable USB Type-C.
  • Inicia el IDE de Arduino en tu ordenador.
  • Selecciona la placa Arduino Nano ESP32 (por ejemplo, Arduino Nano ESP32) y su puerto COM.
  • Copia el código anterior y pégalo en el IDE de Arduino.
  • Haz clic en el botón Subir para enviar el código al Arduino Nano ESP32.
  • Enchufa el adaptador de corriente de 12 V.
  • Abre el Monitor Serie y ajusta la velocidad a 9600 baudios.
  • Mira la tira LED: brillo total durante 2 segundos, oscura durante 2 segundos, y luego brilla poco a poco más y se atenúa poco a poco otra vez.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Si conectaste un ventilador de 12 V, lo oirás girar a plena velocidad, parar, y luego acelerar y frenar con el mismo patrón.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!