Arduino - Módulo MOSFET

Neste tutorial, vamos aprender:

Sobre o Módulo MOSFET

Um pino do Arduino fornece apenas 5V e uma corrente muito pequena. Ele não consegue alimentar uma fita LED de 12V, um motor DC, um ventilador, uma bomba, uma válvula solenoide ou um aquecedor. O módulo MOSFET fica entre o Arduino e a carga. O Arduino envia um sinal pequeno, e o módulo chaveia a grande potência da carga.

Os módulos AOD4184 (também vendido como D4184), LR7843 e FR120N usam o mesmo projeto de placa. Eles têm o mesmo tamanho, os mesmos pinos, a mesma ligação e o mesmo código. Só o chip MOSFET é 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 de condução RDS(on) cerca de 7 mΩ cerca de 3.3 mΩ cerca de 210 mΩ
Corrente Prática sem Dissipador 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

Qual você deve escolher?

  • LR7843: tem a menor resistência, então se mantém mais frio com corrente alta. É bom para cargas de 12V/24V com corrente alta, como fitas LED de alta potência ou motores grandes. Seu limite é 30V.
  • AOD4184: uma boa opção para tudo. Funciona até 40V com corrente alta. É bom para cargas de 12V/24V/36V.
  • FR120N: suporta a tensão mais alta (até 100V), mas sua resistência é alta. Por isso, só serve para correntes pequenas (cerca de 2A sem dissipador). É bom para cargas pequenas de 24V/48V.

Os números 50A e 161A são os limites do chip, não da pequena placa. O limite real é o calor. Toque no MOSFET depois de alguns minutos. Se estiver quente demais, adicione um dissipador ou reduza a corrente.

Pinagem

Pinagem do Módulo MOSFET AOD4184, LR7843 e FR120N

O módulo tem dois grupos de pinos. O lado de controle é um conector de 2 pinos (2.54mm), então ele encaixa em uma protoboard. O lado de potência usa três bornes de parafuso.

  • Lado de controle:
    • Pino PWM: deve ser conectado a um pino de saída do Arduino. Este pino recebe o sinal de controle.
    • Pino GND: deve ser conectado ao GND do Arduino (terra do sinal).
  • Lado de potência:
    • 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 mesmo borne.
    • Pino LOAD: deve ser conectado ao fio negativo da carga. Este é o lado que o MOSFET chaveia.
    • Pino −: deve ser conectado ao negativo (−) da fonte de alimentação da carga.

    As etiquetas podem ser um pouco diferentes entre lotes. Sempre leia o texto impresso na sua placa.

    Como Funciona

    • O sinal percorre este caminho: pino do Arduino → pino PWM → resistor pequeno → LED dentro do optoacoplador PC817 → luz → fototransistor dentro do PC817 → gate do MOSFET.
    • Como o sinal viaja na forma de luz, o lado do Arduino e o lado da carga ficam isolados. O GND do sinal e o GND da carga NÃO estão conectados no módulo.
    • O MOSFET é uma chave de canal N do lado baixo (low-side). Ele fica entre o borne LOAD e o borne −, então ele chaveia o fio negativo da carga.
    • Um resistor no gate o puxa para 0V quando o optoacoplador está desligado.

    O módulo é ativo em HIGH. Vamos ver o que acontece para cada tipo de sinal no pino PWM.

    Pino do Arduino em LOW (0V): a Carga Está DESLIGADA

    • Nenhuma corrente flui para o optoacoplador, então seu LED fica apagado.
    • O fototransistor permanece desligado. O resistor do gate mantém o gate do MOSFET em 0V.
    • O MOSFET está DESLIGADO. Entre LOAD e −, ele é como uma chave aberta.
    • O fio − da carga não está conectado ao terra, então nenhuma corrente flui. A carga recebe 0V.
    • Código: digitalWrite(MOSFET_PIN, LOW); ou analogWrite(MOSFET_PIN, 0);

    Pino do Arduino em HIGH (5V): a Carga Está LIGADA

    • Alguns mA fluem para o optoacoplador. Seu LED acende dentro do chip (você não consegue vê-lo). O pino do Arduino fornece essa pequena corrente com facilidade.
    • O fototransistor liga. Agora o gate do MOSFET recebe cerca de metade da alimentação da carga, cerca de 6V com uma fonte de 12V.
    • O MOSFET liga totalmente. Ele é como uma chave fechada com resistência muito baixa: alguns mΩ para o AOD4184 e o LR7843, cerca de 0.2Ω para o FR120N.
    • O caminho da corrente é: + da fonte → borne + → carga → borne LOAD → MOSFET → borne − → − da fonte.
    • A carga recebe quase os 12V completos e funciona com potência total.
    • Código: digitalWrite(MOSFET_PIN, HIGH); ou analogWrite(MOSFET_PIN, 255);

    Sinal PWM: a Carga Recebe Parte da Potência

    • Com analogWrite(), o pino alterna entre LOW e HIGH cerca de 500 a 1000 vezes por segundo.
    • O MOSFET segue o pino: LIGADO em cada parte HIGH, DESLIGADO em cada parte LOW. Assim, a carga recebe pulsos rápidos de 12V.
    • O duty cycle (ciclo de trabalho) é a parte do tempo em que o pino fica em HIGH. A tensão e a potência médias são o duty cycle vezes o valor total. O valor 0–255 define o duty cycle (duty = valor / 255).
    Duty cycle Valor de analogWrite() Carga LIGADA Tensão média (fonte de 12V)
    0% 0 nunca 0V
    25% 64 1/4 do tempo cerca de 3V
    50% 128 metade do tempo cerca de 6V
    75% 191 3/4 do tempo cerca de 9V
    100% 255 o tempo todo 12V
    • Uma fita LED fica mais fraca. Ela ainda pisca, mas rápido demais para seus olhos perceberem.
    • Um ventilador ou motor gira mais devagar. Sua massa em rotação suaviza os pulsos.
    • Mantenha a frequência do PWM baixa, cerca de 500 Hz a 1 kHz, porque o PC817 é lento. Se a frequência for alta demais, o MOSFET não consegue chavear totalmente. Aí os pulsos não ficam limpos e o MOSFET esquenta. O padrão do analogWrite() do Arduino Uno (cerca de 490 Hz, ou cerca de 1 kHz nos pinos 5 e 6) funciona bem.
    • O código deste tutorial usa PWM de 10% a 100% para variar a carga gradualmente.

    Algumas regras importantes:

    • A fonte de alimentação da carga deve ter pelo menos cerca de 6V, porque o gate recebe só metade dela (veja o caso HIGH acima). Por isso, o módulo NÃO funciona bem com uma fonte de carga de 5V. Use 9V ou mais se a carga consumir mais do que alguns ampères.
    • Use somente cargas DC. Nunca conecte a rede elétrica AC a este módulo. Para cargas AC, veja o tutorial Arduino - Relé.
    • NÃO há diodo de flyback na placa. Para motores, bombas, solenoides e relés, adicione um diodo de flyback externo (por exemplo 1N5819 ou 1N4007) em paralelo com a carga: catodo (lado da faixa) no + da carga, anodo no − da carga.

    Comparado com um relé, o módulo MOSFET não faz barulho de clique, não tem partes móveis, chaveia muito rápido, tem vida longa e suporta PWM. Um relé não consegue fazer PWM.

