Arduino Nano - Módulo MOSFET

Este tutorial ensina como usar o Arduino Nano para ligar/desligar e dimerizar uma carga DC de 12V por meio de um módulo MOSFET. O pequeno Nano fica em uma protoboard e só fornece um sinal de 5V, enquanto o módulo MOSFET cuida do lado pesado de 12V. Em detalhes, vamos aprender:

Sugerimos:

Sobre o Módulo MOSFET

Um pino do Arduino Nano consegue fornecer apenas alguns miliampères a 5V. Isso é suficiente para um LED pequeno, mas não para uma fita LED de 12V, um ventilador ou uma bomba. O módulo MOSFET fica entre os dois mundos. O Nano envia um sinal pequeno, e o MOSFET do módulo abre ou fecha o caminho para a grande corrente de 12V.

Este único tutorial cobre três módulos: AOD4184 (também vendido como D4184), LR7843 e FR120N. Eles usam o mesmo projeto de placa, com o mesmo tamanho, pinos, ligação e código. Só o chip MOSFET da placa é diferente.

AOD4184 LR7843 FR120N
MOSFET AOD4184A (canal N) IRLR7843 (canal N) IRFR120N (canal N)
Tensão máxima da carga (especificação do MOSFET) 40V DC 30V DC 100V DC
Corrente máxima (especificação do MOSFET) 50A 161A 9.4A
Resistência ligado RDS(on) cerca de 7 mΩ cerca de 3.3 mΩ cerca de 210 mΩ
Corrente prática sem dissipador de calor cerca de 10–15A cerca de 15A cerca de 2A
Sinal de controle lógica 3.3V / 5V, ativo em HIGH lógica 3.3V / 5V, ativo em HIGH lógica 3.3V / 5V, ativo em HIGH
Isolamento optoacoplador PC817 optoacoplador PC817 optoacoplador PC817
PWM sim, mantenha ≤ ~1 kHz sim, mantenha ≤ ~1 kHz sim, mantenha ≤ ~1 kHz
Tipo de carga somente DC somente DC somente DC

Por que escolher um módulo MOSFET e não um relé? Ele não faz barulho de clique, não tem partes móveis, chaveia muito rápido e dura muito tempo. Principalmente, ele suporta PWM, então o Nano pode dimerizar uma fita LED ou reduzir a velocidade de um ventilador. Um relé só consegue fazer LIGADO e DESLIGADO.

Pinagem do Módulo MOSFET

AOD4184, LR7843 and FR120N MOSFET module pinout

O módulo tem dois grupos de pinos. O grupo de controle é um pequeno conector de 2 pinos com passo de 2.54mm, então ele encaixa direto na protoboard ao lado do Nano:

  • Pino PWM: deve ser conectado a um pino do Arduino Nano com capacidade PWM (D9 neste tutorial). Este pino recebe o sinal de controle
  • Pino GND: deve ser conectado ao pino GND do Arduino Nano (terra do sinal)

O grupo de alimentação tem três bornes de parafuso, porque ele conduz a corrente da carga:

  • Pino +: deve ser conectado ao positivo (+) da fonte de alimentação da carga, por exemplo 12V, e ao fio positivo da carga. Os dois fios compartilham este único terminal
  • Pino LOAD: deve ser conectado ao fio negativo da carga. Este é o lado chaveado, e ele vai para o dreno (drain) do MOSFET
  • Pino −: deve ser conectado ao negativo (−) da fonte de alimentação da carga

※ Nota:

A disposição dos pinos em um módulo pode ser diferente de um fabricante para outro. Os rótulos também podem mudar um pouco entre lotes. É essencial sempre consultar os rótulos impressos no módulo ao usá-lo. Olhe com atenção!

Como o Módulo Funciona

O sinal do Nano não vai direto para o MOSFET. Ele segue este caminho: pino D9 do Nano → pino PWM → resistor pequeno → LED dentro do optoacoplador PC817 → luz → fototransistor dentro do PC817 → gate do MOSFET. Um resistor pull-down no gate o mantém em 0V enquanto o optoacoplador está desligado. O MOSFET fica entre o terminal LOAD e o terminal −, e a carga fica entre + e LOAD.

O módulo reage de três maneiras diferentes, dependendo do que o Nano coloca no pino PWM.

Caso 1: O Pino PWM Está em LOW (0V)

  • Nenhuma corrente flui para o optoacoplador, então o LED dele fica apagado.
  • O fototransistor fica desligado. O resistor pull-down mantém o gate do MOSFET em 0V.
  • O MOSFET está DESLIGADO. Entre LOAD e −, ele se comporta como uma chave aberta.
  • O fio − da fita LED não tem caminho para o − do adaptador, então nenhuma corrente flui. A fita recebe 0V e fica apagada.
  • No código: digitalWrite(MOSFET_PIN, LOW) ou analogWrite(MOSFET_PIN, 0).

