Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Controlando um servo motor com Arduino

Imprimir
Avaliação do Usuário: / 57
PiorMelhor 

 

Servos motores possuem um grande diferencial em relação a motores de passo e motores DC, enquanto com o primeiro você pode determinar a velocidade e precisão, por exemplo, determinando a quantidade de passos que o motor deve dar em um terminado tempo, no segundo somente é possível, sem auxilio de qualquer sensor, determinar a velocidade variando-se a tensão aplicada a ele.

 

Em um servo motor é possível determinar a posição, em graus, com excelente precisão. O servo motor verifica a posição atual e desloca-se para a posição desejada dependendo da atuação que se faz no sistema.

 

Servo motores podem ser adquiridos com facilidade hoje em dia e são muito empregados em modelismo.

 

Normalmente servos motores não fazem o giro completo, mantendo-se apenas em cerca de 180 graus, mas com excelente precisão de posicionamento.

 

Bom, vamos ao que interessa, como fazer um servo motor funcionar controlado por um Arduino? Precisaremos de:

 

01 servo motor, no meu caso um mini servo comprado na Tato Equipamentos Eletrônicos (www.tato.ind.br).

 

 

 

 

03 fios para ligar o servo motor ao Arduino

01 Arduino

 

Note que no meu servo as cores dos fios são preto, vermelho e branco. O fio vermelho é a alimentação (+5V) o preto é o terra (GND) e o branco o sinal (controle).

 

Ligue o fio vermelho ao pino 5V do Arduino:

 

 

 

 

Ligue o fio preto ao pino GND do Arduino:

 

 

 

 

Agora o fio branco ao pino digital 3 do Arduino:

 

 

 

 

Simples assim! Agora vamos ao código:

 

#include <Servo.h>
 
Servo motor;
void setup() 
{ 
 motor.attach(3);
} 
void loop() 
{ 
 motor.write(160); 
 delay(1000); 
 motor.write(16);
 delay(1000);
} 

 

Esse código é bastante simples e fácil de entender:

 

Primeiro importamos a biblioteca pré-existente no Arduino que provê os controles para servos motores em #include.

 

Com Servo motor; criamos a variável motor como sendo do tipo Servo, pré-definido na biblioteca Servo.h (na verdade é um objeto do tipo Servo, já que essa biblioteca na verdade é uma classe).

 

Com motor.attach(3); informamos que o cabo de sinal do servo motor estará ligado ao pino digital 3 do Arduino.

 

Em motor.write(160); dizemos ao motor para posicionar-se em 160 graus.

 

Depois disso aguardamos um segundo e posicionamos o motor na posição de 16 graus, esperamos mais um segundo e começamos tudo de novo.

 

 

 

 

 

Com o código abaixo fazemos com que o servo motor movimente-se por toda sua faixa de giro incrementando os graus de posicionamento e depois decrementando:

 

#include 
 
Servo motor;
void setup() 
{ 
 motor.attach(3);
} 
void loop() 
{ 
 int i;
 for(i=0;i<180;i++) {
 motor.write(i); 
 delay(10); 
 }
 delay(1000);
 for(i=180;i>0;i--) {
 motor.write(i); 
 delay(10); 
 }
 delay(1000);
} 

 

 

 

 

 

Com esses conhecimentos é possível colocar em prática muitas ideias! Como movimentar pequenos robos com rodas, braços mecânicos, garras robóticas, câmeras e o que mais a imaginação permitir.

 

Comentários  

 
0 #39 Servo motorFernando A Borges 13-03-2016 20:13
Ola amigo, no meu projeto eu queria apertar um botao e o servo ir para uma posiçao de ex:90graus e depois apertar o mesmo botao e ele voltar a posição inicial! e se fosse possivel gostaria de que quando ele estivesse na posição de 90graus acendesse um led!
se voce puder me ajudar salvaria minha vida!rs...
Citar
 
 
+1 #38 projetotiago1920 03-02-2016 07:15
estou com um pequeno problema de programacao no arduiono.
este e o meu codigo para um comando rc.
sera que alguem me pode ajudar no que falta?


//Le o valor do potenciometro
valor = analogRead(pino _pot);
//Converte o valor para uma faixa entre 0 e 179
valor = map(valor, 0, 1023, 0, 179);
// quando acelera liga o led
if ( valor >= 90) {
digitalWrite (LED_PIN, HIGH);
//Envia o valor para o motor
myservo.write(valor);


motor.write(160);
delay(1000);
motor.write(16);
delay(1000);
Citar
 
 
+1 #37 bibliotecaclev 19-07-2015 16:48
Daniela, esta biblioteca ja esta incluida no arduino vc não precisa baixar ela, ela serve para simplificar a programação.
alem disso existe varias outras bibliotecas , para leds, displays , sensores...espero ter ajudado.
Citar
 
 
+4 #36 BibliotecaDaniela Dildey 17-06-2015 08:29
Olá! Estamos fazendo um robô e estamos trabalhando com servo motor, gostaríamos de saber aonde você encontrou esta biblioteca que incluiu no começo do programa , seria possível enviar-me por email?
Att
Citar
 
 
+1 #35 Controle de motorEdison 19-05-2015 23:15
Olá Fernando, gostaria de uma força sua:
Tenho que desenvolver um trabalho de TCC e gostaria de fazer uma Serv-machine com molas espirais controladas por 3 motores simultaneos, porem ele terá que ser ajustado para pelo menos uma rotação de uns 90 ou mais Graus para fazer o deslocamento por ex: de uma embalagem de Toddinho ou um pequeno pacote de bolacha. Gostaria de saber se é possivel fazer isso com o Arduino visto que como disse o deslocamento é limitado em 180 graus. Obrigado !
Citar
 
 
+2 #34 programa do arduinoDonizete 17-05-2015 10:36
Bom dia, estou com o projeto da faculdade que consiste em acionar um braco mecanico com 5 servo motor, gostaria de saber se tem como fazer uma programacao para que apartir do momento em que a tensao chega na placa se os servos vao fazer
os movimentos que eu programei ou se eu tenho que acionar eles atraves de um pc
Citar
 
 
+2 #33 Arduino e servorafael obayashi 09-05-2015 12:49
Ola amigo, no meu projeto eu queria apertar um botao e o servo ir para uma posiçao de ex:90graus e depois apertar o mesmo botao e ele voltar a posição inicial! e se fosse possivel gostaria de que quando ele estivesse na posição de 90graus acendesse um led!
se voce puder me ajudar salvaria minha vida!rs...
Citar
 
 
0 #32 QueimouJonas 25-04-2015 22:29
com esse tutorial queimei meu arduino :sad:
Citar
 
 
0 #31 gimbalSilvio 08-01-2015 18:37
Ola !! muito interessante ...me de uma ajuda , eu montei um quadricoptero e eu pretendo instalar FPV nele eu gostaria de saber o q devo fazer e quais peças precizo para conseguir esse 15$ F450 Gimbal HK FPV Pan & Tilt for Naza Lite: http://youtu.be/7B6oBAjUqEw. Obrigado grato .. se possivel me mande por e-mail. Obg
Citar
 
 
+1 #30 motormarcos gall 06-12-2014 09:20
legal gostaria de saber se vc sabe como posso ligar 2 servo motor no arduino uno eu quero controlar o telescopio pelo pc vc por acaso sabe como poso controlar ele abraço
Citar
 

Adicionar comentário


Código de segurança
Atualizar

You are here: