Arduino - Módulo MOSFET
Neste tutorial, vamos aprender:
- Como conectar um módulo MOSFET (AOD4184, LR7843 ou FR120N) ao Arduino
- Como conectar uma carga de 12V, como uma fita LED ou um ventilador, ao módulo MOSFET
- Como programar o Arduino para LIGAR/DESLIGAR a carga e controlar sua potência com PWM
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
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

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.
- 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.
- 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);
- 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);
- 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).
- 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.
- 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.
As etiquetas podem ser um pouco diferentes entre lotes. Sempre leia o texto impresso na sua placa.
Como Funciona
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
Pino do Arduino em HIGH (5V): a Carga Está LIGADA
Sinal PWM: a Carga Recebe Parte da Potência
| 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 |
Algumas regras importantes:
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.

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

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

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

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

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

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

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
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.
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.