Alterando servo TowerPro SG-5010 para rotação infinita 13

A limitação de rotação do servo TowerPro SG-5010 faz com que os movimentos executados pelo servo possam atingir no máximo 180º.

Servo TowerPro SG-5010

Entretanto, com algumas  alterações, podemos aproveitar seu bom torque (11 Kg/cm, à 6 volts) e retirar essa limitação, aproveitando todo o potencial do motor.

Para essa alteração, teremos que retirar o potenciômetro interno do servo, substituindo-o por 2 resistores, e efetuar uma pequena alteração em uma das engrenagens.

Material utilizado :

  • Servo TowerPro SG-5010
  • Chave philips pequena
  • Chave de fenda
  • Ferro de solda, sugador de solda, solda
  • 2 resistores de 2,2 K ohms

Passo 1 – Usar a chave philips para retirar os parafusos na parte inferior do motor e remover a tampa, expondo a placa de controle :

Passo 1 - Remoção da tampa inferior

Passo 2 – Com cuidado, retirar a tampa superior, onde estão localizada as engrenagens. Sugerimos tirar uma foto das engrenagens antes de desmontar. Isso vai ajudar na hora de montar novamente o motor :

Passo 2 - Engrenagens

Passo 3 – Retire cuidadosamente as engrenagens. Atenção ! Não remova a graxa branca usada para lubrificação  :

Passo 3 - Engrenagens removidas

Passo 4 – Use o ferro de solda e o sugador para retirar a solda dos pontos indicados na imagem abaixo. Com isso, iremos remover o potenciômetro da placa. Isso deve ser feito ANTES de se retirar a placa de controle. E por que antes ? Explicaremos no próximo passo :

Passo 4 - Retirada solda potenciometro

Passo 5 – Com a solda do potenciometro removida, retire a placa de controle com o auxílio de uma chave de fenda. Repare que o potenciometro está fixado à carcaça por um pequeno parafuso, por este motivo tivemos que retirar a solda antes de remover a placa. Solte o parafuso e remova o potenciômetro:

Passo 5 - Potenciometro removido

Passo 6 – Pegue os 2 resistores de 2,2 K, enrole os terminais e forme um pequeno “M”. Faça um ponto de solda nos terminais que foram enrolados. Depois, corte as extremidades dos terminais :

Passo 6 - Resistores

Passo 7 – Agora, soldamos os resistores no local onde estava soldado o potenciômetro :

Passo 7 - Resistores soldados

Passo 8 – Na engrenagem maior, há uma pequena aba que serve como limitador mecânico e deve ser removida. Para isso, podemos usar um estilete :

Passo 8 - Engrenagem aba removida

Pronto, basta recolocar a placa de controle, as engrenagens e os parafusos da carcaça. O motor agora está pronto para ser testado, agora sem limitação de rotação.

Vamos testar o motor utilizando um potenciômetro para controle da rotação. No motor testado, o fio laranja corresponde ao pino de dados/controle, o fio vermelho corresponde ao Vcc (5v), e o marrom ao negativo :

Servo TowerPro SG-5010 - Circuito Potenciometro

Carregando o programa abaixo no Arduino, conseguimos controlar o sentido de rotação e a posição do servo :

// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott http://people.interaction-ivrea.it/m.rinott

#include <Servo.h>
Servo myservo; // Cria o objeto para controlar o servo

int potpin = 0; // Pino analogico conectado ao potenciometro
int val; // variavel que guarda o valor lido do potenciometro

void setup()
{
myservo.attach(9); // Pino de dados do servo conectado ao pino 9 do Arduino
}

void loop()
{
// Le o valor do potenciometro (entre 0 e 1023)
val = analogRead(potpin); 

// Ajusta a variavel para um valor entre 0 e 180
val = map(val, 0, 1023, 0, 180); 

myservo.write(val); // Move o servo
delay(15); // Aguarda o servo atingir a posição
}

 Gostou? Deixe seu comentário logo abaixo.

Faça seu comentário

Acesse sua conta e participe

13 Comentários

  1. Olá, realizando esses ajustes no servo eu ainda consigo programar o posicionamento dele diretamente pelo arduino? Sem ter a ligação com o potenciômetro?

    1. Bom dia Davi.

      Em partes sim, porém será preciso fazer um cálculo (regra de 3) para que você possa converter um nível de tensão específico que você irá aplicar ao motor e converter esse valor de tensão em um valor de rotação em graus.

      Exemplo: nível de tensão no motor entre entre 0 e 1023 e verificar na prática o quanto o seu eixo girou.

      Att.
      Vitor Mattos.
      Suporte Técnico MakerHero.

  2. COnsigo controlar a velocidade de rotação do motor?

    1. Olá Giuliano,

      É possível em partes. A velocidade só pode ser ajustada conforme tensão de alimentação: 0,17 seg/60° (4,8v) e 0,14 seg/60° (6,0v)

      Abraço!
      Rosana – Equipe MakerHero

  3. Olá,
    Muito útil esse artigo. Me ajudou a fazer um trabalho escolar da filha.
    Posso acrescentar algo:

    Acabei comprando esse servo SGS5010 no ano de 2019 aqui mesmo, e internamente ele está um pouco diferente, a placa é menor. Mas possui os mesmos 3 pinos que devem ser desoldados para remover o potenciômetro.
    Eu tive que cortar lateralmente a caixa preta do servo pois a nova placa não fica logo em cima quando abre a tampa.
    Após cortar, removi a solda e troquei o pot pelos resistores e tudo normal.
    Obrigado

    1. Olá Daniel,

      Pode ser que existam diferenças mesmo, dependendo do fabricante da placa.
      Mas no final deu tudo certo?

      Abraço!
      Rosana – Equipe MakerHero

  4. Show, obrigado pela explicação

  5. Oi, boa tarde, como faço pra saber os parâmetros desse servo? A resistência, indutância e outros? Tô tentando inplementar controlador PID mas não consigo achar esses parâmetros no datasheet

  6. Oba, valeu pelo conteudo hein 🙂
    Ancioso por mais… Abraço.

  7. Também gostaria de alterar um servo para mais de 180º. Mais precisamente iria trabalhar com valores entre zero grau e 270 graus. Vi vários posts sobre como modificar um servo, mas nenhum dava pistas de como ter um -zero- grau confiável e preciso, ou seja, quando for comandado zero grau que o eixo sempre esteja na posição -zero-.

  8. Olá amigo.
    Uso muito o blog em meus estudos.
    Sobre essa alteração no motor SG-5010: após isso ele passa a se comportar como um motor de rotação infinita. Seria possível apenas “estender” um pouco o limite, para ao invés de 180 graus, digamos, uns 270?
    Para o projeto que estou desenvolvendo, eu preciso de um motor que se comporte como um servo, ou seja, vá até uma posição e pare, só que ele precisa girar mais do que 180 graus.
    Estou pensando em usar motor de passo, mas se houvesse um servo com essas característica, iria facilitar muito.
    Desde já agradeço pela ajuda.

    1. Boa noite Rafael,

      Você pode efetuar essa alteração no servo e controlar o ângulo via software.

      Abraço.

      Adilson – Equipe MakerHero

Trackbacks and Pingbacks

  1. […] sugeridas. Neste post, ilustramos a utlização deste sensor de efeito hall em conjunto com um Servo Tower Pro com rotação infinita, onde fixamos um ímã no motor, e a cada acionamento do sensor, o sentido de rotação é […]