



O chip mais popular em questão de controlar motores e robôs é o L293D, que é parte indispensável do Motor Shield que será tratado neste post. Esse chip tem a capacidade de controlar motores DC, servo motores e motores de passo. Ele é chamado de Shield pois pode ser facilmente conectado a todos os pinos do Arduino, por possuir basicamente a mesma carcaça. Neste post, será descrito o que é e como funciona o Motor Shield L293D, e também serão desenvolvidos 4 projetos exemplos em que o Motor Shield controla quatro tipos diferentes de motores. Bora aprender?

Neste projeto, seram desenvolvidos 4 exemplos de como realizar a comunicação entre o Motor Shield L293D e 4 diferentes tipos de motores: motor DC, motor de passo, servo motor e motor de passo NEMA. Os código utilizados aqui foram desenvolvidos pela equipe do Last Minute Engeneers, sua referência está no final do post. O objetivo aqui é simplesmente fazer com que os motores se movam, porém há algumas diferenças na abordagem para cada motor. E aí, pronto para colocar a mão na massa?


#include <AFMotor.h>
AF_DCMotor motor(4);
void setup()
{
//Seta a velocidade inicial do motor e o para
motor.setSpeed(200);
motor.run(RELEASE);
}
void loop()
{
uint8_t i;
// Liga o motor
motor.run(FORWARD);
// Acelera de zero à velocidade máxima
for (i=0; i<255; i++)
{
motor.setSpeed(i);
delay(10);
}
// Desacelera da velocidade máxima para zero
for (i=255; i!=0; i--)
{
motor.setSpeed(i);
delay(10);
}
// Muda direção do motor
motor.run(BACKWARD);
// Acelera de zero à velocidade máxima
for (i=0; i<255; i++)
{
motor.setSpeed(i);
delay(10);
}
// Desacelera da velocidade máxima para zero
for (i=255; i!=0; i--)
{
motor.setSpeed(i);
delay(10);
}
// Desliga o motor
motor.run(RELEASE);
delay(1000);
}
#include <AFMotor.h>
// Número de passos por rotação de saída
// Se preciso, mude esta especificação de acordo com seu motor
const int stepsPerRevolution = 200;
// Conecta o motor a porta #2 (M3 and M4)
AF_Stepper motor(stepsPerRevolution, 2);
void setup() {
Serial.begin(9600);
Serial.println("Teste do Motor de Passos!");
motor.setSpeed(10); // 10 rpm
}
void loop() {
Serial.println("Passo única da bobina");
motor.step(100, FORWARD, SINGLE);
motor.step(100, BACKWARD, SINGLE);
Serial.println("Passo duplo da bobina");
motor.step(100, FORWARD, DOUBLE);
motor.step(100, BACKWARD, DOUBLE);
Serial.println("Passos intercalados da bobina");
motor.step(100, FORWARD, INTERLEAVE);
motor.step(100, BACKWARD, INTERLEAVE);
Serial.println("Micropassos da bobina");
motor.step(100, FORWARD, MICROSTEP);
motor.step(100, BACKWARD, MICROSTEP);
}
#include <Servo.h>
Servo myservo; // Cria servo objeto para controlar um servo
int pos = 0; // Variável para guardar a posição do servo
void setup()
{
// Conecta o servo no pino 10 para o servo objeto
myservo.attach(10);
}
void loop()
{
// Aumenta o ângulo de 0 graus até 180 graus
for(pos = 0; pos <= 180; pos += 1)
{
myservo.write(pos);
delay(15);
}
// Diminui o ângulo de 180 graus até 0 graus
for(pos = 180; pos>=0; pos-=1)
{
myservo.write(pos);
delay(15);
}
} Espero que tenha gostado do post. O objetivo aqui foi apenas dar um norte ao aprendizado sobre o componente Motor Shield L293D e iniciar sua implementação prática com ele. Confira nossos posts relacionados ao tema abordado aqui:
Avalie o post e deixe um comentário sobre seu interesse com Arduino e se esse artigo te ajudou a descobrir mais sobre essa plataforma. Siga-nos também no Instagram para receber conteúdos diários sobre Arduino e eletrônica: @eletrogate. Até mais!
|
O chip mais popular em questão de controlar motores e robôs é o L293D, que é parte indispensável do Motor Shield que será tratado neste post. Esse chip tem a capacidade de controlar motores DC, servo motores e motores de passo. Ele é chamado de Shield pois pode ser facilmente conectado a todos os pinos do Arduino, por possuir basicamente a mesma carcaça
Encontre tudo na Loja Eletrogate com frete grátis para compras acima de R$ 200