Adquira estes componentes na Loja do Lab de Garagem
Neste tutorial vamos mostrar como utilizar o L293D para controlar motores de corrente contínua (DC) com Arduino.
O L293D é basicamente uma ponte-H em um circuito integrado. Pode-se controlar motores de até 36V de alimentação como mostra no datasheet. Cuidado, que o L293D aguenta corrente constante de 600mA e corrente pico em torno de 1.2A. Portanto não coloque motores DC que exijam mais do que 600mA.
Primeiramente, vamos olhar no datasheet para saber a pinagem do L293D:
Vendo a pinagem do L293D, é possível ligar até 2 motores em um único L293D, porém é necessário que a fonte de alimentação suporte o consumo de corrente. Neste tutorial iremos demonstrar apenas um motor DC.
Agora, vamos ver como fazer o motor DC girar de um lado e para outro:
Se os pinos 1 e 7 estiverem em alto(HIGH) e o pino 2 estiver em baixo(LOW), o motor girará para um lado. Se os pinos 1 e 2 estiverem em alto(HIGH) e o pino 7 estiver em baixo(LOW), o motor girará para o outro lado. E assim por diante.
Utilizando um botão, um resistor de 10K ohm, um motor DC de 9V, uma bateria de 9V, L293D e um Arduino, vamos para a montagem:
Na montagem estou utilizando um motor DC de 9V e alimentando o L293D com uma bateria de 9V. Antes de ligar a alimentação do motor, veja qual é a sua alimentação, caso contrário irá queimá-lo.
Depois de feito a montagem, abra a IDE do Arduino e passe a programação exemplo:
int switchPin = 2; // switch input
int motor1Pin1 = 3; // pin 2 on L293D
int motor1Pin2 = 4; // pin 7 on L293D
int enablePin = 9; // pin 1 on L293D
void setup() {
// set the switch as an input:
pinMode(switchPin, INPUT);
// set all the other pins you're using as outputs:
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(enablePin, OUTPUT);
// set enablePin high so that motor can turn on:
digitalWrite(enablePin, HIGH);
}
void loop() {
// if the switch is high, motor will turn on one direction:
if (digitalRead(switchPin) == HIGH) {
digitalWrite(motor1Pin1, LOW); // set pin 2 on L293D low
digitalWrite(motor1Pin2, HIGH); // set pin 7 on L293D high
}
// if the switch is low, motor will turn in the opposite direction:
else {
digitalWrite(motor1Pin1, HIGH); // set pin 2 on L293D high
digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D low
}
}
Agora, selecione a versão da placa Arduino (UNO, Duemilanove, etc), depois em selecione a porta a qual a placa Arduino está conectada (COMx, ttyUSBx, ttyACMx, etc) e clique em "UPLOAD".
O motor DC irá girar para um lado. Se apertar o botão, o motor DC girará para o outro lado.
Pronto!! Caso tenham dúvidas sobre o post, poste aqui mesmo neste post! Se tiverem sugestões, postem aqui! Vocês podem ver outros tutoriais, clicando aqui, e projetos abertos desenvolvidos pela equipe LdG ou pelos garagistas da rede, clicando aqui! Até a próxima!
Referências:
http://luckylarry.co.uk/arduino-projects/control-a-dc-motor-with-ar...
http://arduino.cc/playground/Main/InterfacingWithHardware
http://www.datasheetcatalog.org/datasheet/stmicroelectronics/1330.pdf
Comentar
Pessoal,
caso a bateria seja desconectada, o motor será alimentado de forma reversa pelo controlador através do INPUT 1? Nesse caso, o que poderia ser feito para evitar isso? Obrigado!
A falta do GND entre o Arduino e a proto?
Manda outra pegadinha.
; )
Julio Belarmino.
Leia minha mensagem com o "CUIDADO COM O PINO 8!!!!!"
Boa tarde! preciso fazer um circuito igual a este só que estou com duvida,neste circuito mostrado vc alimenta o c.i l293D com 9v dc sendo que o data shet mostra a tabela 5v dc
Maurício. Já mediu o consumo do motor? É variável, tanto assim?
Aí galera, Faço minha a dúvida do Gabriel Fillipi."Boa noite, tem algum CI com essa mesma finalidade que suporte um motor de 7~15A?" Pretendo usar aqueles motores de vidro elétrico mabuchi em um robo. Se alguém puder me ajudar, eu fico realmente grato.
Alguém sabe o esquema de montar uma ponte h para motor dc usando modulo rele?
Cuidado com o pino 8!!!!!!
Minha experiência com quem está montando este componente em protoboard e aos descuidados que só sabem fazer as coisas usando shield:
CUIDADO COM O PINO 8!!!!!!!
Quando se trata de alimentar cargas e se fizer os primeiros testes com este CI fiquem espertos em se fazer os teste com 5 volts primeiro e depois se "engraçarem" com tensões maiores, pois aqui é que "mora o perigo". O pessoal esquece de desfazer a ligação do pino 8 com os 5 Volts do Arduino e quando "somam" mais um "fiozinho" a este pino (sem tirar o que vai até os 5 Volts do Arduino) na verdade estão "matando" a placa do Arduino quando fazem a ligação da fonte que alimentará os motores conectados ao L293D.
O pino 16 (de Vss) só pode ser alimentado até os 5 Volts.
O pino 8 (de Vs) não deve estar ligado a mais nada a não ser a fonte que alimentará os motores.
Alguns datasheets encontrados na net, tem confusões em relação ao nome e conexões destes pinos, fiquem atentos.
Boas sortes!!!
Boa noite, tem algum CI com essa mesma finalidade que suporte um motor de 7~15A?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
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)