Os servomotores, diferentemente dos motores CC comuns, possuem uma entrada extra para controlar sua rotação. Eles recebem um ângulo e se movimentam para ficar de acordo com a informação recebida. O Arduino já possui uma biblioteca própria para trabalhar com servomotores, a Servo.h
. Nesse tutorial, faremos uma breve introdução a ela.
Pinagem
No plug do fio marrom, ligaremos no GND da Arduino, no do fio vermelho, ligaremos no 5V
do Arduino e, por último, ligaremos o laranja em algum dos pinos digitais. No caso, ligamos no pino digital 3
do Arduino
Após as ligações, a placa ficará parecida com a figura abaixo:
Código
Código usado para mexer no servomotor:
#include "Servo.h" Servo motor; void setup () { Serial.begin(9600); motor.attach(3); } void loop () { motor.write(Serial.parseInt()); delay(1000); motor.write(90); delay(1000); }
O método attach
do Servo é usado para indicar qual entrada do Arduino será usada. já o método write
indica para qual ângulo ele deve se deslocar. No primeiro write
, pegamos o deslocamento pela entrada padrão. Note que, se nada for digitado, ele se deslocará para a posição 0
e depois para a posição 90
. Note também que o write
não indica quantos graus ele deve se deslocar e sim para qual grau ele deve ir. Isto é, se você usa write(90)
e depois write(90)
ele irá se mover uma vez e depois ficará parado, pois já está na posição 90
. Além disso, há um grau máximo que o servomotor pode atingir, que varia de servomotor para servomotor e, caso um write
seja dado com um grau superior ao máximo, ele se irá somente até esse grau máximo.
A documentação da biblioteca Servo, junto com exemplos de uso das funções, está disponível em http://arduino.cc/en/reference/servo. Para outros exemplos também pode ser consultado no livro Arduino Cookbook da O’Reilly.