Usando um driver de motor L298N para controlar um motor de passo de 4 fios
Neste tutorial, vamos explorar como controlar um motor de passo de 4 fios usando o driver de motor L298N em conjunto com um Arduino. O L298N é um driver duplo de ponte H versátil que nos permite controlar de forma eficaz a direção e a velocidade de motores de passo. Ao final deste guia, você terá uma configuração funcional que pode girar o motor de passo em ambas as direções e controlar sua velocidade usando um potenciômetro.


Para ajudá-lo a entender melhor o processo, recomendo assistir ao vídeo associado, que apresenta uma demonstração visual da fiação e da programação (no vídeo em 01:30).
Hardware Explicado
O driver de motor L298N foi projetado para controlar motores, permitindo que você os acione tanto para frente quanto para trás. Ele utiliza uma configuração em ponte H, o que significa que pode inverter a polaridade da tensão aplicada ao motor, invertendo assim seu sentido de rotação. Este driver suporta uma tensão de alimentação de até 46V e uma corrente contínua de 2A por canal, tornando-o adequado para muitas aplicações.
Na nossa configuração, usaremos quatro pinos para controlar o motor de passo. Os pinos principais sãoENAeENB, que deve ser definido como HIGH (5V) para habilitar o driver. Os pinosIN1,IN2,IN3, eIN4controlará os estados dos enrolamentos do motor, permitindo que ele avance na direção desejada.
Detalhes da ficha técnica
| Fabricante | STMicroelectronics |
|---|---|
| Número da peça | L298N |
| Tensão lógica/IO | 5 V |
| Tensão de alimentação | 5-46 V (VS) |
| Corrente de saída (por canal) | 2 A máx./canal (contínuo) |
| Corrente de pico (por canal) | 3 A máx. |
| Orientação sobre a frequência PWM | 1 kHz a 20 kHz |
| Limiares lógicos de entrada | 0.8 V (baixo), 2.0 V (alto) |
| Queda de tensão / RDS(on) / saturação | 1,5 V máx. |
| Limites térmicos | 150 °C máx. |
| Pacote | DIP-15 |
| Notas / variantes | Também disponível em versões planas (L298P) |
- Garantir
ENAeENBsão conectados a 5V para o funcionamento adequado. - Use dissipação térmica adequada em aplicações de alta corrente para evitar superaquecimento.
- Mantenha o terra comum entre o Arduino e o driver do motor.
- Tenha cuidado com a polaridade da fiação para evitar danificar o motor ou o driver.
- Implemente capacitores de desacoplamento próximos aos pinos de alimentação para filtrar ruído.
- Ajuste a frequência PWM de acordo com as especificações do motor para um desempenho ideal.
Instruções de fiação

Para conectar o driver de motor L298N ao Arduino e ao motor de passo, comece conectando a fonte de alimentação. ConecteVINpino no L298N à sua fonte de alimentação de 12V. Em seguida, conecte oGNDConecte o pino do L298N ao terra da sua fonte de alimentação e também ao terra do Arduino.
Agora, para os pinos de controle, conecteENApara o pino 2 do Arduino eENBao pino 3. Em seguida, conecteIN1ao pino 8,IN2ao pino 9,IN3ao pino 10, eIN4para o pino 11 no Arduino. Por fim, conecte os fios do motor de passo aos terminais de saída do L298N. Certifique-se de que os dois pares de fios do motor estejam conectados corretamente às saídas.
Exemplos de código e guia passo a passo
No código, primeiro incluímos oStepper.hbiblioteca para simplificar o controle do motor de passo. Definimos o número total de passos por revolução, o que é crucial para um movimento preciso. Os principais identificadores no código incluemstepsPerRevolution, que define o número de passos necessários para uma rotação completa, emyStepper, que inicializa o objeto stepper com os pinos especificados.
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); // initialize the stepper libraryEste trecho inicializa o motor de passo com os pinos apropriados. Nosetup()Na função, definimos a velocidade do motor e habilitamos o driver definindo os pinos 2 e 3 como HIGH.
void setup() {
myStepper.setSpeed(300); // set the speed at 60 rpm
pinMode(2,OUTPUT); // for EN1
digitalWrite(2,HIGH); // enable EN1
pinMode(3,OUTPUT); // for EN2
digitalWrite(3,HIGH); // enable EN2
}Noloop()função, o motor avança uma revolução nos sentidos horário e anti-horário, com um atraso entre eles. Isso permite que você observe o funcionamento do motor.
void loop() {
myStepper.step(stepsPerRevolution); // step one revolution in one direction
delay(500); // wait half a second
myStepper.step(-stepsPerRevolution); // step one revolution in the other direction
delay(500); // wait half a second
}Este trecho demonstra como controlar o motor para que ele gire em ambas as direções. O código completo está disponível abaixo do artigo para sua referência.
Demonstração / O que esperar
Uma vez que tudo esteja conectado corretamente e o código carregado, você deverá ver o motor de passo girar uma volta completa em uma direção, seguida por uma volta completa na direção oposta. Além disso, se você incorporar o potenciômetro para controle de velocidade, ajustá-lo mudará a velocidade de rotação do motor. Esteja atento à corrente do motor; à medida que você aumenta a velocidade, o motor pode consumir mais corrente, o que pode levar ao superaquecimento se não for gerenciado adequadamente (no vídeo às 09:45).
Se o motor não girar como esperado, verifique a fiação para garantir que todas as conexões estejam seguras e corretamente orientadas. Além disso, verifique se a tensão da fonte de alimentação é apropriada para o seu motor de passo.
Marcas de tempo do vídeo
- 00:00- Introdução
- 01:30- Explicação da fiação
- 05:00- Visão Geral do Código
- 09:45- Demonstração de Controle de Motor
Coisas que você pode precisar
-
Amazonas
-
Amazonas
Recursos e referências
Ainda não há recursos.
Arquivos📁
Nenhum arquivo disponível.