Arduino Nano - Módulo MOSFET

Este tutorial te enseña cómo usar Arduino Nano para encender, apagar y regular una carga de 12V CC con un módulo MOSFET. El pequeño Nano está sobre una protoboard y solo da una señal de 5V, mientras que el módulo MOSFET maneja el lado pesado de 12V. En detalle, aprenderemos:

Te sugerimos:

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cable USB A a Mini-B
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×Conector de Alimentación DC
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

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

Un pin de Arduino Nano solo puede dar unos pocos miliamperios a 5V. Eso es suficiente para un LED pequeño, pero no para una tira LED de 12V, un ventilador o una bomba. El módulo MOSFET está entre los dos mundos. El Nano envía una señal pequeña, y el MOSFET del módulo abre o cierra el paso de la corriente grande de 12V.

Este tutorial cubre tres módulos: AOD4184 (también vendido como D4184), LR7843 y FR120N. Usan el mismo diseño de placa, con el mismo tamaño, los mismos pines, el mismo cableado y el mismo código. Solo cambia el chip MOSFET de la placa.

AOD4184 LR7843 FR120N
MOSFET AOD4184A (canal N) IRLR7843 (canal N) IRFR120N (canal N)
Voltaje máximo de la carga (valor del MOSFET) 40V CC 30V CC 100V CC
Corriente máxima (valor del MOSFET) 50A 161A 9.4A
Resistencia de encendido RDS(on) unos 7 mΩ unos 3.3 mΩ unos 210 mΩ
Corriente práctica sin disipador unos 10–15A unos 15A unos 2A
Señal de control lógica de 3.3V / 5V, activa en ALTO lógica de 3.3V / 5V, activa en ALTO lógica de 3.3V / 5V, 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

¿Por qué elegir un módulo MOSFET y no un relé? No hace ruido de clic, no tiene piezas móviles, conmuta muy rápido y dura mucho tiempo. Sobre todo, admite PWM, así que el Nano puede regular una tira LED o reducir la velocidad de un ventilador. Un relé solo puede hacer ENCENDIDO y APAGADO.

Esquema de pines del módulo MOSFET

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

El módulo tiene dos grupos de pines. El grupo de control es un pequeño conector de 2 pines con paso de 2.54mm, por lo que encaja directo en una protoboard junto al Nano:

  • Pin PWM: debe conectarse a un pin del Arduino Nano con capacidad PWM (D9 en este tutorial). Este pin recibe la señal de control
  • Pin GND: debe conectarse al pin GND de Arduino Nano (tierra de la señal)

El grupo de potencia tiene tres bornes de tornillo, porque lleva la corriente de la carga:

  • Pin +: debe conectarse al positivo (+) de la fuente de alimentación de la carga, por ejemplo 12V, y al cable positivo de la carga. Ambos cables comparten este único borne
  • Pin LOAD: debe conectarse al cable negativo de la carga. Este es el lado conmutado, y va al drenador del MOSFET
  • Pin −: debe conectarse al negativo (−) de la fuente de alimentación de la carga

※ Nota:

La disposición de los pines de un módulo puede ser diferente de un fabricante a otro. Las etiquetas también pueden cambiar un poco entre lotes. Es esencial consultar siempre las etiquetas impresas en el módulo cuando lo uses. ¡Míralas con atención!

Cómo funciona el módulo

La señal del Nano no va directamente al MOSFET. Sigue este camino: pin D9 del Nano → pin PWM → resistencia pequeña → LED dentro del optoacoplador PC817 → luz → fototransistor dentro del PC817 → puerta del MOSFET. Una resistencia pull-down en la puerta la mantiene a 0V mientras el optoacoplador está apagado. El MOSFET está entre el borne LOAD y el borne −, y la carga está entre + y LOAD.

El módulo reacciona de tres formas distintas, según lo que el Nano ponga en el pin PWM.

Caso 1: El pin PWM está en BAJO (0V)

  • No pasa corriente al optoacoplador, así que su LED sigue apagado.
  • El fototransistor sigue apagado. La resistencia pull-down mantiene la puerta del MOSFET a 0V.
  • El MOSFET está APAGADO. Entre LOAD y −, se comporta como un interruptor abierto.
  • El cable − de la tira LED no tiene camino hacia el − del adaptador, así que no pasa corriente. La tira recibe 0V y sigue apagada.
  • En el código: digitalWrite(MOSFET_PIN, LOW) o analogWrite(MOSFET_PIN, 0).

