Controle de Posição do Micro Servo Motor 180°

APLICAÇÃO E FUNCIONAMENTO – O Micro Servo Motor SG90 é um motor muito utilizado por profissionais e projetistas que trabalham com o desenvolvimento de projetos robóticos através de sistemas...

APLICAÇÃO E FUNCIONAMENTO

– O Micro Servo Motor SG90 é um motor muito utilizado por profissionais e projetistas que trabalham com o desenvolvimento de projetos robóticos através de sistemas microcontroladores como, por exemplo, Arduino, PIC e AVR. Utilizado em diversos outros projetos, faz-se ideal devido ao seu preciso controle de movimentos.

servo-usinainfo

 

– Diferencia-se dos demais modelos de servo motores devido ao seu tamanho reduzido e sua fácil adaptação nos mais diversificados projetos, podendo ser conectado diretamente ao Arduino para controlar a posição do mesmo de forma precisa e regulável ou com algum componente que faça o controle de sua posição, por exemplo, um potenciômetro, trimpot ou botão.

– Devido as suas características, o Micro Servo Motor SG90 é bastante utilizado para controlar a posição de objetos, como pernas, braços ou mãos de robôs, movendo sensores com alta precisão e mobilidade, como por exemplo, o Braço Robótico em MDF.

– A maior parte dos servos vem com o sequencial de cores marrom, vermelho e amarelo, porém pode ser encontrado nas cores preto, vermelho e branco no qual podemos classificar cada cor da seguinte maneira:

  •  Marrom ou preto: GND;
  •  Vermelho: 5VCC;
  • Amarelo ou branco: Sinal Digital (PWM).

 

TESTE PRÁTICO

PROJETO 1

– Neste primeiro projeto vamos utilizar um código exemplo para realizar a movimentação do servo motor através de comandos diretos do microcontrolador Arduino, no qual o servo irá partir do ângulo 0 até o ângulo 180 e após, irá espera 2 segundos e voltar para o ângulo 0.

PRODUTOS UTILIZADOS NO TESTE:

– 1 Arduino UNO;

– 1 Micro Servo Motor SG90;

– 3 Jumpers Macho x Macho.

 

MONTAGEM FÍSICA (HARDWARE)

– Para fazer a ligação correspondente basta observar com atenção o esquema abaixo e reproduzir em seu projeto a pinagem utilizada.

montagem-fisica-hardware

 

FUNCIONAMENTO DO PROGRAMA (SOFTWARE)

// Código exemplo para teste de Micro Servo Motor SG90
// Movimento do servo através de comandos especificados</pre>

#include <Servo.h> // Inclui a Biblioteca Servo.h

Servo meuservo; // Cria o objeto servo para programação
int angulo = 0; // Ajusta o ângulo inicial do Servo

void setup() {
meuservo.attach(9); // Declara o pino do servo
}

void loop() {
for (angulo = 0; angulo < 180; angulo += 1) { // Comando que muda a posição do servo de 0 para 180° 
meuservo.write(angulo); // Comando para angulo específico 
delay(15); 
} 

delay(2000); // Tempo de espera para próximo movimento 
for (angulo = 180; angulo >= 1; angulo -= 5) { // Comando que muda a posição do servo de 180 para 0°
meuservo.write(angulo); // Comando para angulo específico
delay(5);
}

delay(2000); // Tempo de espera para próximo movimento
}

PROJETO 2

– Neste segundo projeto vamos utilizar um código exemplo para realizar a movimentação do servo motor através de um potenciômetro.

PRODUTOS UTILIZADOS NO TESTE:

– 1 Arduino UNO;

– 1 Micro Servo Motor SG90;

– 3 Jumpers Macho x Macho;

– 1 Potenciômetro.

 

MONTAGEM FÍSICA (HARDWARE)

– Para fazer a ligação correspondente basta observar com atenção o esquema abaixo e reproduzir em seu projeto a pinagem utilizada.

 

montagem-fisica

 

FUNCIONAMENTO DO PROGRAMA (SOFTWARE)

// Código exemplo para teste de Micro Servo Motor SG90
// Movimento do servo através de potenciômetro

