Arduino UNO R4 - Módulo MOSFET

En esta guía, aprenderemos a usar un módulo MOSFET como interruptor de potencia con el Arduino UNO R4. En detalle, aprenderemos:

Arduino UNO R4 y módulo MOSFET AOD4184, LR7843 o FR120N

Acerca del módulo MOSFET

Un pin del Arduino UNO R4 da solo 5V y una corriente muy pequeña. Eso está bien para un LED pequeño, pero no para una tira LED de 12V, un ventilador o una bomba. Un módulo MOSFET se coloca en medio: el Arduino UNO R4 envía una señal débil, y el módulo abre o cierra un camino fuerte de 12V para la carga.

Hay tres módulos populares: AOD4184 (a veces vendido como D4184), LR7843 y FR120N. Las placas se ven iguales. Tienen el mismo tamaño, los mismos pines y el mismo cableado, y usan el mismo código. El único cambio es el chip MOSFET de la parte superior.

¿Por qué usar un módulo MOSFET y no un relé?

  • Es silencioso. Nada se mueve y nada hace clic.
  • Conmuta muy rápido, así que puede hacer PWM. Esto significa que puedes atenuar una luz o reducir la velocidad de un ventilador. Un relé solo puede estar totalmente encendido o totalmente apagado.
  • No tiene contactos que se desgasten, así que dura mucho tiempo.
  • El límite: solo funciona con cargas de CC. Nunca lo uses con la red eléctrica de CA. Para dispositivos de CA, consulta el tutorial Arduino UNO R4 - Relé.
AOD4184 LR7843 FR120N
Chip MOSFET AOD4184A (canal N) IRLR7843 (canal N) IRFR120N (canal N)
Voltaje máximo de la carga (valor del chip) 40V CC 30V CC 100V CC
Corriente máxima (valor del chip) 50A 161A 9.4A
Resistencia en conducción RDS(on) unos 7 mΩ unos 3.3 mΩ unos 210 mΩ
Corriente real sin disipador unos 10–15A unos 15A unos 2A
Señal de control 3.3V / 5V, activo en ALTO 3.3V / 5V, activo en ALTO 3.3V / 5V, activo en ALTO
Aislamiento optoacoplador PC817 optoacoplador PC817 optoacoplador PC817
PWM sí, hasta unos 1 kHz sí, hasta unos 1 kHz sí, hasta unos 1 kHz
Tipo de carga solo CC solo CC solo CC

Cómo elegir uno:

  • LR7843: tiene la resistencia más baja, así que se mantiene más frío cuando pasa una corriente grande. Elígelo para cargas fuertes de 12V o 24V, como una tira LED larga o un motor grande. Su límite es 30V.
  • AOD4184: una buena opción para la mayoría de los proyectos. Soporta hasta 40V y una corriente fuerte, así que las cargas de 12V, 24V y 36V funcionan bien.
  • FR120N: acepta el voltaje más alto (hasta 100V), pero su resistencia es alta. Mantén la corriente baja, unos 2A sin disipador. Sirve para cargas pequeñas de 24V o 48V.

※ Nota:

Los números grandes como 50A o 161A son los límites del chip solo. El módulo pequeño no puede llevar tanta corriente, porque el calor es el verdadero límite. Después de unos minutos de funcionamiento, toca el MOSFET. Si está demasiado caliente para tocarlo, baja la corriente o añade un disipador.

Cómo funciona

La señal del Arduino UNO R4 no toca el MOSFET directamente. Pasa primero por un optoacoplador PC817: pin 9 → pin PWM → resistencia pequeña → LED dentro del PC817 → luz → fototransistor dentro del PC817 → puerta del MOSFET. El MOSFET es de canal N y está entre los terminales LOAD y − (un interruptor en el lado de tierra). Tu dispositivo va entre + y LOAD.

¿Qué pasa con cada señal en el pin 9? Veamos los tres casos.

