Controlando servo motor com o Motor Shield L293D
Neste post vamos mostrar como você pode controlar, de maneira muito simples, um servo motor do tipo 9G usando o Motor Shield L293D com Arduino.
O Motor Shield L293D já foi abordado aqui no blog e mostrado em alguns posts:
- Controlando motores DC com o Arduino Motor Shield L293D
- Controlando motores de passo 28BYJ-48 com o Arduino Motor Shield L293D
Faltava apenas a parte de controle de servo motores para cobrirmos todas as opções deste shield, e é isso que vamos ver nesse post.
O motor shield L293D Arduino
Controlar servos com o Motor Shield é tarefa mais simples do que trabalhar com motores DC e motores de passo já que temos 2 conectores no canto superior esquerdo, específicos para ligação dos servo motores:
A alimentação do servo ligado a um dos conectores é feita pelo próprio Arduino (5v), e na placa que eu tenho o Servo 1 (conector superior) é controlado pelo pino digital 10 do Arduino, e o Servo 2 (conector inferior) é controlado pelo pino 9.
Observação: no site oficial do Motor Shield esta informação está invertida: Servo 1 no pino D9 e Servo 2 no pino D10. Pode ser a versão da placa ou apenas uma marcação errada. Na dúvida, teste as duas configurações.
Circuito e conexão
O servo motor que eu utilizei para testar foi o Micro Servo 9G. Observe que no shield o primeiro pino mais à esquerda é o negativo (GND), o do meio é o Vcc e o mais à direita é o pino de sinal (S).
Ao contrário do motor DC e do motor de passo, que utilizam a biblioteca AF_Motor, com o servo motor utilizamos a própria biblioteca Servo do Arduino.
O programa abaixo movimenta o servo entre 0 e 180 graus, e depois volta à posição inicial repetindo o processo:
// Programa : Controle de servo com Motor Shield L293D // Autor : Arduino e Cia // Carrega a biblioteca Servo #include <Servo.h> // Cria um objeto chamado servo1 Servo servo1; int val = 0; void setup() { // Indica que o servo1 esta ligado ao pino 10 servo1.attach(10); Serial.begin(9600); } void loop() { // Movimenta o servo servo1.write(val); delay(100); val = val+5; // Envia as informacoes de val para a serial Serial.println(val); // Verifica se o valor de val chegou a 180 if (val == 180) { // Caso val chegue a 180, volta a 0 val = 0; } // Aguarda 15 ms e reinicia o processo delay(15); }
Gostou? Confira mais posts com o L293D aqui no Arduino e Cia!
Boa tarde.
Como faço para a alimentação do servo motor ser a mesma da shield e não do arduíno?
Boa tarde,
Você pode utilizar alimentação externa para os servos, mas vai precisar fazer uma pequena alteração no hardware. Dê uma olhada neste link, por favor: https://learn.adafruit.com/adafruit-motor-shield/using-rc-servos
Abraço !
Olá, gostaria de saber se eu poderia controlar os 4 motores DC e mais os 2 servos simultaneamente já que tem espaço, ou sobrecarregaria alguma coisa? É que onde eu comprei o shield dizia que ele podia controlar 4 motores DC, OU 2 motores de passo, OU 2 servos. Eu poderia então controlar os 2 servos mais os 4 motores? Abraço.
Boa noite,
Sim, você pode controlar os 4 motores DC com alimentação externa, E os 2 servo motores ao mesmo tempo, já que eles utilizam os 5V do Arduino.
Abraço!
Olá, Qeria saber se posso controlar 4 servos 9g com Shield ?
Boa tarde,
Esse shield só consegue controlar dois servo motores.
Abraço!
eu poderia usar 2 motores de passo quenos que tenho acho que consome menos q 5v
e mais servo motor nesse shild ??
Oi Edilsom,
Veja as especificações dos motores, mas a princípio funciona sim.
Abraço!
Boa tarde, estou fazendo um projeto em que vou ligar dois motores DC de 3V, um servo 9G, um Sensor ultrasonico SR e um módulo bluetooth HC-05. Minha dúvida é, como alimentar isso tudo e ainda ter uma força nos motores DC?
Boa noite,
Você pode usar a alimentação externa para os motores e a alimentação do próprio Arduino para o sensor ultrassônico e o HC-05.
Abraço!
Você teria como dar consultoria nesse caso ? Não estou conseguindo arrancar força dos motores DC.
Oi Tiago,
Entre em contato utilizando o formulário de contato no lado direito da página. Combinamos por email.
Abraço!
Olá, seria possível você dar uma olhada nesse sketch https://github.com/jinschoi/SphereBot, e me dizer por que não consigo faze-lo funcionar com esse Shield. Obrigado
Bom dia, gostaria de saber como faço para ligar esse modulo + um modulo acelerometro, ficaria ligados nos mesmos pinos do Arduino Uno?
Grato.
Olá Boa tarde. Eu consigo utilizar o shield para 4 motores DC e ainda utilizar um receptor de controle de PS2? Tudo isso no arduino Uno! Pergunto isso porque o Shield L293D utiliza todos os pinos do Arduino. Como faço?
Olá, gostaria de saber se é possível ligar um sensor ultrasônico utilizando os conectores que seriam para o servo. Quero ultilizar dois motores, um servo e um sesor ultrasônico, mas não queria ter que fazer a soldagem para novos pinos.
Olá gostaria de saber como faria o codigo dela sendo ativada por sensores ativada duração de 15 segundos e apos 15 segundos retorna a 0 .
Olá ,estou fazendo um projeto queria saber como eu faço para que o motor servo ative usando sensores por 15 segundos e va ate 180 e apos isso volte para 0.
queria saber qual a função de cada pino do servo, pq quero saber, se ele é as mesmas funções de cada pisto, como a entrada do ICSP do arduino
por favor me responder……
Boa tarde amigos . tem como liga a l293d em um recepitor de radio controle rc ??
É possível além de dois motores e servo motores é possível colocar um módulo wifi ?
Se sim, como…
Se não, o que eu posso fazer ?
Obrigado
Boa noite,
Eu tentaria usar um módulo ESP8266, dependendo do seu projeto.
Abraço!
Adilson