Potenciômetro Controlando Servo Motor 59

Potenciômetro Controlando Servo Motor Iremos apresentar um projeto que utiliza um simples potenciômetro para controlar a rotação de um Servo Motor. Como sempre este produto pode ser encontrado em nossa loja MakerHero e o modelo utilizado foi o Servo TowerPro SG-5010 que possui vários acessórios como pode ser visto abaixo.:

Conjunto Servo Tower Pro

A montagem do circuito é muito simples e foi feita com o Arduino Uno, contudo pode ser feita com outros da Família Arduino.

O Servo possui 3 fios em sua estrutura sendo que o vermelho irá na alimentação +5v, o preto ou marrom irá no GND e o amarelo ou branco será conectado ao Pino Digital 5 do Arduino. No Servo TowerPro SG-5010 utilizado a coloração dos fios é vermelha, marrom e amarela mas listamos as outras caso seja implementado com outro Servo.

O potenciômetro tem os seus pinos de saída conectados ao GND e +5v, sendo que o pino central estará no Pino Analógico 0 (zero) do Arduino. A resistência pode ser escolhida conforme a preferência e neste projeto foi utilizado um de 4.7k ohm.

Vale ressaltar que este projeto dirige-se a pequenos e médios servos que não necessitam de sua própria fonte de alimentação e consomem pouca corrente.

Código.:

//Programa: Controle de Servo Motor com Potenciometro
//Autor: MakerHero

//Carrega a biblioteca Servo
#include "Servo.h"

// Criar um Objeto Servo
Servo servo1; 

void setup()
{
  // Anexa o Servo ao Pin5
  servo1.attach(5); 
}

void loop()
{
  // Lê o valor do Potenciometro
  int angle = analogRead(0); 
  // Mapeia o valor de 0 a 180 graus
  angle=map(angle, 0, 1023, 0, 180);
  // Repassa o angulo ao ServoWrite
  servo1.write(angle); 
  // Delay de 15ms para o Servo alcançar a posição
  delay(15);
}

Após carregar este programa em seu Arduino e rodá-lo varie o potenciômetro e verá que o Servo variará também o ângulo.

É possível também ler o ângulo do Servo através do comando read() e caso precise usar o pino que o servo está conectado para outra coisa basta usar o comando detach().

 Gostou? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

