Hoje vamos ver um módulo simples mas que pode ser utilizado em diversas aplicações em projetos eletrônicos, automação residencial e robótica. Vamos usar o módulo MOSFET IRF520N para controle de motor DC.
E o IRF520N tem uma saída PWM que não serve só para motores. Você pode também regular, por exemplo, o brilho de uma fita de leds ou até mesmo acionar válvulas solenóide.
O módulo MOSFET IRF520N
Este módulo possui um transistor de efeito de campo (MOSFET), que controlamos através de um único pino de sinal. Bornes parafusáveis são usados tanto para conectar a fonte de entrada de tensão (VIN e GND, até 24VDC) como para conexão da carga (pinos V+ e V-).
Nos pinos de controle (Vcc, GND e SIG) vamos conectar a placa Arduino, por meio de um pino digital comum.
O módulo tem capacidade máxima de corrente de 5A, mas em instalações que exigem mais de 1A de corrente é altamente recomendável o uso de um dissipador de calor.
Conexão IRF520N com Arduino
A conexão da alimentação do módulo mosfet IRF520N ao Arduino é feita através dos pinos 5V e GND. Para controle do motor, vamos usar o pino digital 7 conectado ao pino SIG do módulo.
Adicionamos ao circuito um potenciômetro de 10K, que vamos usar para controlar o nível de tensão na saída PWM do módulo MOSFET.
Nosso circuito fica assim:
Note que temos que usar uma fonte externa para alimentação do motor, para não sobrecarregar as portas da placa Arduino.
Programa controle de motor DC com módulo IRF520N
Para o programa de testes vamos usar a biblioteca HCMotor, disponível neste link.
Infelizmente ainda não é possível instalar essa biblioteca a partir da IDE do Arduino, então temos que fazer a instalação de maneira manual. Baixe o arquivo disponibilizado no link anterior, descompacte e coloque-o na pasta LIBRARIES da IDE do Arduino.
Em caso de dúvidas, tenho um tutorial que mostra em detalhes esse processo de instalação de bibliotecas: Como instalar uma biblioteca na IDE Arduino.
Feita a instalação da biblioteca HCMotor, carregue o programa abaixo na sua placa Arduino:
//Programa: Controle de motor DC com modulo MOSFET IRF520N //Adaptacao: Arduino e Cia #include "HCMotor.h" //Define o pino de controle do motor #define MOTOR_PIN 7 //Define o pino analogico de conexao ao potenciometro #define POT_PIN A0 //Cria uma instancia da biblioteca HCMotor HCMotor; void setup() { //Inicializa a biblioteca HCMotor HCMotor.Init(); //Associa o motor 0 ao pino digital do motor (MOTOR_PIN) //O primeiro parametro e o numero do motor, o segundo o tipo do motor //e o terceiro o pino de controle HCMotor.attach(0, DCMOTOR, MOTOR_PIN); //Define o duty cycle do sinal PWM em incrementos de 100uS //No exemplo: 100 x 100uS = 1mS HCMotor.DutyCycle(0, 100); } void loop() { int Speed; //Faz a leitura do valor do potenciometro e converte //para um valor entre 0 e 100 Speed = map(analogRead(POT_PIN), 0, 1024, 0, 100); //Aciona o motor de acordo com o valor lido do potenciometro HCMotor.OnTime(0, Speed); }
O programa é baseado no exemplo da biblioteca HCMotor, e faz o controle da rotação do motor DC de acordo com o valor lido do potenciômetro conectado ao pino analógico A0.
Na implementação do módulo em um robô, por exemplo, o controle da rotação das rodas pode ser feito de forma automática, de acordo com os valores lidos de um sensor ultrassônico ou IR (Infravermelho).
Gostou de usar motor DC com módulo MOSFET IRF520N? Confira outros posts usando Arduino aqui mesmo no Arduino e Cia!