Olá pessoal, hoje vou mostrar como utilizei o meu arduino para controlar um servo motor.
Estou usando:
1 - Arduino Duemilanove
2 - Servo Motor HX5010
3 - Bateria
4 - Fios
O primeiro passo é montar o circuito abaixo:
OBS.: Dependendo do servo que esteja trabalhando, será necessário utilizar uma fonte externa para alimentação, o círculo vermelho indica onde deverá ser inserido. No meu caso usei uma bateria.
Bom, a ideia é que o servo se mova para a direita ou para a esquerda, usando a porta serial como parâmetro de entrada. Para fazer o controle do servo utilizaremos um biblioteca nativa do arduino chamada Servo.
OBS.: Para quem não sabe, o servo possui 180º de movimento(0 até 179 = 180 posições). Portanto usaremos uma variável chamada pos para fazer esse controle. Utilizaremos também uma outra chamada graus, que será o nosso incremento de posição.
Nesse caso a variável pos possui valor inicial 90 e a varável graus possui valor 10. Com isso teremos para a varável pos um valor mínimo de 0 e máximo de 170. Caso queira ter uma melhor precisão, basta diminuir o valor de graus.
Segue o código:
/*
** Servo **
José Maria DVD
*/
#include <Servo.h>
Servo servo1;
//variavel de posicao do servo, inicialmente com 90(meio), já que o servo varia entre 0-179 graus
int pos = 90;
int graus = 10;
char lado;
void setup()
{
servo1.attach(9); // Porta de dados do servo
Serial.begin(9600); // inicializa porta serial
}
void loop(){
lado = Serial.read();
//verifica a letra e se chegou ao valor máximp da posição, senão incrementa x graus
if (lado == 'l' && pos < (180-graus) ){
pos += graus;
}
//verifica a letra e se chegou ao mínimo da posição, senão diminiu x graus
else if (lado == 'r' && pos >= graus){
pos -= graus;
}
lado = 'n';
//muda de posicao
servo1.write(pos);
//delay de 350ms;
delay(350);
}
Em seguida salve e digite Ctrl + U ...
Trabalho Final:
Um vídeo para melhor visualização:
Até a próxima.
Nenhum comentário:
Postar um comentário