Tutorial: Controlando motor de passo com L293D e Arduino

Neste tutorial, vamos mostrar como controlar um motor de passo utilizando o circuito integrado L293D e Arduino.

O L293D é um circuito integrado de ponte-H. Com ele é possível controlar motores DC e motores de passo. Para ver o datasheet, clique aqui! Em relação ao easydriver, você pode configurar a velocidade e o número de passos para dar mais velocidade e/ou mais torque. No L293D você pode utilizar um motor de passo de no máximo 600mA e 36V de alimentação para o motor de passo. No easydriver, porém, é mais fácil sua utilização e mais simples. E não tem necessidade de colocar outros componentes como no L293D. E você pode utilizar um motor de passo de até 750mA e 30V de alimentação do motor de passo.

Para este tutorial, vamos utilizar:

  • 1x Circuito Integrado L293D
  • 1x Arduino
  • 4x resistor de 10K ohm
  • 2x resistor de 1K ohm
  • 2x transistor BC547 NPN (Pode ser utilizado outro equivalente, contanto que seja NPN)
  • 2x botões (pushbutton)
  • 1x Motor de passo

Primeiramente, faça a seguinte ligação:

A bateria de 9V é apenas a demonstração da fonte externa para alimentar o motor de passo. Veja no datasheet do seu motor de passo qual a tensão utilizada.

Agora abra a IDE do Arduino e passe a seguinte programação:

#include <Stepper.h>  //Biblioteca já disponível na IDE do Arduino

const int steps=200;  //Número de passos para o motor
int buttonState=0;
int buttonState1=0;
Stepper motor(steps,8,9); //Pinos 8 e 9 do Arduino

void setup()
{
motor.setSpeed(100);    //Velocidade da rotação do motor (RPM)
Serial.begin(9600);
pinMode(4,INPUT);   //Botão 1
pinMode(5,INPUT);   //Botão 2
pinMode(2,OUTPUT);   //Enable do L293D
digitalWrite(2,LOW);
}

void loop()
{
buttonState=digitalRead(4);
buttonState1=digitalRead(5);
if(buttonState==HIGH)   //Gira para um lado
{
digitalWrite(2,HIGH);
Serial.println("botao");
motor.step(steps);
}
else if(buttonState1==HIGH)  //Gira para o outro lado
{
digitalWrite(2,HIGH);
Serial.println("botao 1");
motor.step(-steps);
}
else   //Fica parado
{
digitalWrite(2,LOW);
Serial.println("Parado");
motor.step(0);

}
}

Conecte seu Arduino na porta USB do seu computador, selecione a versão do seu Arduino (UNO, Duemilanove, etc) em "Tools/Boards" e a porta (COMx, ttyUSBx, ttyACMx, etc) em "Tools/Serial Port". E clique em "UPLOAD".

Apertando um botão o motor de passo girará para um lado. Se apertar o outro botão o motor de passo girará para o outro lado. Caso seu motor de passo não gire, experimente inverter os fios das bobinas. Ou experimente diminuir ou aumentar o número de passos do motor e a velocidade.

E é isso! Esperamos que tenha gostado! Em caso de dúvidas, poste aqui neste blog! Para sugestões de tutoriais, clique aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas, clique aqui e aqui, respectivamente! Até a próxima!

Referências:

http://www.labdegaragem.org/loja/index.php/36-motores-afins/motor-d...

http://www.labdegaragem.org/loja/index.php/36-motores-afins/easydri...

http://www.labdegaragem.org/loja/index.php/29-arduino.html

http://www.labdegaragem.org/loja/index.php/30-compativeis.html

http://www.tigoe.net/pcomp/code/circuits/motors/stepper-motors/

http://arduino.cc/en/Tutorial/Button

http://arduino.cc/en/Reference/StepperBipolarCircuit

Exibições: 3793

Tags: arduino, de, l293, l293d, motor, passo, tutorial

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Marcos Vinícius Cândido em 9 dezembro 2012 às 9:06

 Neste mesmo circuito, ao invés de usar os push button, como seria a ligação de um joystick de playstation ou o joystick shield? 

Comentário de joao carlos pandolfi santana em 30 outubro 2012 às 15:04

Muito Bom!!!

Ótimo para fazer servos motores caseiros usando motores de passo de sucata.

Muito top!

Parabéns pela iniciativa!!

Publicidade

Convide um amigo para o Lab!

 Loja Lab de Garagem

Novo!

Garagino Rev1

Por: R$ 29,00

Ou em até 6x de

R$ 5,18 

Novo!

Estação de Solda

Temperatura Ajustável - 50W

Por: R$ 150,00

Ou em até 18x de

R$ 10,00

 

Exclusividade do LdG!

Android 4.0 Mini PC

Por: R$ 195,00

Ou em até 18x de

R$ 13,00

Osciloscópio Digital

(ADS1102C) - 100MHz - 2 Canais

Por: R$ 1920,00

Ou em até 18x de

R$ 127,96

© 2013   Criado por Marcelo Rodrigues.

Badges  |  Relatar um incidente  |  Termos de serviço