13 de agosto de 2013

CONTROLANDO SERVOMOTOR COM POTENCIÔMETRO

     
servomotor
Nesse post estarei ensinando como realizar o giro do servomotor através da utilização de um potenciômetro.
     Os servomotores são componentes de grande importância na robótica, pois através deles são feitas as movimentações de braços, pernas, rodas, cabeça de robôs, entre outras possíveis utilizações.
     O servomotor utilizado como exemplo é o Mini Servo 9g que necessita de tensão entre 4.8V a 6V.
     Deve-se verificar a tensão de cada servomotor, já que pode ocorrer problemas caso funcione abaixo ou acima dessa voltagem e acabar queimando.



     Para este projeto serão utilizados itens abaixo:

          – Arduino Uno REV3;
          – 1 servomotor 9g;
          – 1 potenciômetro de 50k ohms;
          – 1 protoboard de contatos;
          – Fios de jumper;
          – Fritizing para modelagem.

     O servo motor possui 3 fios, sendo eles:

          – Vermelho: 5 Volts(5V+);
          – Preto ou Marrom: Terra (GND);
          – Laranja ou branco: Comunicação.

     A ligação dos componentes pode ser feita conforme a figura 01.


Figura 01  Ligação do servomotor com Arduino na protoboard

     Para realizar a movimentação dos servomotores, precisamos construir o código e fazer o mapeamento das portas e definir a ação a ser executada.
Para isso deve ser feito o download da IDE do Arduino que está disponível no endereço: http://arduino.cc/en/Main/Software.
     Feito isso, escreveremos o código:


// TUTORIAL - SERVOMOTOR CONTROLADO COM ARDUINO
// ARDUINO PARANÁ www.arduinoparana.com
//---------------------------------------------------------------

//incluir a biblioteca para trabalhar com o servomotor
#include <Servo.h>

//objeto servo criado a partir da classe Servo
Servo servo_1;

void setup()
{
  //definindo que o servomotor será associado a porta digital 8
   servo_1.attach(8);
}

void loop()
{
   //mapeando o  valor do  potenciômetro de 0  a 1023 bits
   //e de 0º a 180º na porta analógica 0 
   servo_1.write(map(analogRead(0), 0, 1023, 0, 179));

   //tempo de resposta para o servo alcançar a posição definida 
   delay(5);

}
     Existem várias maneiras de se fazer essa comunicação, esta apresentada pode ser utilizada quando necessita de mais de um servo sem definir uma variável para cada servomotor, é só acrescentar no código uma nova porta analógica e outra digital e fazer a ligação utilizando outro potenciômetro ou ainda pode ser utilizada a mesma entrada caso se deseje movimentar os servos ao mesmo tempo.
     Lembrando que deve-se verificar se a tensão está entre 4.8V a 6V.


     O vídeo do funcionamento do servomotor com o potenciômetro pode ser visualizado logo abaixo:








Nenhum comentário :

Postar um comentário