59 Comentários

  1. Qual é a fonte de energia

    1. Olá Nikolau,

      Você pode alimentar o Arduino utilizando o cabo USB que geralmente acompanha o mesmo. Ou você pode utilizar uma fonte própria para Arduino (9V / 1A).

      Abraço!
      Rosana – Equipe MakerHero

  2. Olá como adicionar 10 servos sendo controlados ao mesmo tempo com o mesmo potenciometro

    1. Marco,

      Dê uma olhada no link: https://www.makerhero.com/blog/como-usar-modulo-pwm-servo-16-canais/
      Pode te dar uma luz 🙂

      Abraços!
      Diogo – Equipe MakerHero

  3. olá, eu gostaria de saber se esta programação funciona com o arduino mega? Se não ,qual programação eu posso usar?

    1. Olá, Leonardo,
      Funciona sim!

      Abraços!
      Diogo – Equipe MakerHero

  4. ADILSON BOA TARDE
    ESTOU QUERENDO USAR VARIOS SERVOS NO MESMO ARDUINO ,ISSO E POSSIVEL

    1. Olá, Junior,

      É possível sim, dê uma olhada no artigo abaixo e veja as possibilidades!
      https://www.makerhero.com/blog/como-usar-modulo-pwm-servo-16-canais/

      Abraços!
      Diogo – Equipe MakerHero

  5. É possível registrar uma resistência externa imposta contra o movimento?

    1. Olá Gisely!

      Acredito que se você medir a corrente que vai para o servo, você consegue.

      Abraços!

      André – Equipe MakerHero

  6. Ola,eu tentei coloca em pratica a montagem desse circuito, mas o meu servo fica tremendo.

    Eu gostaria de saber como poderia resolver esse problema.

     

    1. Olá Israel!

      Por um acaso é um servo de alto torque? Você já experimentou outras bibliotecas?

      Abraços!

      André – Equipe MakerHero

  7. Paraben Adilson
    copiei seu programa e funcionou OK.

  8. Olá, boa tarde

    Nossa, o tópico é bem antigo, talvez ninguém nem leia minha pergunta mas vai lá asism mesmo. O comando servo.write(angulo) vc deve colocar um valor de 0 a 180 né, mas esta é a máxima precisão que estes servos aceitam? Tipo, não consigo uma precisão melhor como um micro passo por exemplo?

  9. Uma pergunta boba ( para quem é leigo como eu):
    Da pra controlar dois servos?
    Minha ideia seria aproveitar para aeromodelismo o arduino promini e modulo NRF24L01. é possivel?

  10. Boa tarde Adilson,blz? tem algum projeto como controlar um servomotor com potenciômetro no microcontrolador ATtiny85?

  11. Muito obrigado por compartilha seus conhecimentos!!

  12. Olá eu quero montar um velocímetro com um servo ou motor de passo mas n estou achando nada na internet e sou leio em programação, o ponteiro do velocímetro seria controlado pelo servo e o sensor hall na roda ou carda mandaria pulsos para o arduino e ele converteria em ângulo no motor.
    Tem como me ajudar? Obrigado.

  13. Olá, gostaria de saber se com esses motores eu conseguiria montar meu robô segue-linha, se a rotação dele é boa para o torneio OBR.

  14. Oi amigo, sou leigo nesse assunto mas com esse potenciometro e esse servo consigo controlar a aceleração de um motor a combustão

  15. ola eu sou um pouco nova no setor de arduino mas nesse esquema como ficaria a fonte de alimentação do arduino? tem que ser pelo plug ou pode ser alimentado a pilhas? se sim como? se possivel entra em contato comigo atraves do e-mail.

    obrigada pela compreensão

  16. Olá, eu gostaria de usar 6 servos Tower Pro SG-5010 em meu projeto escolar, você saberia me dizer quantas pontes H eu preciso para controlar todos eles?

    1. Boa tarde Suellen,

      Qual placa você vai usar para controlar esses servo motores ?

      Abraço!

      Adilson – Equipe MakerHero

  17. Olá. Tem como incrementar este projeto e acrescentar um transmissor 433? Preciso controlar um flap a distância em um projeto educacional.

  18. Ola felipe, gostaria de saber se tem como controlar o angulo de um servo de 360 graus? estou a dias procurando e nao acho nada

  19. Olá pessoal da Filipe Flop,
    tenho um servo de 360° mas quero q ele gire apenas 180°, é possível? O servo é um SM-S4306R, e quando o adquiri não observei se era 180° ou 360°.
    Aguardo, grato…

  20. Olá, estou com um projeto onde usaremos o servo motor para movimentarmos o pescoço de um robo, mas não achei nada sobre diminuir a rotação e velocidade, para ele olhar pra um lado e depois pro outro ao invez de girar a cabeça. Gostaria de saber se isso é possivel. Queremos acionar tudo isso por controle remoto.

    1. PS: SM-S4306R que eu tenho

    2. Boa noite Guilherme,

      Tente esta biblioteca: https://github.com/netlabtoolkit/VarSpeedServo

      Abraço.

      Adilson – Equipe MakerHero

  21. olá Felipe, estou projetando um robozinho e gostaria de usar servos para movimentar as rodas, este servo de 360 graus pode ser movimentado para os 2 lados? no caso tanto para fazer ele ir para frente quanto para trás?

    1. Boa noite Marcos,

      Sim, ele pode ser movimentado nas duas direções.

      Abraço.

      Adilson – Equipe MakerHero

  22. como fica o programa para mais servos usando um joysticks no lugar dos potenciometro ???

    1. Bom dia Edimilson,

      Dê uma olhada nesse artigo. Tem o que você precisa :

      https://www.makerhero.com/motores-e-servos/controlando-micro-servo-9g-usando-joystic/

      Abraço.

      Adilson – Equipe MakerHero

  23. Eu posso alimentar o Arduino pela usb para acionar o servo ou preciso de uma alimentação externa ?
    Obrigado

    1. Boa noite Daniel,

      Para circuitos simples utilizando os servos 5v específicos para Arduino, você pode utilizar a alimentação da própria placa.

      Abraço.

      Adilson – Equipe MakerHero

      1. Muito obrigado Adilson
        Abraço

  24. Comprei um Arduino Uno e gostaria de saber como consequir o programa para programar o mesmo.
    e o Book não veio junto aos componentes enviado.
    O memso foi comprado ai com os senhores em nome do sr. Carlos Jansen Campos notoa fiscal numero:
    009204

  25. Olá Filipe, gostaria de saber se é possível utilizar um motor de passo (28BYJ-48), no lugar do motor de servo?
    E como faria isso.
    Obrigado

    1. Boa noite Paulo,

      É possível sim, mas mudaria um pouco a programação, pois o motor de passo utiliza outra biblioteca.

      Grato.

      Adilson – Equipe MakerHero

      1. Poderia-me ajudar com isso?

  26. Gostaria de saber como utilizo o comando read( ), quero mandar o servo para determinada posição e ler essa posição, estou desenvolvendo um robô e preciso levar o servo manualmente e “ler” seu angulo para fazer a rotina automática depois em cima desses ângulos. obrigado.

  27. Sobre o comando read( ) para ler o angulo do servo, como faço pra utilizar este comando ? gostaria de mandar o servo para posição e ler esta posição em tempo real. obrigado

  28. Comprei o servo motor utilizado neste projeto e gostaria de saber como realiza-lo utilizando um microcontrolador HC908QY4 no lugar do arduino, principalmente a programação, em C ou Assembly. Preciso conclui-lo para a faculdade. Se puder me ajudar com algumas dicas. Obrigado

    1. Olá Fabiano, infelizmente nesta questão não podemos te ajudar pois o nosso foco está em Arduinos. Boa sorte com teu projeto!

  29. Comprei o servo motor utilizado neste projeto e gostaria de saber como realiza-lo utilizando um microcontrolador HC908QY4 no lugar do arduino, principalmente a programação, em C ou Assembly. Preciso conclui-lo para a faculdade. Se puder me ajudar com algumas dicas. Obrigado

    1. Olá Fabiano, infelizmente nesta questão não podemos te ajudar pois o nosso foco está em Arduinos. Boa sorte com teu projeto!

  30. Eu gostaria de saber como controlar a rotação do Servo Motor na Linguagem C usando o PIC16f628A.
    Abraço!

    1. Olá Alisson. Não temos nenhum programa com PIC, sinto muito. Se após concluído o seu projeto com o PIC desejar compartilhar entre em contato conosco, ficaremos felizes em divulgá-lo.
      Abraço!

      1. Tá bom cara! Estou trabalhando duro pra conseguir controlá-lo, então quando eu conseguir postarei com muito prazer!
        Abraço!
        Deus te abençoe!

  31. Eu gostaria de saber como controlar a rotação do Servo Motor na Linguagem C usando o PIC16f628A.
    Abraço!

    1. Olá Alisson. Não temos nenhum programa com PIC, sinto muito. Se após concluído o seu projeto com o PIC desejar compartilhar entre em contato conosco, ficaremos felizes em divulgá-lo.
      Abraço!

      1. Tá bom cara! Estou trabalhando duro pra conseguir controlá-lo, então quando eu conseguir postarei com muito prazer!
        Abraço!
        Deus te abençoe!

  32. gostaria de saber, se é possível fazer uma alimentação própria para o servo motor. Muito obrigado

    1. Olá Igor. Não entendemos muito bem o seu problema. Poderias me explicar melhor?
      Grato!

  33. gostaria de saber qual seria o codigo para adicionar mais servos e potenciometros ou seja 3 potenciometros e 3 servos agradeço

    1. Basta criar mais servos como objeto e anexá-los a outros pinos e colocar os outros potenciometros em outras portas analógicas, seguindo o código proposto.

      1. existe um exemplo para você passa sobre isso amigo? eu sou leigo..

Trackbacks and Pingbacks