Caso 2: O Pino PWM Está em HIGH (5V)

  • O pino de 5V empurra alguns mA pelo LED do optoacoplador. Ele acende dentro do chip, onde você não consegue ver.
  • A luz liga o fototransistor. Agora o gate do MOSFET recebe cerca de metade da alimentação da carga, cerca de 6V com um adaptador de 12V.
  • O MOSFET liga totalmente. Ele se comporta como uma chave fechada com uma resistência muito baixa: alguns mΩ para o AOD4184 e o LR7843, cerca de 0.2Ω para o FR120N.
  • A corrente flui em um circuito: + do adaptador → terminal + → fita LED → terminal LOAD → MOSFET → terminal − → − do adaptador.
  • A fita recebe quase os 12V completos e brilha com brilho total.
  • No código: digitalWrite(MOSFET_PIN, HIGH) ou analogWrite(MOSFET_PIN, 255).

Caso 3: O Pino PWM Recebe um Sinal PWM

  • O pino alterna entre 0V e 5V cerca de 490 vezes por segundo (a taxa padrão do analogWrite() no D9).
  • O MOSFET acompanha cada pulso: ele fica LIGADO durante cada parte HIGH e DESLIGADO durante cada parte LOW.
  • A carga recebe pulsos de 12V. O ciclo de trabalho (duty cycle) é a parcela de tempo em que o pino está em HIGH, e a tensão e a potência médias são iguais ao ciclo de trabalho vezes o valor total.
  • No código: analogWrite(MOSFET_PIN, value), onde value vai de 0 a 255 e o ciclo de trabalho é value / 255. O código do tutorial vai de 10% a 100% em passos.
Ciclo de trabalho Valor do analogWrite() A carga fica LIGADA Tensão média (alimentação de 12V) Potência
0% 0 nunca 0V desligada
25% 64 1/4 do tempo cerca de 3V cerca de um quarto
50% 128 metade do tempo cerca de 6V cerca de metade
75% 191 3/4 do tempo cerca de 9V cerca de três quartos
100% 255 o tempo todo 12V total
  • Uma fita LED parece mais fraca. Ela ainda pisca, mas rápido demais para o olho perceber.
  • Um ventilador, motor ou bomba funciona mais devagar, porque a massa em rotação suaviza os pulsos.
  • O PC817 é um componente lento, então a frequência do PWM deve ficar entre cerca de 500 Hz e 1 kHz. Em uma frequência muito maior, o MOSFET não chaveia totalmente, a carga não recebe pulsos limpos e o MOSFET esquenta. Os 490 Hz do pino D9 são adequados.

Mais alguns pontos são importantes para o seu projeto:

  • Terras isolados: O GND do sinal e o GND da carga NÃO estão conectados no módulo. O lado do Nano e o lado de 12V são separados eletricamente pelo optoacoplador.
  • Chave do lado negativo (low-side): O MOSFET é do tipo canal N. Ele chaveia o fio negativo da carga, não o fio positivo.
  • Alimentação da carga de pelo menos cerca de 6V: Como mostrado no Caso 2, a tensão do gate vem da alimentação da carga por meio de um divisor de tensão. Por isso, a alimentação da carga deve ser de pelo menos cerca de 6V. Use 9V ou mais se a carga consumir mais do que alguns ampères. O módulo NÃO vai funcionar bem com uma alimentação de carga de 5V, então não use o pino de 5V do Nano para alimentar a carga.
  • Corrente de controle pequena: O LED do optoacoplador precisa de apenas alguns mA, então um pino do Nano pode acioná-lo diretamente, sem transistor extra.
  • Sem diodo flyback na placa: Para motores, bombas, solenoides e relés (cargas indutivas), adicione um diodo flyback externo (por exemplo 1N5819 ou 1N4007) sobre a carga. O cátodo (o lado com a faixa) vai para o + da carga, e o ânodo vai para o − da carga.

Diagrama de Ligação

O Nano e o módulo compartilham apenas dois fios (sinal e GND), e o adaptador de 12V alimenta o lado da carga através do conector de alimentação DC, como mostrado abaixo.

The wiring diagram between Arduino Nano and  with AOD4184, LR7843 or FR120N MOSFET module

This image is created using Fritzing. Click to enlarge image

De Para
Pino D9 do Arduino Nano Pino PWM do módulo MOSFET
GND do Arduino Nano Pino GND do módulo MOSFET
+ do adaptador de 12V (via conector de alimentação DC) + do módulo MOSFET
− do adaptador de 12V (via conector de alimentação DC) − do módulo MOSFET
+ da fita LED + do módulo MOSFET (mesmo terminal do + do adaptador)
− da fita LED LOAD do módulo MOSFET

WARNING