Diagrama de Ligação

Conecte o pino 9 do Arduino ao pino PWM, o GND do Arduino ao pino GND, a fonte de 12V (através do conector DC) ao + e ao −, e a fita LED ao + e ao LOAD, como mostrado na imagem abaixo.

Diagrama de Ligação do Arduino com Módulo MOSFET AOD4184, LR7843 ou FR120N

This image is created using Fritzing. Click to enlarge image

Nunca conecte os 12V a nenhum pino do Arduino.

Mais Dispositivos Que Você Pode Conectar

A fita LED é apenas uma opção. Você pode trocá-la por um ventilador, uma bomba, um motor ou um solenoide. Os dois fios do lado do Arduino não mudam. No lado de potência, a regra é sempre a mesma:

  • + da fonte de alimentação → +
  • − da fonte de alimentação → −
  • + do dispositivo → + (o mesmo borne do + da fonte)
  • − do dispositivo → LOAD

Verificações rápidas antes de começar:

  • Use uma fonte com a mesma tensão do dispositivo (dispositivo de 12V → fonte de 12V). Nunca use menos de 6V.
  • Veja a corrente do dispositivo. O FR120N serve apenas para dispositivos pequenos (cerca de 2A, sem dissipador). Para mais corrente, escolha o AOD4184 ou o LR7843.
  • Um dispositivo com bobina (motor, ventilador, bomba, solenoide) precisa de um diodo de flyback, 1N5819 ou 1N4007. Coloque-o em paralelo com o dispositivo: lado da faixa no + do dispositivo, o outro lado no − do dispositivo. Abaixo, isso está marcado como "Diodo: sim".

Você não precisa de um código novo para esses dispositivos. O mesmo código funciona para todos eles. Para um solenoide, use apenas HIGH e LOW (100% e 0%) e pule a variação gradual.

Módulo MOSFET com Arduino - Fita LED de 12V

Fita LED de 12V de cor única ligada a um módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • + da fita (geralmente impresso "12V") → +, − da fita → LOAD
  • Diodo: não. Uma fita LED não tem bobina.
  • O PWM define o brilho.
  • Apenas fitas de cor única. Uma fita longa precisa de mais corrente, então verifique a corrente dela primeiro.