#include <Servo.h> // Inclui a Biblioteca Servo.h

Servo meuservo; // Inicializa o servo no modo de teste
int angulo = 0; // Ajusta o ângulo inicial do Servo
int potencio = A0; // Inicializa o pino analógico para o potenciômetro

void setup() {
 meuservo.attach(9); // Define que o Servo está conectado a Porta 9
}

void loop() {
 angulo = analogRead(potencio); // Faz a leitura do valor do potenciômetro
 angulo = map(angulo, 0, 1023, 0, 179); // Associa o valor do potenciômetro ao valor do ângulo
 meuservo.write(angulo); // Comando para posicionar o servo no ângulo especificado
 delay(5);
}

CONCLUSÃO

– O Micro Servo Motor é um produto de grande funcionalidade que pode ser aplicado nos mais diversificados projetos, no entanto, quando utilizado junto com potenciômetros deve-se ter mais atenção e evitar movimentos bruscos devido à “delay” de comunicação, o que pode acarretar na falha dos movimentos do servo.

Categorias
Arduino

Mecânico de Manutenção com Experiência em Sistemas Embarcados, Automação e Desenvolvimento de Projetos; Graduando dos Cursos de Matemática - URI e Física - UFFS.
8 Número de Comentários
  • BRAÇO ROBÓTICO PARA ARDUINO – Blog – Usinainfo – Ferramentas e Eletrônica
    15 julho 2016 at 19:43
    Enviar Resposta

    […] Projetos CONTROLE DE POSIÇÃO DO MICRO SERVO MOTOR 180° […]

  • Raul Higuchi
    8 dezembro 2017 at 22:40
    Enviar Resposta

    Parabéns pelas dicas e aulas. Não sei como fazer o servo motor girar 200 graus, e não apenas 180 (na verdade, nem 180 ele gira). Pode me dar uma dica?

    • Equipe Usinainfo
      13 dezembro 2017 at 11:24
      Enviar Resposta

      Bom dia Raul!
      Neste caso, vale verificar as especificações do referente produto já que o referente servo motor utilizado no projeto gira somente até um ângulo máximo de 180°, para girar 200° teria que ser utilizado um servo de 360°.
      Att Equipe UsinaInfo

  • Renato dos Santos
    21 janeiro 2018 at 16:42
    Enviar Resposta

    Ola boa tarde, assisti esse seu vídeo, realmente é um projeto bem interessante, gostaria de saber se é possível fazer o mesmo projeto com ATtiny85.

    • Equipe Usinainfo
      24 janeiro 2018 at 18:21
      Enviar Resposta

      É possível sim realizar o controle do servo motor através do ATtiny85, apenas será necessária as devidas adaptações para o projeto que irá desenvolver.

  • Vitor coelho
    4 junho 2018 at 17:44
    Enviar Resposta

    Boa tarde tudo bem? Estou tentando fazer um projeto com voice recognition v3 que possibilite o servo girar a 0º e depois a 180º por comando de voz, como se fosse abrir e fechar algo. Porém não estou conseguindo encaixar o código do servo no módulo de voz. Consigo gravar os comando certos para por exemplo apagar e acender leds, mas quando coloco o código do servo não da certo. Vcs teriam algo para me dar uma luz? Um código talvez. Se puder me ajudar fico agradecido

    • Equipe Usinainfo
      31 julho 2018 at 14:43
      Enviar Resposta

      Bom dia Vitor! Você acrescentou todas as variáveis correspondentes ao servo e a biblioteca Servo através do arquivo Servo.h no seu código?

  • Victor
    10 outubro 2018 at 18:01
    Enviar Resposta

    e se eu precisar acionar com um botão pra ir e pra voltar, em vez de ficar indo e voltando sozinho

    • Equipe Usinainfo
      23 novembro 2018 at 12:27
      Enviar Resposta

      Olá Victor!
      É totalmente possível, só precisará adicionar um sistema de acionamento via button em vez de trabalhar apenas com delay.

    Enviar Resposta

    *

    *

    Sobre nós

    Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

    Sugestões

    Artigos Relacionados