O servo motor SG90 é um atuador que pode ser controlado em um ângulo específico através do sinal PWM do arduino. Contém um motor DC no interior de seu acoplamento, o qual trabalha em conjunto com um jogo de engrenagens de redução, fazendo com que sua velocidade seja reduzida e seu torque seja aumentado consideravelmente.
O servo motor SG90 não gira livremente, apenas em ângulos e posições específicas. Este modelo pode girar aproximadamente 180º (90º em cada direção). Isso é possível graças a um circuito controlador e um potenciômetro presentes em seu interior. Dessa forma, o micro servo mostra-se ideal para dar movimento aos mecanismos de robôs e máquinas.
Existem servos de tamanhos, modelos, ângulos de rotação e torques diferentes. Alguns com engrenagens de plástico, outros de metal, tornando o servo mais resistente e robusto. Todos possuem três fios de interface, sendo um deles para sinal de controle, e dois deles para alimentação.
// biblioteca inclusa na IDE #include <Servo.h> //inclusão da biblioteca Servo.h const int pinoServo = 6; //pino digital utilizado pelo servo motor Servo s; //objeto do tipo servo int pos; //variável para receber o valor da posição do servo void setup (){ s.attach(pinoServo); //associação do pino digital ao objeto do tipo servo s.write(0); //o motor inicia em 0º } void loop(){ for(pos = 0; pos < 180; pos++){ //para "pos" igual a 0, e enquanto "pos" menor que 180, aumenta 1 em "pos" s.write(pos); //escreve o valor da posição que o servo deve girar delay(15); //pausa de 15 milissegundos } delay(1000); //intervalo de 1 segundo for(pos = 180; pos >= 0; pos--){ //para "pos" igual a 180, enquanto "pos" maior ou igual que 0, diminui 1 em "pos" s.write(pos); //escreve o valor da posição que o servo gira delay(15); //pausa de 15 milissegundos } }