Controle de motor de passo com ponte H L298N
A maioria dos projetos que eu vejo utilizando o driver motor ponte H L298N envolve o controle de motores DC. Faz sentido pois uma das grandes vantagens desse módulo é que ele suporta correntes de até 2A por canal, mas também temos a possibilidade de usar o módulo ponte H L298N com motor de passo. Vamos ver como isso funciona, mostrando antes as especificações e pinagem:

Especificações ponte H L298N
- Tensão de Operação: 6~35v
- Chip: ST L298N (datasheet)
- Controle de 2 motores DC ou 1 motor de passo
- Corrente de Operação máxima: 2A por canal ou 4A máx
- Tensão lógica: 5v
- Corrente lógica: 0~36mA
- Limites de Temperatura: -20 a +135°C
- Potência Máxima: 25W
- Dimensões: 43 x 43 x 27mm
- Peso: 30g

Pinagem
- MOTOR A e MOTOR B são os conectores utilizados para ligação de 2 motores DC ou 1 motor de passo
- ATIVA MA e ATIVA MB – Podem ser ligados aos pinos PWM do Arduino para controle de velocidade do motor
- ATIVA 5V e 5v – Esta placa possui um regulador de tensão integrado. Quando o módulo é alimentado por fonte externa (6 à 35v) e um jumper está colocado no conector Ativa 5v, o pino 5v possui uma SAÍDA de +5v. Quando não há jumper no pino Ativa 5v, o pino 5v se comporta como ENTRADA, podendo ser utilizado , por exemplo, os 5v do Arduino para alimentação. Portanto, tome cuidado ao utilizar o pino 5v e evite danos ao módulo.
- 6-35v e GND – Pinos alimentação externa
- ENTRADA – Barramento com os pinos de IN1 a IN4. IN1 e IN2 controlam o Motor A, e IN3 e IN4 controlam o Motor B. No caso de motores de passo, os 4 pinos são utilizados
Eu testei esse módulo com um motor de passo bipolar, retirado de uma impressora (o mesmo que eu utilizei no post Controlando motor de passo bipolar com o módulo Easydriver). Como o motor é de 12 volts, utilizei uma fonte externa para alimentação. Repare que o pino GND do Arduino deve ser ligado ao GND da fonte externa:

Com esse motor eu vou usar a sequência mostrada na tabela abaixo, que se refere ao motor que eu tenho. A bobina 1 está ligada aos fios amarelo e cinza, e a bobina 2 aos fios marrom e verde, e provavelmente são diferentes das cores dos fios do motor que você tiver aí. De qualquer forma, basta descobrir quais são os pares das bobinas.