Nunca conecte os fios de 12V a nenhum pino do Arduino Nano. Os 12V vão somente para os bornes de parafuso do módulo MOSFET.

Ligando o Módulo MOSFET a Outros Dispositivos de 12V

A fita LED é apenas uma opção. Os exemplos abaixo mostram outras cargas comuns de 12V. No lado do Nano, nada muda: D9 vai para PWM e GND vai para GND. Só o lado dos bornes de parafuso é diferente. A tabela dá uma visão geral rápida:

Dispositivo Diodo flyback Como controlá-lo
Fita LED de 12V (cor única) Não é necessário PWM (brilho)
Motor DC de 12V Necessário PWM (velocidade)
Ventilador de resfriamento de 12V Necessário PWM (velocidade)
Bomba d'água de 12V Necessário PWM (vazão)
Trava solenoide de 12V Necessário Somente LIGA/DESLIGA
Válvula solenoide de 12V Necessário Somente LIGA/DESLIGA

Para cada dispositivo, a tensão do adaptador deve corresponder à tensão do dispositivo (um dispositivo de 12V precisa de um adaptador de 12V), e deve ser de pelo menos 6V. Verifique também quanta corrente o dispositivo consome. O módulo FR120N serve apenas para cargas pequenas, de cerca de 2A sem dissipador de calor. Para cargas maiores, escolha o módulo AOD4184 ou LR7843.

O mesmo código do Arduino Nano funciona para todos esses dispositivos. Para a trava solenoide e a válvula solenoide, use apenas HIGH e LOW (100% ou 0%) no lugar do fade.

Exemplo de Ligação da Fita LED de 12V

The wiring diagram between MOSFET module  with a 12V LED strip

This image is created using Fritzing. Click to enlarge image

  • O fio + da fita (geralmente marcado como 12V) deve ser conectado ao +, e o fio − deve ser conectado ao LOAD.
  • Uma fita LED não é uma carga de bobina, então não precisa de diodo flyback.
  • O PWM define o brilho.
  • Este exemplo é apenas para fita de cor única. Fitas RGB e endereçáveis são ligadas de outra forma. Uma fita mais longa consome mais corrente, então verifique a corrente dela antes de escolher o módulo.

Exemplo de Ligação do Motor DC de 12V

12V DC motor connected to a MOSFET module

This image is created using Fritzing. Click to enlarge image

De Para
+ do motor + do módulo MOSFET
− do motor LOAD do módulo MOSFET
Diodo 1N5819 ou 1N4007, cátodo (faixa) + do motor
Diodo 1N5819 ou 1N4007, ânodo − do motor

Um motor é uma carga de bobina. O diodo sobre os fios do motor protege o MOSFET do pico de tensão quando o motor desliga (veja "Sem diodo flyback na placa" acima). O PWM define a velocidade. O módulo consegue acionar o motor em uma direção apenas. Para mudar a direção, use um driver de motor como o L298N, como no tutorial Arduino Nano - Motor DC.

Exemplo de Ligação do Ventilador de Resfriamento de 12V

Wiring diagram of a 12V cooling fan and MOSFET module

This image is created using Fritzing. Click to enlarge image

  • O fio vermelho é o +, e deve ser conectado ao +. O fio preto é o −, e deve ser conectado ao LOAD.
  • Se o ventilador tem um terceiro fio (amarelo, o sinal de velocidade), deixe-o desconectado.
  • Adicione o diodo flyback da mesma forma que para o motor DC. Ele é barato e não causa nenhum problema.
  • O PWM define a velocidade. Alguns ventiladores não partem com um ciclo de trabalho muito baixo, então comece acima de cerca de 30%.

Exemplo de Ligação da Bomba d'Água de 12V

MOSFET module 12V water pump wiring

This image is created using Fritzing. Click to enlarge image

  • O + da bomba vai para o +, e o − da bomba vai para o LOAD.
  • Uma bomba tem um motor dentro, então o mesmo diodo flyback é necessário.
  • O PWM define a vazão. Nunca deixe a bomba funcionar a seco.

Exemplo de Ligação da Trava Solenoide de 12V

The wiring diagram between Solenoid lock  with the MOSFET module

This image is created using Fritzing. Click to enlarge image

  • O + da trava vai para o +, e o − da trava vai para o LOAD. A bobina interna também exige o diodo flyback.
  • Acione-a somente totalmente LIGADA ou totalmente DESLIGADA. Não use dimerização por PWM.
  • A trava esquenta se ficar LIGADA por muito tempo. Ligue-a somente por um breve momento para destravar e depois DESLIGUE-a.

Exemplo de Ligação da Válvula Solenoide de 12V

MOSFET module wiring for a normally closed 12V solenoid valve

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

  • O + da válvula vai para o +, e o − da válvula vai para o LOAD, com o diodo flyback sobre a bobina.
  • Esta é uma válvula normalmente fechada: totalmente LIGADA abre a válvula, e DESLIGADA fecha a válvula.
  • Use somente LIGA/DESLIGA, não PWM.