El pin 9 está en BAJO (0V): el dispositivo está apagado

  1. No entra corriente en el LED dentro del optoacoplador. Se queda oscuro.
  2. El fototransistor se queda apagado, así que una resistencia en la puerta mantiene la puerta del MOSFET en 0V.
  3. El MOSFET está APAGADO. Funciona como un interruptor abierto entre LOAD y −.
  4. El cable − del dispositivo no tiene camino a tierra. No fluye corriente, y el dispositivo recibe 0V.

En el código: digitalWrite(MOSFET_PIN, LOW) o analogWrite(MOSFET_PIN, 0).

El pin 9 está en ALTO (5V): el dispositivo recibe toda la potencia

  1. Unos pocos mA entran en el LED dentro del optoacoplador, y se enciende. Está dentro del chip, así que no lo puedes ver.
  2. El fototransistor se enciende. Ahora la puerta del MOSFET recibe más o menos la mitad de la alimentación de la carga, unos 6V con un adaptador de 12V.
  3. El MOSFET se ENCIENDE por completo. Funciona como un interruptor cerrado con una resistencia muy baja: unos pocos mΩ para el AOD4184 o el LR7843, unos 0.2Ω para el FR120N.
  4. La corriente fluye en un bucle: adaptador + → terminal + → dispositivo → terminal LOAD → MOSFET → terminal − → adaptador −.
  5. El dispositivo recibe casi los 12V completos y funciona a plena potencia.

En el código: digitalWrite(MOSFET_PIN, HIGH) o analogWrite(MOSFET_PIN, 255). Una placa de 3.3V puede hacer el mismo trabajo, porque el LED del optoacoplador necesita solo una corriente pequeña.

El pin 9 envía PWM: el dispositivo recibe parte de la potencia

  1. El pin 9 cambia entre BAJO y ALTO muy rápido, unas 500 a 1000 veces por segundo (500 Hz a 1 kHz).
  2. El MOSFET lo copia: ENCENDIDO en cada parte ALTA, APAGADO en cada parte BAJA.
  3. El dispositivo recibe pulsos cortos de 12V. El ciclo de trabajo es la parte del tiempo en que la señal está en ALTO. Voltaje medio y potencia media = ciclo de trabajo × valor completo.

Con analogWrite(MOSFET_PIN, value), el valor va de 0 a 255, y el ciclo de trabajo es value / 255. Algunos ejemplos con un adaptador de 12V:

  • analogWrite(MOSFET_PIN, 0): 0%, siempre apagado, 0V de media.
  • analogWrite(MOSFET_PIN, 64): unos 25%, encendido una cuarta parte del tiempo, unos 3V de media, una cuarta parte de la potencia.
  • analogWrite(MOSFET_PIN, 128): unos 50%, encendido la mitad del tiempo, unos 6V de media, la mitad de la potencia.
  • analogWrite(MOSFET_PIN, 191): unos 75%, encendido tres cuartas partes del tiempo, unos 9V de media.
  • analogWrite(MOSFET_PIN, 255): 100%, siempre encendido, 12V, plena potencia.

Lo que ves: una tira LED se atenúa (parpadea, pero demasiado rápido para tus ojos). Un ventilador, motor o bomba gira más lento, porque su parte giratoria suaviza los pulsos.

Por qué importa la frecuencia: el PC817 es un componente lento. Si el PWM es demasiado rápido, el MOSFET no puede conmutar por completo. El dispositivo no recibe pulsos limpios, y el MOSFET se calienta. La frecuencia por defecto de analogWrite() del Arduino UNO R4 ya está en el rango seguro, así que no necesitas cambiar nada.

Otros puntos

  • El optoacoplador aísla el lado del Arduino UNO R4 del lado de 12V. El GND de la señal y el GND de la carga no están unidos en el módulo.
  • El voltaje de la puerta viene de la alimentación de la carga, así que esa alimentación debe ser de unos 6V o más. Una alimentación de carga de 5V no funcionará bien. Si la carga consume más de unos pocos amperios, usa 9V o más.
  • La placa no tiene diodo de rueda libre (flyback). Los motores, las bombas, los solenoides y las bobinas de relé lo necesitan. Añade un diodo como el 1N5819 o el 1N4007 en paralelo con la carga: el lado de la franja (cátodo) va al + de la carga, y el otro lado (ánodo) va al − de la carga.