Com base na tabela, vou acionando os pinos 8, 9, 10 e 11 do Arduino com pequenos intervalos, movimentando o motor. Como estamos acionando diretamente os pinos, não vamos utilizar bibliotecas nesse programa.
//Programa: Ponte H L298N com motor de passo //Autor: Arduino e Cia //Conexoes modulo - Arduino int IN1 = 8; int IN2 = 9; int IN3 = 10; int IN4 = 11; void setup() { //Define os pinos como saida pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); } int tempo = 10; void loop() { //Passo 1 digitalWrite(IN1, 1); digitalWrite(IN2, 0); digitalWrite(IN3, 0); digitalWrite(IN4, 1); delay(tempo); //Passo 2 digitalWrite(IN1, 0); digitalWrite(IN2, 1); digitalWrite(IN3, 0); digitalWrite(IN4, 1); delay(tempo); //Passo 3 digitalWrite(IN1, 0); digitalWrite(IN2, 1); digitalWrite(IN3, 1); digitalWrite(IN4, 0); delay(tempo); //Passo 4 digitalWrite(IN1, 1); digitalWrite(IN2, 0); digitalWrite(IN3, 1); digitalWrite(IN4, 0); delay(tempo); }
Adapte o programa ao seu projeto, ajustando a sequência de ativação, alterando o sentido de rotação e modificando o programa para que o motor se movimente em ângulos pré-determinados.
Gostou do post de ponte H L298N com motor de passo e Arduino? Confira outros posts usando motores aqui mesmo no Arduino e Cia!
Oi amigo, obrigado pela postagem; Comprei uma placa dessa recentemente, portanto, gostaria de saber, por favor, como montar um circuito com botões de tal forma que, se for apertado um botão, o motor gira para um lado e, no outro botão, faça o contrário; se for possível, responda no meu email que é: [email protected]
Obrigado
https://www.youtube.com/watch?v=xDaVolo0sXU
PODERIAMOS AUTOMATIZAR ESSE PAINEL ROTATIVO?
Boa tarde,
Não vejo problemas em controlar um painel desses com Arduino, utilizando o controlador de motor adequado.
Abraço !
Parabens pelo post amigo , mais uma duvida porque o lado de da BOBINA 2 nunca e ligada
Boa noite Wagner,
Obrigado. A bobina 2 é acionada, estou usando a sequencia mostrada na tabela.
Abraço !
como mudar sentido da rotação do motor de passo pela progamação?
Boa tarde Inacio,
Tente inverter a sequência de energização das bobinas.
Abraço !
Abraço !
Boa tarde! Eu estou tentando controlar o giro do motor através do módulo BT. Vc poeria me ajudar?
email [email protected]
Boa tarde! Eu gostaria de controlar o motor através de um módulo bluetooth. Vc tem algum exemplo aí? email [email protected]
Grato.
Boa tarde. Gostaria de controlar via bluetooth, vc teria um exemplo de progração.
Boa tarde Isaque,
Eu tenho alguns artigos sobre controle de portas usando bluetooth, um deles é com servo motor, mas você pode adaptar facilmente para o motor de passo :
http://www.arduinoecia.com.br/2014/01/controlando-um-servo-motor-utilizando.html
Abraço !
Eu mudei este código. Inseri um trimpot de 100k para ajustar a velocidade dos pulsos via entrada analógica. Utilisei um motor de passo bipolar chinês modelo:23hs8414-03 da DR. Este motor é bem parrudo, mas percebi que na máquina chinesa o seu drive era um TB6560AHQ da toshiba. Porém o dissipador esquenta muito não se isso é normal. Alguém pode me ajudar? meu e-mail é [email protected]
Boa noite preciso de um sistema para controlar temperatura de no minimo 100° e no máximo 150° com um algum motorzinho para abrir e fechar o fluxo de ar (que hoje é controlado por uma pequena alavanca, para cima fica toda aberta e aumenta o fluxo de ar e consequentemente aquece, para baixo fecha e diminui a temperatura e são 3 locais para medir a temperatura com alavancas.
É possível alimentar com 6V o motor shield e puxar a saída 5V para alimentar o arduino, um micro servo 9g e um módulo ultrasom?
Boa tarde,
Não testei nessa configuração, mas acredito que é possível sim, apenas se certifique de que a fonte tem potência suficiente para suportar tudo isso.
Abraço!
Boa tarde, saber me dizer se é possível usar a ponte H em um motor com 5 fios?
Bom dia,
Eu ainda não testei esse driver com um motor de 5 fios, mas parece que funciona. Dê uma olhada neste link, por favor: https://alselectro.wordpress.com/2014/04/25/stepper-motor-control-with-l298-arduino/
Abraço!
oi, gostaria de saber do que preciso para mandar para esses drivers o g-code corretamente para criar uma cnc. Pois vejo muitos tutoriais que utilizam Easydriver mas gosto de fazer tudo em casa e fazer o mais barato possível só q no Easydriver ele manda para o arduino 3 fios(dir,step e o enable) e com o L298 manda 4 como faria para configurar isso no arduino e receber o g-code e interpretar para os motores?
Bom dia amigo. Segui o seu projeto e utilizo um motor de passo EM-101 de impressora Epson (LX810) o que percebi que olhando o seu esquema não foi utilizado os fios 2 e 5 do motor. É isso mesmo ou o seu motor é de 4 fios. No caso desse motor com 6 fios consigo colocá-lo em movimento com a controladora L298N? tentei fazer suprimindo os 2 fios e o motor até tenta girar, mas em determinado ponto pára. Será que é por falta de alimentação dos fios 2 e 5?
Gostaria muito de usar esse motor com alimentação externa de 12V. Aguardo seu contato. Obrigado,
Julio
Boa noite Julio,
Exato. É de 4 fios. Vou ver se arrumo algum esquema para motor de 6 fios.
Abraço!
Estou com uma duvida…
No pino de (6-35V), se eu colocar um motor que tem essas especificações ..
– Tensão Nominal: 12,00 V;
– Tensão Operacional: 6V ~ 18V;
Eu posso colocar uma fonte externa de 14,8V ?
Obrigado
Oi Matheus,
Não recomendo a tensão da fonte é maior do que a suportada pelo motor.
Abraço!
na verdade ele trabalha com os 14,8 pq a tensao de trabalho vai ate 18v, qt maior a tensao maior o torque, porem, a velocidade tem q ser diminuida. torque alto mais velocidade = a motor queimado!!!
Bom dia,
Eu tenho um motor de passo que sua tensão é 2,6V/Phase e sua corrente é 3,1A/Phase a ponte H L298N supotaria rodar esse motor?
Obrigado.
Bom dia,
Gostaria de saber se a ponte H L298N conseguria suporta um motor com com a tensão de 2,6V por Fase e uma corrente de 3,1A por fase?
Obrigado.
Bom dia André,
A corrente máxima suportada é de 2A, segundo o fabricante.
Abraço!
meu motor de passo e 4 fios complementando minha pergunta.
como faria para ligar três motores no arduino com este driver? e possível?
Bom dia Daniel,
Sinceramente nunca tentei, mas eu acho que você consegue ligar no máximo 2 motores. Tente o Arduino Motor Shield, que aceita até 4 motores DC:
http://www.arduinoecia.com.br/2014/07/arduino-motor-shield-l293d.html
Abraço!
Assim como eu fui ajudado, também quero ajudar. Conheço uma programação muito simples p/ motor de passo utilizando a ponte H L298N:
#include
\ declara quantidade de passos por volta e onde os pinos do motor estão ligados
Stepper motor(200, 8 , 9 , 10 , 11 );
void setup()
{
motor.setSpeed(70); \ velocidade do motor
}
void loop ()
{
motor.step(600); \ o motor gira horário 3 voltas
delay(100);
motor.step(-600); \ o motor gira anti horário 3 voltas
delay(1000);
}
Acho que o include do teu código falta o Stepper.h
Boa dia, gostei do projeto, tambem tenho um motor de passo de uma impressora modelo C2164-60045, unipolar e gosta de saber se este meu mortor se encaixa nesse projeto.Obrigado pela atenção.
Boa noite Vinícius, sim! Este programa roda qualquer motor de passo, talvez você precisará adequar o número de passos por volta porque o número de passos por volta está atrelado a precisão do motor mas, serve sim p/ seu motor.
Amigo essa placa serve pra mim amplificar a voltagem de um servo normal,pra mim ligar um motor de vidro elétrico 12V ?
Oi Italo,
Amplificar creio que não. O que você consegue é controlar o motor.
Abraço!
bom dia amigo teria como voce nos auxiliar para ligação de um motor de passo nema 23 20kgf 8 fios em placa L298N com placa arduino unoR3 para montagem de um tcc em escola tecnica
Boa tarde,
Conseguiu ligar ?
Abraço!
Ola, seria possível utiliza meio-passo ou micro-passo com o L298N ?
Oi Rafael,
Não achei nenhuma documentação sobre isso. creio que não seja possível.
Abraço!
Olá, comprei uma placa dessa recentemente e gostaria de saber, por favor, como montar um circuito com botões de tal forma que, se for apertado um botão, o motor gira para um lado e, no outro botão, faça o contrário. Se for possível, responda no meu email que é: [email protected]
Montei um circuito utilizando o Fritzing, mas nãop sei se está correto. Obrigado
Olá, sabe se é possível substituir a ponte por uma ramps 1.4; é q a da minha impressora 3d queimou só a parte que esquenta a mesa, o resto ta tudo ótimo. Queria só reaproveitar a placa.. :
Obrigado!
Olá. Tenho varios motores desses. Tenho o arduino e duas placas controladoras. Mas nao sei programar. Queria saber se vcs tem um código desses que utiliza um potenciometro pra regular a velocidade. Obrigado. Abraços
Olá gostaria de saber se vcs tem um codigo pra um esquema parecido com esse o que muda é que precizo de um potenciometro pra regular a velocidade do motor de passo. Tenho o arduino a placa controladora e varios motores de passo. É possivel fazer isso? Obrigado abraços
Alisson, tem um template pronto no arduino para controlar a velocidade do motor de passo com um potenciometo
tenhho uma maquina que trabalha com um l298n e um l297 ,, ela esta perdendo medidas e esquentando o motor de passo , depois de algum tem´po de trabalho , já troquei os capacitores da maquina e os controladores de 5 e 15 volts , gostaria de saber seo l298n ou l297 pode estar interferindo diretamente na voltagem do meu motor de passo e fazendo ele sobre aquecer ? segue meu email caso alguem tenha a ideia [email protected]
Acredito que o L298N não funcionará muito bem com um NEMA 23. Verifique a corrente máxima oferecida pela ponte H e a corrente desejada do seu motor. "Se a corrente do motor > ponte H = Super aquecimento.
Quanto a programar, tente você só assim aprenderá. Utilize um potenciômetro p/ controlar a velocidade e se tiver problemas, poste seu código que eu ou outra pessoa tentará te ajudar.
Ozael medeiros, Você esta utilizando um pino analogico p/ fazer uma leitura digital, não funciona assim!
Mude o pino A0 -> Que é analógico P/ um pino digital que, aí sim você poderá fazer a leitura (digitalRead(pino))
Você vai precisar também, de uma chave de fim de curso p/ pode iniciar o motor de um ponto Zero "Onde inicializar"
E criar uma função de inicialização "P/ quando a maquina for ligada o motor buscar o ponto Zero da maquina"
E no loop do seu programa… Precisa melhorar,
tipo Se(apertou) { faça isso } se não { faça aquilo }
if(botao)
{
stepper.step(x);
}else{
stepper.step(y);
}
como faço para usar dois motores de passo com 2 pontes h e 1 Arduino uno
Amigo, como posso inverter a rotação do motor de passo? Tentei fazer o espelho dessa tabela que vc fez, porem o motor girou para o mesmo sentido, qual seria a tabela para rodar o contrario da sua?
Se você estiver utilizando uma das bibliotecas do Arduíno, basta colocar o número de passos em negativo, tipo:
motor (-200); gira 200 passos p/ um lado
Ou
Motor ( 200); gira 200 passos p/ outro lado
amigo como faço para inverter o sentindo de rotação,tentei invertei a alimentação das bobina mas nao consegui
Com o Nema 17 foi tudo blz.
Agora quero simular posicao/passo com um potenciometo.
Faixa do potenciometro (2 fios qual modeo usar ) variando as posicoes de 0 a 100 passos.
Ou seja o motor vai girar como se movimentasse um parafuso rosca 100 fim para frente e para tras.
A ideia e simuar o funcionamento de um motor de passo veicular.
Agradeco por dicas ou exemplos
[email protected]
goo.gl/Cp8Si4
é possivel usar um shield v3 e um driver, ligando na ponte h e usar o pino pwm para controlar, eu queria mudar a velocidade do eixo x através da variação do pwm só do eixo x
Oi Antonio,
Você consegue mudar a velocidade do eixo só usando PWM sim, só precisar ver o tipo de ligação que vc vai fazer, não entendi o esquema do Shield + driver + ponte H.
Abraço!
Adilson
queria ligar um pirografo no lugar do laser e variar a velocidade do eixo x usando o F no mach3 isso é possivel mas tenho arduino variar a velocidade produzindo uma imagem em tons de cinza tipo queima mais na lenta e menos na rapida
G0 X0Y0.000
G1 X0.00
F4223.529
X0.10
F3111.765
X0.20
F2141.176
X0.30
F1858.824
X0.40
F1982.353
X0.50
F1170.588
X0.60
F2405.882
X0.70
F2970.588 esse é um gcode do mach3 onde a variação F é variação de velocidade do eixo x baseada em claro e escuro
OLA AMIGO E NORMAL O MOTOR ESQUENTAR?
Boa tarde,
Bem normal. 🙂
Abraço!
Adilson
Tem como fazer uma sequencia de movimentos horarios e anti horarios seguidos com o L298?
Oi Xande,
Tem sim, não tenho nenhuma programação pronta com isso, mas é relativamente simples de fazer.
Abraço!
Adilson
Oii tudo bm? Como faço para controlar um motor de passo com um controle de ps2 sem fio, quero ter a posibilidade de acionar o horario e anti horario do motor com um limite pre determinado ?
Boa tarde
Parabéns, gostaria de alimentar a placa por uma bateria de lítio ligada no arduino, mas não funciona. você poderia me ajudar? penso que deveria alimentar a ponte pelo pino 5v, mas não funciona