Para projetos de robótica e mecatrônica
Na robótica, o servo motor é responsável por movimentar braços, pernas e mãos dos robôs. No automodelismo o servo motor é utilizado para virar as rodas dianteiras dos carrinhos e no aeromodelismo é utilizado para controlar os flaps das asas dos aviões.
Ao utilizar o Micro Servo Motor SG90 9g é possível controlar o giro e a posição do mesmo através dos comandos enviados pela plataforma microcontrolada. Após o envio do comando para que o servo altere sua posição, o mesmo verifica sua posição atual e em seguida executa o comando girando até a posição indicada.
Especificações:
O seguinte firmware girar o eixo do servo até 180° e em seguida retornar à 0°. Ao ligar o servo, o eixo irá retornar à 0° independente da posição em que ele se encontra.
Para o controle da posição do servo, é necessario instalar a biblioteca Servo.h a partir do Gerenciador de Bibliotecas do Arduino IDE. Ferramentas>Gerenciar Bibliotecas… ou por meio do atalho Ctrl+Shift+I. Em seguida, busque por Servo e clique em instalar.
#include <Servo.h> //INCLUSÃO DA BIBLIOTECA NECESSÁRIA const int pinoServo = 10; //PINO DIGITAL UTILIZADO PELO SERVO Servo s; //OBJETO DO TIPO SERVO int pos; //POSIÇÃO DO SERVO void setup (){ s.attach(pinoServo); //ASSOCIAÇÃO DO PINO DIGITAL AO OBJETO DO TIPO SERVO s.write(0); //INICIA O MOTOR NA POSIÇÃO 0º } void loop(){ for(pos = 0; pos < 120; pos++){ //PARA "pos" IGUAL A 0, ENQUANTO "pos" MENOR QUE 120, INCREMENTA "pos" s.write(pos); //ESCREVE O VALOR DA POSIÇÃO QUE O SERVO DEVE GIRAR delay(15); //INTERVALO DE 15 MILISSEGUNDOS } delay(1000); //INTERVALO DE 1 SEGUNDO for(pos = 120; pos >= 0; pos--){ //PARA "pos" IGUAL A 120, ENQUANTO "pos" MAIOR OU IGUAL QUE 0, DECREMENTA "pos" s.write(pos); //ESCREVE O VALOR DA POSIÇÃO QUE O SERVO DEVE GIRAR delay(15); //INTERVALO DE 15 MILISSEGUNDOS } }