Como Programar o Módulo MOSFET

Nenhuma biblioteca é necessária. O módulo é acionado com as funções nativas do Arduino.

  • O primeiro passo é especificar o pino do Arduino Nano que está conectado ao pino PWM do módulo. Ele deve ser um pino PWM (marcado com ~ no Nano, como o D9):
const int MOSFET_PIN = 9;
  • Configure o pino como saída no setup():
pinMode(MOSFET_PIN, OUTPUT);
  • Para deixar a carga totalmente LIGADA ou totalmente DESLIGADA, uma simples escrita digital é suficiente:
digitalWrite(MOSFET_PIN, HIGH); // load ON digitalWrite(MOSFET_PIN, LOW); // load OFF
  • Para definir um nível de potência, escreva um valor PWM de 0 a 255. É mais fácil pensar em porcentagem, então o valor em porcentagem é convertido com map():
int duty = map(percent, 0, 100, 0, 255); analogWrite(MOSFET_PIN, duty);

Código Arduino Nano para o Módulo MOSFET

O código abaixo faz o seguinte em um loop:

  • Liga a carga totalmente por 2 segundos e depois a desliga totalmente por 2 segundos
  • Aumenta a potência de 10% a 100% em passos de 10%, um passo a cada 0.5 segundo
  • Diminui a potência de 90% de volta a 0% da mesma forma
  • Espera 1 segundo e começa de novo
/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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); }

Passos Rápidos

  • Se esta é a primeira vez que você usa o Arduino Nano, veja como configurar o ambiente para o Arduino Nano no Arduino IDE.
  • Ligue os componentes como mostrado no diagrama. Não conecte o adaptador de 12V ainda.
  • Conecte a placa Arduino Nano ao computador usando um cabo USB.
  • Abra o Arduino IDE no computador.
  • Selecione a placa Arduino Nano e a porta COM dela.
  • Copie o código acima e cole-o no Arduino IDE.
  • Clique no botão Upload para fazer o upload do código para o Arduino Nano.
  • Conecte o adaptador de alimentação de 12V.
  • Abra o Serial Monitor e defina o baud rate como 9600.
  • Observe a fita LED: ela fica com brilho total por 2 segundos, apagada por 2 segundos e depois vai ficando lentamente mais brilhante e lentamente mais fraca.
  • Veja o resultado no Serial Monitor:
∞
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

Se você usar um ventilador de 12V no lugar da fita LED, o ventilador funciona na velocidade máxima, para, e depois acelera e desacelera passo a passo.

Conhecimento Adicional

AOD4184 vs LR7843 vs FR120N: Qual Escolher

Os três módulos se conectam ao Arduino Nano da mesma forma. A escolha depende da tensão e da corrente da sua carga.

AOD4184 LR7843 FR120N
Tensão máxima da carga 40V DC 30V DC 100V DC
Resistência ligado cerca de 7 mΩ cerca de 3.3 mΩ cerca de 210 mΩ
Corrente prática sem dissipador de calor cerca de 10–15A cerca de 15A cerca de 2A
Bom para cargas de 12V/24V/36V cargas de 12V/24V com corrente alta cargas pequenas de 24V/48V
  • LR7843: Tem a menor resistência, então funciona mais frio com corrente alta. É o melhor para fitas LED de 12V/24V de alta potência e motores grandes. O limite é 30V.
  • AOD4184: É um bom módulo para todo uso. Funciona até 40V e suporta corrente forte.
  • FR120N: Suporta a maior tensão (até 100V), mas a resistência dele é a mais alta. Serve apenas para correntes pequenas, cerca de 2A sem dissipador de calor.

É evidente que o LR7843 é a melhor escolha para cargas pesadas de 12V/24V, enquanto o FR120N é a única opção acima de 40V.

※ Nota:

Os números grandes de corrente (50A para o AOD4184, 161A para o LR7843) são os limites do chip MOSFET. Eles NÃO são o que a pequena placa do módulo consegue suportar. O limite real é o calor. Depois de alguns minutos de funcionamento, toque no MOSFET com cuidado. Se ele estiver quente demais para segurar, reduza a carga ou adicione um dissipador de calor.

Módulo MOSFET vs Relé

Módulo MOSFET Relé
Tipo de carga somente DC DC ou AC
PWM (dimerização, controle de velocidade) Sim Não
Ruído Silencioso Faz cliques
Partes móveis Nenhuma Sim
Velocidade de chaveamento Muito rápida Lenta

Para um projeto com Nano em uma protoboard que controla uma fita LED, um ventilador ou uma bomba de 12V, o módulo MOSFET é a melhor escolha. Para dispositivos da rede elétrica AC, use um relé.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!