Pinout

Pinout del módulo MOSFET AOD4184, LR7843 y FR120N

El lado de control es un conector de 2 pines (paso de 2.54mm):

  • Pin PWM: conéctalo a un pin del Arduino UNO R4. Este pin recibe la señal de ENCENDIDO/APAGADO o PWM.
  • Pin GND: conéctalo a GND del Arduino UNO R4.

El lado de potencia tiene tres bornes de tornillo:

  • Pin +: conéctalo al cable positivo de la fuente de la carga (por ejemplo, 12V) y al cable positivo de la carga. Ambos cables comparten este único borne.
  • Pin LOAD: conéctalo al cable negativo de la carga. Este es el lado que conmuta el MOSFET.
  • Pin −: conéctalo al cable negativo (tierra) de la fuente de la carga.

Las etiquetas pueden verse un poco distintas de un lote a otro. Lee siempre el texto impreso en tu propia placa.

Diagrama de Cableado

El Arduino UNO R4 solo maneja los pines PWM y GND, mientras que el adaptador de 12V alimenta la carga a través de los bornes de tornillo.

Diagrama de cableado del Arduino UNO R4 con módulo MOSFET AOD4184, LR7843 o FR120N

This image is created using Fritzing. Click to enlarge image

Desde Hasta
Pin 9 del Arduino UNO R4 PWM del módulo MOSFET
GND del Arduino UNO R4 GND del módulo MOSFET
+ del adaptador de 12V (a través del conector DC) + del módulo MOSFET
− del adaptador de 12V (a través del conector DC) − del módulo MOSFET
+ de la tira LED + del módulo MOSFET
− de la tira LED LOAD del módulo MOSFET

El optoacoplador ya está en el módulo, así que no hace falta añadir un transistor ni una resistencia. Esto hace más fácil el cableado o la soldadura. Nunca conectes los cables de 12V a ningún pin del Arduino UNO R4.

Más dispositivos que puedes conectar

¿Y si quieres usar un ventilador, una bomba o una cerradura en lugar de la tira LED? Deja el pin 9 y GND como están. Solo cambia el lado de los bornes de tornillo. Estas son las reglas que no cambian para ningún dispositivo:

  • Adaptador de corriente: + va al terminal +, − va al terminal −.
  • Dispositivo: su cable + va también al terminal + (compartido con el + del adaptador), su cable − va a LOAD.
  • Voltaje: haz coincidir el adaptador con el dispositivo (dispositivo de 12V, adaptador de 12V). Nunca bajes de 6V.
  • Corriente: el FR120N sirve solo para dispositivos pequeños (unos 2A sin disipador). Para los más grandes, elige el AOD4184 o el LR7843.
  • Diodo: un dispositivo con una bobina dentro (ventilador, motor, bomba, solenoide) necesita el diodo de rueda libre (flyback) 1N5819 o 1N4007 de la parte Cómo funciona. Franja hacia el + del dispositivo, el otro extremo al − del dispositivo.

No necesitas código nuevo. El código de arriba funciona para todos. El único cambio es para los solenoides: usa plena potencia o apagado (100% / 0%), y omite el fundido.

Ejemplo de cableado: ventilador de 12V

Cableado del Arduino UNO R4 y módulo MOSFET con un ventilador de refrigeración de 12V

This image is created using Fritzing. Click to enlarge image

  • Cable rojo al +, cable negro a LOAD.
  • ¿Hay un tercer cable amarillo? Es la señal de velocidad. Déjalo libre.
  • Añade el diodo. Cuesta casi nada y no puede hacer daño.
  • El PWM cambia la velocidad. Empieza por encima del 30%, porque muchos ventiladores no giran con un ciclo de trabajo muy bajo.

Ejemplo de cableado: tira LED de 12V