Módulo MOSFET com Arduino - Ventilador de 12V

Diagrama de ligação do módulo MOSFET com ventilador

This image is created using Fritzing. Click to enlarge image

  • Fio vermelho → +, fio preto → LOAD
  • Um terceiro fio (amarelo) é o sinal de velocidade. Deixe-o livre.
  • Diodo: sim. Custa muito pouco e não faz mal.
  • O PWM define a velocidade. Use mais de cerca de 30%, ou o ventilador pode não começar a girar.

Módulo MOSFET com Arduino - Bomba d'Água de 12V

Ligação de uma bomba d'água de 12V ao módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • + da bomba → +, − da bomba → LOAD
  • Diodo: sim
  • O PWM define o fluxo de água.
  • Não ligue a bomba sem água.

Módulo MOSFET com Arduino - Motor DC de 12V

Ligação do módulo MOSFET com motor DC de 12V

This image is created using Fritzing. Click to enlarge image

  • + do motor → +, − do motor → LOAD
  • Diodo: sim
  • O PWM define a velocidade.
  • O motor gira em um só sentido. Para mudar o sentido, você precisa de um driver de motor como o L298N. Veja Arduino - Motor DC.

Módulo MOSFET com Arduino - Válvula Solenoide de 12V

Ligação da válvula solenoide de 12V normalmente fechada com o módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • + da válvula → +, − da válvula → LOAD
  • Diodo: sim
  • Válvula normalmente fechada: LIGADO a abre, DESLIGADO a fecha.
  • Apenas LIGA/DESLIGA. Sem PWM.

Módulo MOSFET com Arduino - Fechadura Solenoide de 12V

Diagrama de ligação da fechadura solenoide com módulo MOSFET

This image is created using Fritzing. Click to enlarge image

  • + da fechadura → +, − da fechadura → LOAD
  • Diodo: sim
  • Apenas totalmente LIGADO ou totalmente DESLIGADO. Sem PWM.
  • Dê um pulso curto de LIGADO para destravar. Se ela ficar LIGADA por muito tempo, esquenta. Veja também Arduino - Fechadura Solenoide.

Como Programar o Módulo MOSFET

  • Nenhuma biblioteca é necessária: o código usa apenas funções nativas.
  • Defina o pino: const int MOSFET_PIN = 9; (o pino 9 suporta PWM, ele tem a marca ~)
  • Configure o pino como saída: pinMode(MOSFET_PIN, OUTPUT);
  • Ligue a carga totalmente: digitalWrite(MOSFET_PIN, HIGH); ou analogWrite(MOSFET_PIN, 255);
  • Desligue a carga totalmente: digitalWrite(MOSFET_PIN, LOW); ou analogWrite(MOSFET_PIN, 0);
  • Defina a potência da carga com analogWrite(). O valor vai de 0 (DESLIGADO) a 255 (potência total). Por exemplo, cerca de 50%: analogWrite(MOSFET_PIN, 128);
  • Converta uma porcentagem (0–100%) em um valor PWM (0–255): int duty = map(percent, 0, 100, 0, 255);

Se você só precisa de LIGA/DESLIGA, digitalWrite() é suficiente. Se você quiser controlar o brilho ou mudar a velocidade, use analogWrite(). Funciona da mesma forma que no tutorial Arduino - LED - Fade, mas agora controla uma carga de 12V.

Código Arduino - Módulo MOSFET

O código abaixo faz estas coisas repetidamente:

  • Liga a carga totalmente por 2 segundos e depois a desliga por 2 segundos
  • Aumenta a potência de 10% a 100%, em passos de 10%, a cada 0,5 segundo
  • Diminui a potência de 90% a 0% e depois espera 1 segundo
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-mosfet-module */ const int MOSFET_PIN = 9; // Arduino 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

  • Faça a ligação como mostrado no diagrama acima.
  • Conecte o Arduino ao PC via cabo USB.
  • Conecte a fonte de alimentação de 12V ao conector DC.
  • Abra o Arduino IDE. Vá até o menu Tools e selecione a placa e a porta corretas.
  • Copie o código acima e cole-o no Arduino IDE.
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino.
  • Observe a fita LED: ela fica com brilho máximo por 2 segundos, depois DESLIGADA por 2 segundos, depois fica mais brilhante aos poucos e, em seguida, mais fraca aos poucos.
  • Abra o Serial Monitor (baud rate 9600) e veja o resultado.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' 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 on COM15
2

Se você usar um ventilador de 12V no lugar da fita LED, o ventilador gira na velocidade máxima, para, depois acelera e desacelera. Não esqueça o diodo de flyback para um ventilador ou motor.

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!