Avaliação do Usuário

Estrela inativaEstrela inativaEstrela inativaEstrela inativaEstrela inativa
 

 

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:

 

{code}

#include <Servo.h>

 

Servo motor;

void setup()

{

motor.attach(3);

}

void loop()

{

motor.write(160);

delay(1000);

motor.write(16);

delay(1000);

}

{/code}

 

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.

 

 

{youtube}6UcaqPIKd5A{/youtube}

 

 

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:

 

{code}

#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);

}

{/code}

 

 

{youtube}oCGcT9kr7hU{/youtube}

 

 

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.