Caso 2: El pin PWM está en ALTO (5V)

  • El pin de 5V empuja unos pocos mA por el LED del optoacoplador. Se enciende dentro del chip, donde no puedes verlo.
  • La luz activa el fototransistor. Ahora la puerta del MOSFET recibe cerca de la mitad de la tensión de la carga, unos 6V con un adaptador de 12V.
  • El MOSFET se ENCIENDE por completo. Se comporta como un interruptor cerrado con una resistencia muy baja: unos pocos mΩ para el AOD4184 y el LR7843, unos 0.2Ω para el FR120N.
  • La corriente fluye en un lazo: adaptador + → borne + → tira LED → borne LOAD → MOSFET → borne − → adaptador −.
  • La tira recibe casi los 12V completos y brilla a máxima intensidad.
  • En el código: digitalWrite(MOSFET_PIN, HIGH) o analogWrite(MOSFET_PIN, 255).

Caso 3: El pin PWM recibe una señal PWM

  • El pin cambia entre 0V y 5V unas 490 veces por segundo (la frecuencia predeterminada de analogWrite() en D9).
  • El MOSFET sigue cada pulso: está ENCENDIDO durante cada parte ALTA y APAGADO durante cada parte BAJA.
  • La carga recibe pulsos de 12V. El ciclo de trabajo es la parte del tiempo en que el pin está en ALTO, y el voltaje y la potencia promedio son iguales al ciclo de trabajo multiplicado por el valor completo.
  • En el código: analogWrite(MOSFET_PIN, value), donde value va de 0 a 255 y el ciclo de trabajo es value / 255. El código del tutorial va del 10% al 100% en pasos.
Ciclo de trabajo Valor de analogWrite() La carga está ENCENDIDA Voltaje promedio (fuente de 12V) Potencia
0% 0 nunca 0V apagada
25% 64 1/4 del tiempo unos 3V cerca de un cuarto
50% 128 la mitad del tiempo unos 6V cerca de la mitad
75% 191 3/4 del tiempo unos 9V cerca de tres cuartos
100% 255 todo el tiempo 12V completa
  • Una tira LED se ve más tenue. Sigue parpadeando, pero demasiado rápido para que el ojo lo note.
  • Un ventilador, motor o bomba gira más lento, porque su masa en rotación suaviza los pulsos.
  • El PC817 es una pieza lenta, así que la frecuencia PWM debe mantenerse entre unos 500 Hz y 1 kHz. Con una frecuencia mucho más alta, el MOSFET no conmuta por completo, la carga no recibe pulsos limpios y el MOSFET se calienta. Los 490 Hz del pin D9 están bien.

Algunos puntos más son importantes para tu proyecto:

  • Tierras aisladas: La GND de la señal y la GND de la carga NO están conectadas en el módulo. El lado del Nano y el lado de 12V están separados eléctricamente por el optoacoplador.
  • Interruptor en el lado bajo: El MOSFET es de canal N. Conmuta el cable negativo de la carga, no el positivo.
  • Alimentación de la carga de al menos unos 6V: Como se ve en el Caso 2, el voltaje de la puerta viene de la alimentación de la carga a través de un divisor de voltaje. Por eso, la alimentación de la carga debe ser de al menos unos 6V. Usa 9V o más si la carga consume más de unos pocos amperios. El módulo NO funcionará bien con una alimentación de carga de 5V, así que no uses el pin de 5V del Nano para alimentar la carga.
  • Corriente de control pequeña: El LED del optoacoplador necesita solo unos pocos mA, así que un pin del Nano puede manejarlo directamente sin un transistor extra.
  • Sin diodo de rueda libre (flyback) en la placa: Para motores, bombas, solenoides y relés (cargas inductivas), agrega un diodo de rueda libre (flyback) externo (por ejemplo 1N5819 o 1N4007) en paralelo con la carga. El cátodo (el lado con la raya) va al + de la carga, y el ánodo va al − de la carga.

Diagrama de Cableado

El Nano y el módulo comparten solo dos cables (señal y GND), y el adaptador de 12V alimenta el lado de la carga a través del conector de alimentación DC, como se muestra abajo.

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

This image is created using Fritzing. Click to enlarge image

Desde Hacia
Pin D9 de Arduino Nano Pin PWM del módulo MOSFET
GND de Arduino Nano Pin GND del módulo MOSFET
+ del adaptador de 12V (por el conector de alimentación DC) + del módulo MOSFET
− del adaptador de 12V (por el conector de alimentación DC) − del módulo MOSFET
+ de la tira LED + del módulo MOSFET (el mismo borne que el + del adaptador)
− de la tira LED LOAD del módulo MOSFET

WARNING

Nunca conectes los cables de 12V a ningún pin de Arduino Nano. Los 12V van solo a los bornes de tornillo del módulo MOSFET.

Cableado del módulo MOSFET con otros dispositivos de 12V

La tira LED es solo una opción. Los ejemplos de abajo muestran otras cargas comunes de 12V. En el lado del Nano, nada cambia: D9 va a PWM y GND va a GND. Solo es diferente el lado de los bornes de tornillo. La tabla da una vista rápida:

Dispositivo Diodo de rueda libre (flyback) Cómo controlarlo
Tira LED de 12V (un solo color) No es necesario PWM (brillo)
Motor de CC de 12V Necesario PWM (velocidad)
Ventilador de refrigeración de 12V Necesario PWM (velocidad)
Bomba de agua de 12V Necesario PWM (caudal)
Cerradura de solenoide de 12V Necesario Solo ENCENDIDO/APAGADO
Válvula de solenoide de 12V Necesario Solo ENCENDIDO/APAGADO

Para cada dispositivo, el voltaje del adaptador debe coincidir con el voltaje del dispositivo (un dispositivo de 12V necesita un adaptador de 12V), y debe ser de al menos 6V. Comprueba también cuánta corriente consume el dispositivo. El módulo FR120N es solo para cargas pequeñas de unos 2A sin disipador. Para cargas más grandes, elige el módulo AOD4184 o LR7843.

El mismo código de Arduino Nano sirve para todos estos dispositivos. Para la cerradura de solenoide y la válvula de solenoide, usa solo HIGH y LOW (100% o 0%) en lugar del efecto gradual.

Ejemplo de cableado de la tira LED de 12V

Diagrama de cableado del módulo MOSFET con una tira LED de 12V

This image is created using Fritzing. Click to enlarge image

  • El cable + de la tira (a menudo marcado 12V) debe conectarse a +, y el cable − debe conectarse a LOAD.
  • Una tira LED no es una carga con bobina, así que no necesita un diodo de rueda libre (flyback).
  • El PWM ajusta el brillo.
  • Este ejemplo es solo para una tira de un solo color. Las tiras RGB y las direccionables se cablean de otra forma. Una tira más larga consume más corriente, así que comprueba su corriente antes de elegir el módulo.

Ejemplo de cableado del motor de CC de 12V

Motor de CC de 12V conectado a un módulo MOSFET

This image is created using Fritzing. Click to enlarge image

Desde Hacia
+ del motor + del módulo MOSFET
− del motor LOAD del módulo MOSFET
Diodo 1N5819 o 1N4007, cátodo (raya) + del motor
Diodo 1N5819 o 1N4007, ánodo − del motor

Un motor es una carga con bobina. El diodo en paralelo con los cables del motor protege al MOSFET del pico de voltaje cuando el motor se apaga (consulta "Sin diodo de rueda libre (flyback) en la placa" arriba). El PWM ajusta la velocidad. El módulo solo puede mover el motor en un sentido. Para cambiar el sentido, usa un controlador de motor como el L298N, como en el tutorial Arduino Nano - Motor de CC.

Ejemplo de cableado del ventilador de refrigeración de 12V

Diagrama de cableado de un ventilador de refrigeración de 12V y un módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • El cable rojo es +, y debe conectarse a +. El cable negro es −, y debe conectarse a LOAD.
  • Si el ventilador tiene un tercer cable (amarillo, la señal de velocidad), déjalo sin conectar.
  • Agrega el diodo de rueda libre (flyback) de la misma forma que para el motor de CC. Es barato y no causa ningún daño.
  • El PWM ajusta la velocidad. Algunos ventiladores no arrancan con un ciclo de trabajo muy bajo, así que empieza por encima de un 30%.

Ejemplo de cableado de la bomba de agua de 12V

Cableado de una bomba de agua de 12V con el módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • El + de la bomba va a +, y el − de la bomba va a LOAD.
  • Una bomba tiene un motor dentro, así que se requiere el mismo diodo de rueda libre (flyback).
  • El PWM ajusta el caudal. Nunca dejes que la bomba funcione en seco.

Ejemplo de cableado de la cerradura de solenoide de 12V

Diagrama de cableado de una cerradura de solenoide con el módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • El + de la cerradura va a +, y el − de la cerradura va a LOAD. La bobina interna también requiere el diodo de rueda libre (flyback).
  • Actívala solo completamente ENCENDIDA o completamente APAGADA. No uses regulación PWM.
  • La cerradura se calienta si permanece ENCENDIDA mucho tiempo. Enciéndela solo un momento corto para abrir, y luego APÁGALA.

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

Cableado del módulo MOSFET para una válvula de solenoide de 12V normalmente cerrada

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

  • El + de la válvula va a +, y el − de la válvula va a LOAD, con el diodo de rueda libre (flyback) en paralelo con la bobina.
  • Es una válvula normalmente cerrada: completamente ENCENDIDA abre la válvula, y APAGADA la cierra.
  • Usa solo ENCENDIDO/APAGADO, no PWM.

