Arduino Nano ESP32 - Módulo MOSFET
Neste guia, vamos aprender a usar um módulo MOSFET com o Arduino Nano ESP32 para acionar uma carga de 12V. Os pinos do Nano ESP32 dão apenas 3.3V e uma corrente minúscula, então eles não conseguem alimentar sozinhos uma fita LED ou uma ventoinha de 12V. O módulo MOSFET fica no meio e faz o trabalho pesado. Em detalhes, vamos aprender:
- Como ligar o módulo MOSFET AOD4184, LR7843 ou FR120N, um adaptador de 12V e uma fita LED de 12V ao Arduino Nano ESP32.
- Como escrever um programa para o Arduino Nano ESP32 ligar e desligar totalmente a carga, e mudar a potência dela passo a passo com PWM.

Quando isso funcionar, depois você pode adicionar WiFi ao mesmo sketch e definir a potência da sua fita ou ventoinha a partir de um celular ou de uma página web.
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Módulo MOSFET
Pense no módulo MOSFET como uma chave eletrônica sem partes móveis. O Nano ESP32 envia um pequeno sinal de 3.3V, e o módulo abre ou fecha o caminho de uma corrente DC muito maior. Ele funciona com fitas LED de 12V, motores DC, ventoinhas, bombas, válvulas solenoide e aquecedores.
Este guia cobre três módulos: AOD4184 (também vendido como D4184), LR7843 e FR120N. Eles usam o mesmo projeto de placa. O tamanho, os pinos, a ligação e o código são todos iguais. Só o chip MOSFET da placa é diferente.
Por que escolher um módulo MOSFET e não um relé? Um relé faz clique e se desgasta com o tempo, e só pode fazer ON ou OFF. O módulo MOSFET é silencioso, muito rápido e dura muito tempo. Ele também aceita PWM, então você pode dimerizar uma fita LED ou diminuir a velocidade de uma ventoinha. O único limite: ele é só para cargas DC. Nunca o use com a rede elétrica AC.
| AOD4184 | LR7843 | FR120N | |
|---|---|---|---|
| MOSFET | AOD4184A (canal N) | IRLR7843 (canal N) | IRFR120N (canal N) |
| Tensão máx. da carga (especificação do MOSFET) | 40V DC | 30V DC | 100V DC |
| Corrente máx. (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 | 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 |
| Isolação | 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 comprar?
- LR7843: a menor resistência, então fica o mais frio em corrente alta. Uma boa escolha para cargas grandes de 12V ou 24V, como fitas LED longas ou motores grandes. Máx. 30V.
- AOD4184: um bom modelo para todo uso. Ele suporta até 40V com corrente forte, então serve para cargas de 12V, 24V e 36V.
- FR120N: ele aceita a maior tensão (até 100V), mas a resistência dele também é a maior. Use-o com correntes pequenas, cerca de 2A sem dissipador. Bom para cargas pequenas de 24V ou 48V.
Os números de 50A e 161A são limites do chip em si, não da placa pequena. No uso real, o calor é o limite. Depois de alguns minutos de funcionamento, toque no módulo. Se estiver quente demais, diminua a carga ou adicione um dissipador.
Como Funciona
O lado da entrada tem um optoacoplador PC817, e o sinal do pino D9 segue este caminho: pino PWM → resistor pequeno → LED dentro do PC817 → luz → fototransistor dentro do PC817 → gate do MOSFET. Um resistor no gate o puxa para 0V quando o PC817 está desligado. Só a luz atravessa o PC817, então o lado do Nano ESP32 e o lado de 12V nunca se tocam. O GND do sinal e o GND da carga não estão conectados no módulo.
O MOSFET é uma chave low-side de canal N. Ele fica entre o terminal LOAD e o terminal −, então ele chaveia o fio negativo da carga, e não o positivo. A própria carga é conectada entre + e LOAD.
Veja o que o módulo faz com cada tipo de sinal vindo do D9.
HIGH (3.3V) no pino PWM → carga em potência total
- Alguns mA fluem para o LED dentro do PC817, e ele acende (você não consegue ver, ele está dentro do chip).
- O fototransistor conduz e entrega ao gate do MOSFET cerca de metade da alimentação da carga. Com um adaptador de 12V, isso dá cerca de 6V.
- O MOSFET agora está totalmente ON, como uma chave fechada. Sua resistência é minúscula: alguns mΩ (AOD4184, LR7843) ou cerca de 0.2Ω (FR120N).
- A corrente vai do + do adaptador para o terminal +, passa pela carga, entra no LOAD, passa pelo MOSFET, sai pelo − e volta ao − do adaptador.
- A carga recebe quase os 12V completos. O pino de 3.3V é suficiente para isso, porque o LED do PC817 precisa de apenas uma corrente pequena. Nenhum conversor de nível é necessário.
- Código: analogWrite(MOSFET_PIN, 255), ou 100% de duty.
LOW (0V) no pino PWM → carga desligada
- Sem corrente, então o LED dentro do PC817 fica apagado.
- O fototransistor está desligado. O resistor do gate mantém o gate em 0V.
- O MOSFET está OFF, como uma chave aberta entre LOAD e −.
- O fio negativo da carga fica cortado do adaptador, então nenhuma corrente flui e a carga recebe 0V.
- Código: analogWrite(MOSFET_PIN, 0), ou 0% de duty.
Sinal PWM no pino PWM → carga em potência parcial
- O D9 alterna entre LOW e HIGH muito rápido. O analogWrite() do Nano ESP32 usa 1 kHz por padrão, o que significa 1000 vezes por segundo.
- O MOSFET segue cada alternância: ON em cada parte HIGH, OFF em cada parte LOW. A carga recebe pulsos de 12V.
- O duty cycle é a fração do tempo em que o pino fica em HIGH. Ele é o valor do analogWrite() dividido por 255. A tensão média e a potência são o duty cycle vezes o valor total. Com uma alimentação de 12V:
- AnalogWrite 64 (25%) → cerca de 3V de média → cerca de um quarto da potência
- AnalogWrite 128 (50%) → cerca de 6V de média → cerca de metade da potência
- AnalogWrite 191 (75%) → cerca de 9V de média → cerca de três quartos da potência
- Uma fita LED parece mais fraca, pois ela pisca rápido demais para os seus olhos. Uma ventoinha, motor ou bomba gira mais devagar, pois a parte giratória suaviza os pulsos. Uma ventoinha pode não partir com um duty cycle baixo.
- O PC817 é lento, então mantenha a frequência em cerca de 500 Hz a 1 kHz. O padrão de 1 kHz está bom. Em uma frequência muito mais alta, o MOSFET não chaveia por completo, os pulsos ficam bagunçados e o MOSFET esquenta.
- Não use PWM em uma trava ou válvula solenoide. Use apenas HIGH e LOW para elas.
Algumas regras para lembrar:
- Como o gate recebe apenas cerca de metade da alimentação da carga, a alimentação da carga deve ser de pelo menos cerca de 6V. Uma alimentação de carga de 5V não vai funcionar bem. Se a carga puxa mais do que alguns amperes, use 9V ou mais.
- A placa não tem diodo de roda livre (flyback). Para um motor, bomba, solenoide ou bobina de relé, adicione um diodo externo (por exemplo 1N5819 ou 1N4007) em paralelo com a carga. Conecte o cátodo (o lado com a faixa) ao + da carga e o ânodo ao − da carga.
Pinagem

O módulo tem dois grupos de pinos. Um conector de 2 pinos (2.54mm, encaixa em uma protoboard) fica no lado de controle, e bornes de parafuso ficam no lado de potência.
Lado de controle:
- Pino PWM: conecte a um pino GPIO do Arduino Nano ESP32 (o sinal de controle)
- Pino GND: conecte ao GND do Arduino Nano ESP32 (terra do sinal)
Lado de potência:
- Pino +: conecte 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: conecte ao fio negativo da carga (este é o lado chaveado, ele vai para o dreno do MOSFET)
- Pino −: conecte ao negativo (terra) da fonte de alimentação da carga
Os rótulos podem ser um pouco diferentes entre lotes. Sempre leia o texto impresso na sua própria placa.
Diagrama de Ligação
O Nano ESP32 apenas envia um sinal do pino D9 (mais o GND) para os pinos PWM e GND do módulo, enquanto o adaptador de 12V alimenta a carga pelos bornes de parafuso, então os 12V nunca chegam perto dos pinos da placa.

This image is created using Fritzing. Click to enlarge image
Exemplos: Ligando Diferentes Cargas
Quer acionar algo diferente de uma fita LED? Mantenha os fios D9 e GND do Nano ESP32 como estão. Só o lado de potência muda, e o padrão é sempre o mesmo:
- + do adaptador de 12V no terminal +, e − do adaptador no terminal −.
- Fio + da carga no mesmo terminal +, e fio − da carga no terminal LOAD.
Antes de começar:
- Combine o adaptador com a carga. Uma carga de 12V precisa de um adaptador de 12V. O módulo precisa de pelo menos 6V para funcionar.
- Combine o módulo com a corrente. O FR120N serve só para cargas pequenas (cerca de 2A sem dissipador). Para cargas maiores, use o AOD4184 ou o LR7843.
- Você pode fazer o upload do mesmo código para todas as cargas. Para um solenoide, use apenas ON total e OFF total (HIGH e LOW) no lugar do fade.
O diodo de roda livre (flyback) da parte "Como Funciona" é necessário para toda carga abaixo que tenha uma bobina por dentro: o motor, a ventoinha, a bomba e os dois solenoides. Coloque-o entre os dois fios da carga, com a faixa no +.
Exemplo de Motor DC de 12V

This image is created using Fritzing. Click to enlarge image
O + do motor vai para +, o − do motor vai para LOAD. Adicione o diodo (1N5819 ou 1N4007): o lado da faixa (cátodo) no + do motor, o outro lado (ânodo) no − do motor. O PWM muda a velocidade.
O módulo só consegue girar o motor em um sentido. Se você precisa de frente e ré, use um driver de motor como o L298N. O guia Arduino Nano ESP32 - Motor DC mostra como.
Exemplo de Ventoinha de Refrigeração de 12V

This image is created using Fritzing. Click to enlarge image
O fio vermelho (+) vai para +, o fio preto (−) vai para LOAD. Se a sua ventoinha tem um fio amarelo, ele é o sinal de velocidade. Deixe-o solto. O diodo é uma boa ideia aqui também, pois é barato e seguro. O PWM define a velocidade da ventoinha, mas uma ventoinha pode não partir com um duty cycle baixo, então comece com cerca de 30% ou mais.
Exemplo de Fita LED de 12V

This image is created using Fritzing. Click to enlarge image
Esta é a mesma carga do diagrama principal. + da fita (muitas vezes rotulado 12V) no +, − da fita no LOAD. Nenhum diodo é necessário, porque uma fita LED não tem bobina. O PWM define o brilho. Uma fita longa puxa mais corrente, então verifique primeiro a corrente dela e escolha o módulo adequado. Nota: isso funciona para uma fita de cor única, não para fitas RGB ou endereçáveis.
Exemplo de Bomba de Água de 12V

This image is created using Fritzing. Click to enlarge image
+ da bomba no +, − da bomba no LOAD, e adicione o diodo. O PWM define a vazão de água. Não deixe a bomba funcionar sem água.
Exemplo de Trava Solenoide de 12V

This image is created using Fritzing. Click to enlarge image
Ligue como a bomba, com o diodo. Chaveie somente em ON total ou OFF total (100% ou 0%). Sem dimerização PWM. A trava esquenta se você a mantiver em ON, então ligue-a por um instante curto para destravar e depois desligue.
Exemplo de Válvula Solenoide de 12V

This image is created using Fritzing. Click to enlarge image
Mesma ligação, mesmo diodo. Esta é uma válvula normalmente fechada: ON a abre, OFF a fecha. Use somente ON e OFF, não PWM.
Como Programar para o Módulo MOSFET
Nenhuma biblioteca é necessária. O Nano ESP32 usa a função analogWrite() embutida.
- Defina o pino do Arduino Nano ESP32 que se conecta ao pino PWM do módulo:
- Faça do pino uma saída e comece com a carga desligada:
- Ligue a carga totalmente:
- Desligue a carga:
- Defina a carga em um nível de potência em porcentagem (0 a 100):
Se você só precisa de ON e OFF, digitalWrite(MOSFET_PIN, HIGH) e digitalWrite(MOSFET_PIN, LOW) também funcionam.
Código do Arduino Nano ESP32 - Módulo MOSFET
O código abaixo liga a carga por 2 segundos e a desliga por 2 segundos. Depois, ele aumenta a potência de 10% a 100% em passos de 10%, a cada 0.5 segundo. Em seguida, ele baixa a potência de 90% de volta até 0%, espera 1 segundo e começa de novo.
Passos Rápidos
Siga estas instruções passo a passo:
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
- Faça a ligação dos componentes de acordo com o diagrama fornecido. Deixe o adaptador de 12V desconectado por enquanto.
- Conecte o Arduino Nano ESP32 ao seu computador usando um cabo USB Type-C.
- Abra o Arduino IDE no seu computador.
- Selecione a placa Arduino Nano ESP32 apropriada (por exemplo, Arduino Nano ESP32) e a porta COM.
- Copie o código acima e cole no Arduino IDE.
- Clique no botão Upload para enviar o código ao Arduino Nano ESP32.
- Conecte o adaptador de alimentação de 12V.
- Abra o Serial Monitor e defina o baud rate para 9600.
- Observe a fita LED: brilho total por 2 segundos, apagada por 2 segundos, depois ela fica lentamente mais brilhante e lentamente mais fraca de novo.
Se você conectou uma ventoinha de 12V, vai ouvi-la girar em velocidade máxima, parar e depois acelerar e desacelerar no mesmo padrão.