[AJUDA][ARDUINO] Controlando um servo motor de alto torque

Olá moçada, adquiri um servo motor da tower pro MG996R, com engrenagens de metal para um projeto. Ele consome uma alta corrente (5V, 900 ma), entao arrumei uma fonte externa para alimentá-lo, que fornece exatamente o que ele pede. Quando ligo ele ao arduino com qualquer codigo ele gira até o ponto máximo e para. No caso ele fica chiando ainda como se quisesse rodar mais, porem o potenciometro esta no final, entao eu desligo rapido e volto ele ao ponto inicial manualmente. Nao importa o código que implemente (crescimento gradual ou ir para determinada posição), ele ignora tudo, inclusive os delays e vai direto pro final. Em um blog gringo o sujeito testou o comprimento de onda minimo e maximo (para esse mesmo modelo) para mover o servo para as posições iniciais e finais e sugeriu a seguinte modificação:

motor.attach( Pino do arduino, no meu caso o 3 pwm, 771, 1798);

Porem mesmo assim o problema nao foi resolvido. Quando desconecto o servo da placa e deixo apenas a energia alimentando ele nao se move (tal qual era esperado), desmontei o servo por completo e verifiquei e está tudo em ordem, parece ser um problema na comunicação mesmo entre o arduino e o servo, segue abaixo o codigo que usei. Desde ja muito obrigado pela atenção.

#include
Servo motor;
void setup()
{
motor.attach(3, 771, 1798);
}
void loop()
{
motor.write(0);
delay(2000);
motor.write(65);
delay(2000);
motor.write(130);
delay(2000);
}

Exibições: 785

Responder esta

Respostas a este tópico

No começo do codigo o include saiu faltando, no codigo ele está:

#include

Oi PHBB, bom dia.

Qual frequência de PWM está usando?

Veja que no datasheet deste motor fala que a frequência do PWM pra ele

deve ser de 50Hz. 

Pelo menos é o que diz o datasheet dele na pag 2: 

http://www.electronicoscaldas.com/datasheet/MG996R_Tower-Pro.pdf

Rui

Rui, Perdão amigo, novato é assim mesmo. Aparentemente eu nao tinha a menor ideia de como controlar um servo, com seu comentário e um pouco de pesquisa consegui resolver o problema. Muito obrigado
amigo tenho mesmo problema, gentileza poderia me dizer como resolveu

No meu caso eu tinha esquecido de ligar os GND, eu estava usando uma fonte externa para alimentar o servo, no caso vc deve ligar o negativo da fonte com o negativo da placa.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço