Arduino com servo - Parte 6

O ano está acabando e essa será a última postagem de 2010, a próxima só em 2011 pessoal, hoje venho postar um exemplo de utilização do arduino com um servo de posição (180º), resolvi postar aqui para o pessoal um exemplo, neste caso usaremos a biblioteca SoftwareServo.h, mas você também pode criar usando apenas a biblioteca Servo.h.
Vamos precisar de:
- 1 servo motor de posição;
- 1 arduino com o código já na memória (o meu está rodando em modo standalone);
- 1 potenciômetro;
- fios para conexão;
- protoboard;
Primeiramente coloque o potenciômetro na protoboard, repare que ele possui 3 pinos, o pino da esquerda você liga no negativo (fio preto nas imagens), o a direita você liga no positivo (fio vermelho), e o pino central você liga em uma das entradas analógicas do arduino (fio verde).
O servo, no meu caso segue o padrão Futaba, então o preto é o negativo, o vermelho o positivo e o branco é o sinal nesse caso ligado a uma das saídas digitais do arduino.
Nas imagens a baixo você pode ver a montagem do circuito, nesta primeira imagem podemos ver o circuito completo, o servo e o potenciômetro conectados ao arduino em modo Standalone bem como a bateria para alimentação do circuito.
 
 Nas imagens a baixo temos a foto apenas do Arduino em modo standalone e os fios conectados à ele.
 
Como código para funcionar, vamos utilizar este:

#include <SoftwareServo.h>
SoftwareServo myservo;  // cria o objeto servo para controlar um servo
int potpin = 0;  // pino analógico utilizado para conectar o potenciômetro
int val;    // variavel para ler o valor do pino analógico
void setup()
{
  myservo.attach(5);  // atribui o servo no pino 5 para o objeto servo
}

void loop()
{
  val = analogRead(potpin); // lê o valor do potenciômetro (valor entre 0 e 1023)
  val = map(val, 0, 1023, 0, 179); // escala os valores para serem usado com o servo (valores entre 0 e 180)
  myservo.write(val); // seta a posição do servo de acordo com o valor da escala
  delay(15); //aguarda o servo chegar a posição
  SoftwareServo::refresh();
}

Copie o código para o programa do arduino, compile e faça o upload para a placa. O resultado você pode ver no vídeo a baixo, onde a linha preta no potenciômetro indica posição na qual o servo fica na metade de seu curso de 180º.
O LED vermelho indica que a placa está ligada, e o LED verde que pisca é o do pino 13 do arduino.
É isso pessoal, até a próxima, um feliz 2011 para todos.

Fonte:
- usando biblioteca Softwareservo.h;
- usando biblioteca Servo.h;

0 comentários: