Introdução
Um motor de corrente contínua, também conhecido como motor DC, é uma máquina elétrica que converte energia elétrica em movimento mecânico. Seu funcionamento é baseado no princípio da indução eletromagnética, onde uma corrente elétrica é aplicada a um conjunto de bobinas imersas em um campo magnético, gerando força motriz.
Os motores DC são amplamente utilizados em diversas aplicações, desde eletrodomésticos até sistemas industriais, graças à sua versatilidade e controle preciso de velocidade e torque.
A velocidade do motor DC pode ser facilmente controlada através da variação da tensão aplicada. Além disso, é possível definir o sentido da rotação do motor através da polaridade da tensão aplicada ao motor. Para esse controle, é geralmente utilizada uma ponte H acionada por um controlador PWM.
Neste artigo, aprenderemos como acionar um motor DC com a Franzininho WiFi. Utilizaremos uma ponte H para controlar o sentido de rotação e a velocidade do motor.
Materiais necessários
Os materiais necessários para desenvolver nossa aplicação são:
- Franzininho WiFi
- Jumpers
- Ponte H (L298N)
- Motor DC
- Fonte DC ( 12V e 1A)
- Arduino IDE
Circuito para acionamento do motor DC
No circuito proposto, a ponte H dupla (LN298N) possui dois canais, contudo, vamos utilizar apenas um canal. Outro ponto importante é a necessidade de uma fonte externa com saída DC de 12V e 1A para alimentar o driver e o(s) motor(s). O driver possui uma saída de 5V que pode funcionar como regulador de tensão para outros dispositivos. É relevante observar que há uma conexão entre o GND da Franzininho WiFi com a fonte, garantindo que ambas estejam no mesmo referencial e, consequentemente, permitindo o controle da ponte H pelas GPIOs.
Lembre-se de que a placa Franzininho WiFi, em hipótese alguma, deve alimentar o motor e/ou conectar as GPIOs diretamente nos terminais, pois o risco de danificar é iminente. Utilize sempre drivers para o acionamento de potência.
Código
No projeto proposto, utilizaremos um motor de corrente contínua de baixa potência para demonstrar como podemos realizar o controle de velocidade e sentido de rotação, além de acompanhar as ações no monitor serial. Para controlar os drivers, não é necessário instalar nenhuma biblioteca.
// Definição dos pinos de controle do motor
#define INA 1
#define INB 2
void setup()
{
// Inicialização da comunicação serial com baud rate 115200
Serial.begin(115200);
delay(1000);
Serial.println("Iniciando demo L298N com a Franzininho WiFi");
// Configuração dos pinos como saída para controle do motor
pinMode(INA, OUTPUT);
pinMode(INB, OUTPUT);
// Inicialização do motor com os pinos de controle em nível baixo (parado)
digitalWrite(INA, LOW);
digitalWrite(INB, LOW);
}
void loop() {
// Rotação do motor no sentido horário
Serial.println("Rotaciona sentido horario");
digitalWrite(INA, HIGH);
digitalWrite(INB, LOW);
delay(2000);
// Motor parado
Serial.println("Motor Parado");
digitalWrite(INA, LOW);
digitalWrite(INB, LOW);
delay(2000);
// Rotação do motor no sentido anti-horário
Serial.println("Rotaciona sentido anti-horario");
digitalWrite(INA, LOW);
digitalWrite(INB, HIGH);
delay(2000);
// Freia a rotação do motor
Serial.println("Freia rotação");
digitalWrite(INA, HIGH);
digitalWrite(INB, HIGH);
delay(2000);
// Motor parado novamente
Serial.println("Motor Parado");
digitalWrite(INA, LOW);
digitalWrite(INB, LOW);
delay(2000);
// Controle de velocidade gradual do motor
Serial.println("Controle de Velocidade");
int i;
for (i = 0; i < 255; i++)
{
analogWrite(INA, i); // Define a velocidade do motor usando PWM
delay(100);
}
for (i = 255; i >= 0; i--)
{
analogWrite(INA, i); // Define a velocidade do motor usando PWM
delay(100);
}
// Para o controle de velocidade
Serial.println("Para controle de Velocidade");
digitalWrite(INA, LOW);
digitalWrite(INB, LOW);
delay(2000);
}
Simule essse projeto no Wokwi: https://wokwi.com/projects/370784561135060993
Ainda não há o suporte para o L298N, mas utilizamos os LEDs para ilustrar o funcionamento.
Conclusão
Neste artigo, foi apresentado o motor de corrente contínua e explicado como podemos controlá-lo de duas maneiras: rotação e velocidade. Além disso, discutimos como é possível monitorar o motor, adicionando informações como a quantidade de passos, velocidade de rotação, tensão e corrente instantânea. Essas medidas permitem executar funções que exigem alta precisão. Todo esse material pode ser utilizado como apoio para criar outros projetos. Caso você tenha algum projeto em mente, sinta-se à vontade para compartilhá-lo com a comunidade.