Tira LED de un solo color de 12V conectada al módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • + de la tira (a menudo marcado 12V) al +, − de la tira a LOAD.
  • Aquí no hay diodo. Una tira LED no tiene bobina.
  • El PWM cambia el brillo.
  • Las tiras largas consumen más corriente. Revisa la corriente de tu tira antes de elegir el módulo.
  • Usa una tira de un solo color. Las tiras RGB y las direccionables necesitan otro cableado.

Ejemplo de cableado: bomba de agua de 12V

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

This image is created using Fritzing. Click to enlarge image

  • + de la bomba al +, − de la bomba a LOAD.
  • Pon el diodo en paralelo con la bomba.
  • El PWM cambia el caudal.
  • No dejes que la bomba funcione sin agua.

Ejemplo de cableado: motor de CC de 12V

Cableado del motor de CC de 12V y el módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • + del motor al +, − del motor a LOAD.
  • Pon el diodo en paralelo con el motor: la franja en el lado + del motor.
  • El PWM cambia la velocidad.
  • El motor gira en un solo sentido. ¿Necesitas invertirlo? Usa un controlador de motor como el L298N. Consulta el tutorial Arduino UNO R4 - Motor de CC.

Ejemplo de cableado: cerradura de solenoide de 12V

Cerradura de solenoide de 12V conectada al módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • + de la cerradura al +, − de la cerradura a LOAD.
  • El diodo es obligatorio.
  • Solo ENCENDIDO o APAGADO total. Sin PWM.
  • No la dejes ENCENDIDA mucho tiempo, o se calienta. Dale un pulso corto de ENCENDIDO para abrir.

Ejemplo de cableado: válvula de solenoide de 12V

Válvula de solenoide de 12V normalmente cerrada con módulo MOSFET

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

  • + de la válvula al +, − de la válvula a LOAD.
  • Aquí el diodo también es obligatorio.
  • Es una válvula normalmente cerrada: ENCENDIDO la abre, APAGADO la cierra.
  • Solo ENCENDIDO o APAGADO. No uses PWM.

Cómo programar para el módulo MOSFET

No se necesita ninguna biblioteca. El código usa solo funciones integradas.

  • Define el pin del Arduino UNO R4 que se conecta al pin PWM del módulo:
const int MOSFET_PIN = 9;
  • Configura el pin como salida:
pinMode(MOSFET_PIN, OUTPUT);
  • Enciende la carga por completo o apágala por completo:
analogWrite(MOSFET_PIN, 255); // full power analogWrite(MOSFET_PIN, 0); // off
  • Define un nivel de potencia en porcentaje. Primero convierte 0–100% al rango 0–255:
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 Arduino UNO R4 - Módulo MOSFET

El siguiente código ejecuta un ciclo una y otra vez:

  • La carga está a plena potencia durante 2 segundos.
  • La carga está apagada durante 2 segundos.
  • La potencia sube del 10% al 100%, un 10% más cada 0.5 segundos.
  • La potencia baja del 90% al 0% de la misma forma.
  • El código espera 1 segundo y empieza de nuevo.
/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-mosfet-module */ const int MOSFET_PIN = 9; // Arduino UNO R4 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 el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta los componentes según el diagrama proporcionado. Deja el adaptador de 12V desenchufado por ahora.
  • Conecta la placa Arduino UNO R4 a tu computadora con un cable USB.
  • Lanza el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino UNO R4 adecuada (p. ej., Arduino UNO R4 WiFi o Arduino UNO R4 Minima) y el 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 UNO R4.
  • Enchufa el adaptador de corriente de 12V.
  • Abre el Monitor Serie y ajusta la velocidad en baudios a 9600.
  • Mira la tira LED: brilla al máximo durante 2 segundos, luego se queda oscura durante 2 segundos. Después, brilla poco a poco más, y luego poco a poco menos. Con un ventilador, oirás que la velocidad sube y baja.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' 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 Uno R4 WiFi on COM15
2

Si la tira LED no se enciende en absoluto, revisa primero la alimentación de 12V. Luego comprueba que los cables PWM y GND van al pin 9 y a GND del Arduino UNO R4.

Para saber más sobre la atenuación con PWM, consulta el tutorial Arduino UNO R4 - Fundido de LED.

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!