Cómo programar para el módulo MOSFET

No se necesita ninguna biblioteca. El módulo se maneja con las funciones integradas de Arduino.

  • El primer paso es indicar el pin de Arduino Nano que está conectado al pin PWM del módulo. Debe ser un pin PWM (marcado con ~ en el Nano, como D9):
const int MOSFET_PIN = 9;
  • Configura el pin como salida en setup():
pinMode(MOSFET_PIN, OUTPUT);
  • Para encender la carga por completo o apagarla por completo, basta una escritura digital simple:
digitalWrite(MOSFET_PIN, HIGH); // load ON digitalWrite(MOSFET_PIN, LOW); // load OFF
  • Para ajustar un nivel de potencia, escribe un valor PWM de 0 a 255. Es más fácil pensar en porcentaje, así que el valor en porcentaje se convierte con map():
int duty = map(percent, 0, 100, 0, 255); analogWrite(MOSFET_PIN, duty);

Código de Arduino Nano para el módulo MOSFET

El código de abajo hace lo siguiente en un bucle:

  • Enciende la carga por completo durante 2 segundos, y luego la apaga por completo durante 2 segundos
  • Sube la potencia del 10% al 100% en pasos del 10%, un paso cada 0.5 segundos
  • Baja la potencia del 90% de vuelta al 0% de la misma forma
  • Espera 1 segundo y empieza de nuevo
/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-mosfet-module */ const int MOSFET_PIN = 9; // Arduino Nano 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

  • Si es la primera vez que usas Arduino Nano, consulta cómo configurar el entorno para Arduino Nano en el IDE de Arduino.
  • Conecta los componentes como se muestra en el diagrama. Todavía no enchufes el adaptador de 12V.
  • Conecta la placa Arduino Nano a tu computadora con un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Nano 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 cargar el código en el Arduino Nano.
  • Enchufa el adaptador de corriente de 12V.
  • Abre el Monitor Serie y ajusta la velocidad en baudios a 9600.
  • Mira la tira LED: está a máximo brillo durante 2 segundos, apagada durante 2 segundos, y luego brilla poco a poco más y después poco a poco menos.
  • Mira el resultado en el Monitor Serie:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 on COM15
2

Si usas un ventilador de 12V en lugar de la tira LED, el ventilador funciona a máxima velocidad, se detiene, y luego acelera y reduce la velocidad paso a paso.

Conocimiento adicional

AOD4184 vs LR7843 vs FR120N: cuál elegir

Los tres módulos se conectan a Arduino Nano de la misma forma. La elección depende del voltaje y la corriente de tu carga.

AOD4184 LR7843 FR120N
Voltaje máximo de la carga 40V CC 30V CC 100V CC
Resistencia de encendido unos 7 mΩ unos 3.3 mΩ unos 210 mΩ
Corriente práctica sin disipador unos 10–15A unos 15A unos 2A
Bueno para cargas de 12V/24V/36V cargas de 12V/24V con mucha corriente cargas pequeñas de 24V/48V
  • LR7843: Tiene la resistencia más baja, así que se mantiene más fresco con corriente alta. Es lo mejor para tiras LED de 12V/24V de alta potencia y motores grandes. El límite es 30V.
  • AOD4184: Es un buen modelo para todo uso. Funciona hasta 40V y soporta corriente fuerte.
  • FR120N: Soporta el voltaje más alto (hasta 100V), pero su resistencia es la más alta. Es solo para corrientes pequeñas, unos 2A sin disipador.

Es evidente que el LR7843 es la mejor opción para cargas pesadas de 12V/24V, mientras que el FR120N es la única opción por encima de 40V.

※ Nota:

Los números grandes de corriente (50A para el AOD4184, 161A para el LR7843) son los límites del chip MOSFET. NO es lo que puede llevar la pequeña placa del módulo. El límite real es el calor. Después de unos minutos de funcionamiento, toca el MOSFET con cuidado. Si está demasiado caliente para sostenerlo, reduce la carga o agrega un disipador.

Módulo MOSFET vs relé

Módulo MOSFET Relé
Tipo de carga solo CC CC o CA
PWM (regulación, control de velocidad) Sí No
Ruido silencioso hace clic
Piezas móviles ninguna sí
Velocidad de conmutación muy rápida lenta

Para un proyecto con Nano en una protoboard que controla una tira LED, un ventilador o una bomba de 12V, el módulo MOSFET es la mejor opción. Para dispositivos de corriente alterna de la red, usa un relé.

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!