Vamos ligar um servo motor ao Arduino. Depois vamos ligar um segundo servo e com isto fazer uma simulação de movimento (como se fosse um nadador ou uma pessoa se arrastando no chão).
O que é um servo motor?
Os servo motores são um conjunto de motores, engrenagens e sistemas de controle que permitem que você movimente o motor para uma posição fixa, geralmente indicada por ângulos com 45º, 90º, 180º, etc.
Como usamos um servo motor?
Precisamos fazer duas coisas: a conexão elétrica e o código. Para a conexão elétrica você vai precisar de três jumpers (fios) macho-macho. As cores dos fios não são importantes, mas preste atenção à ligação do servo motor: no servo motor o fio marrom (ou preto em alguns) é a ligação para a conexão GND do Arduino; o fio vermelho é a conexão para ligação com +5V ou VCC (depende da marcação na placa); e o fio laranja (amarelo em alguns servos) é para a ligação do sinal de controle. No exemplo de ligação que segue o sinal de controle foi ligado ao pino 9 do Arduino. Você pode escolher outro pino, mas neste caso ajuste o código.

Código para uso do servo motor:
#include <Servo.h>
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
servo.write(90);
delay(500);
servo.write(0);
delay(500);
}
No inÃcio do código foi incluÃda (#include) uma biblioteca de códigos (<Servo.h>). Isto é necessário para que o Arduino consiga controlar de forma simples o servo motor. Na sequência, para usarmos a biblioteca, foi declarado um objeto chamado ‘servo’ (Servo em maiúsculo é a classe da biblioteca; servo em minúsculo o objeto que nós criamos – poderia seu outro nome qualquer, tal como meumotorzinho).
No código apresentado acima foi escolhida a conexão do servo com o pino ‘9’ no Arduino (se você usou outro pino, ajuste o código). A indicação da conexão é realizada por meio do método ‘attach‘, e entre parênteses indicamos o pino de conexão fÃsica.
Depois, na função de repetição (loop), realizamos o controle da posição do servo. No exemplo temos o uso do comando ‘write‘ para escrever o ângulo para o qual queremos que o servo motor seja movimentado. No exemplo, o servo é movido para 90º, ocorre uma espera de 0,5 segundo, por meio do comando delay(500), depois ele é movimentado para 0º e ocorre outra espera de 0,5 segundo antes de o conjunto de comandos ser repeito.
Os servos mais comuns em kits de Arduino giram 180º (meio cÃrculo). Existem servos capazes de executar 360º (uma volta completa).
E se seu quiser ligar mais um servo motor?
Basicamente, basta realizar a ligação elétrica e acertar o código. Mas, devemos ter em mente que os servo motores consomem uma corrente considerável em relação ao que o Arduino pode fornecer. Você pode ligar dois ou mais servo motores mas tenha em mente que se forem acionados em sequência muito rápida ou eventualmente tiverem algum acionamento simultâneo o fornecimento de energia pode não dar conta da necessidade. A ligação fÃsica poderia ser assim (em função da necessidade de ligação do VCC no segundo servo motor, foi utilizado, no meu caso, um jumper macho-fêmea e utilizado um dos pinos da interface ICSP para fornecimento de energia – há placas que não possuem esta interface, algumas possuem duas, algumas possuem duas ligações de 5V na área ‘POWER‘ da placa. Verifique sua plaquinha e faça os ajustes):

Código para uso com dois servo motores
#include <Servo.h>
Servo servo1, servo2;
void setup() {
servo1.attach(9);
servo2.attach(11);
}
void loop() {
servo1.write(90);
delay(15);
servo2.write(0);
delay(500);
servo1.write(0);
delay(15);
servo2.write(90);
delay(500);
}
Note que o nome do objeto (que era servo) foi modificado para ‘servo1‘, para podermos ter também um ‘servo2‘ e ficar mais fácil de identificá-los (lembrando que são somente nomes de objetos, você poderia chamá-los de servoEsquerdo e servoDireito, por exemplo). O comando ‘delay(15)’ entre a escrita de ângulos de um servo e outro foi incluÃdo para possibilitar um pequeno ‘fôlego‘ para o fornecimento de energia.
Conecte os dois servos juntos (fita adesiva, cola quente, …) e crie uma simulação de um nadador ou de alguém se arrastando. Ajuste a posição dos ‘braços’, o tempo do ‘delay‘ e os ângulos dos servos de forma que sua montagem ‘ande’ pela mesa.
SE você tiver disponÃveis, pode utilizar capacitores eletrolÃticos próximos aos servo motores para melhora o fornecimento de energia (por exemplo capacitores identificados como 100uF x 16V, 220uF x 25V…). Fica assim (use um capacitor para cada servo):
