Lar > Informações do setor >Servo
SUPORTE TÉCNICO

Suporte ao produto

Servo motor MG946R: especificações técnicas completas e guia de programação

Publicado 2026-04-22

Este guia fornece as especificações técnicas completas e o código de programação do Arduino para o MG946R.servomotor. Você aprenderá os parâmetros exatos do sinal PWM, requisitos de tensão, classificações de torque e exemplos de código passo a passo para controlar esteservoem seus projetos de robótica ou RC. Todos os dados são verificados em relação ao padrãoservoespecificações e testes do mundo real.

01Resumo das especificações principais

Tensão operacional: 4,8 V – 6,6 V (6,0 V recomendado para torque ideal)

Torque de parada: 10 kg·cm a 4,8V / 12 kg·cm a 6,0V

Velocidade operacional: 0,17 seg/60° a 4,8 V / 0,14 seg/60° a 6,0 V

Ângulo de Rotação: 180° (faixa de largura de pulso de 500–2500µs)

Largura da banda morta: 3µs

Tipo de engrenagem: Engrenagens metálicas (planetárias de 3 estágios)

Peso: 55g ± 5g

Dimensões: 40,7 mm × 19,7 mm × 42,9 mm

02Compreendendo o sinal de controle PWM

O MG946R é controlado por um sinal PWM padrão de 50 Hz (período = 20 ms). A posição é determinada pela alta largura de pulso:

Largura de pulso Ângulo Aplicação Típica
500µs Posição totalmente esquerda/fechada
1000µs 45° Rotação parcial
1500µs 90° Posição neutra/central
2.000 µs 135° Rotação parcial
2500µs 180° Totalmente à direita/Posição aberta

Nota Crítica: A faixa de pulso real utilizável pode variar entre ±50µs devido às tolerâncias de fabricação. Sempre execute uma rotina de calibração antes da implantação.

03Exemplo de programação Arduino (implementação mais comum)

Abaixo está um exemplo de código pronto para produção usado em milhares de projetos de robótica educacional e amadora. Este código evita atrasos de bloqueio e permite um controle suave do servo.

#incluirServomg946rServo; int servo Pin = 9; // Use o pino compatível com PWM (3,5,6,9,10,11 no Uno) void setup() { mg946rServo.attach(servoPin, 500, 2500); // Faixa de pulso explícita Serial.begin(9600); Serial.println("Teste do servo MG946R iniciado"); // Teste central - verifica a posição neutra mg946rServo.write(90); atraso(1000); } void loop() { // Varre de 0 a 180 graus for (int ângulo = 0; ângulo = 0; ângulo -= 5) { mg946rServo.write(ângulo); atraso(20); } atraso(1000); }

Controle avançado sem biblioteca servo (PWM direto)

Para projetos que exigem temporização precisa ou múltiplos servos, use geração direta de pulso:

int servo Pin = 9; int largura de pulso = 1500; // microssegundos (1500 = 90°) void setup() { pinMode(servoPin, OUTPUT); Serial.begin(9600); } void loop() { // Gera sinal de 50 Hz digitalWrite(servoPin, HIGH); delayMicroseconds(pulseWidth); digitalWrite(servoPin, BAIXO); atraso (20 - (largura de pulso / 1000,0)); // Período de 20 ms // Exemplo: varredura alterando pulseWidth de 500 para 2500 }

04Casos de uso comuns e dicas de calibração

Caso 1: Articulação do Braço Robótico

Problema: O servo treme em certos ângulos e consome corrente excessiva.

Solução: Adicione um capacitor eletrolítico de 470µF–1000µF à alimentação e ao aterramento próximo ao servo. Use alimentação separada de 5V/6V (mínimo 2A ​​para um servo, 5A para múltiplos).

Ajuste de código: Reduza a velocidade adicionando um atraso de 30 a 50 ms entre os comandos de gravação.

Caso 2: Direção de carro RC

Problema: O servo não retorna ao centro exato após girar.

Solução: Problema de centralização mecânica – ajuste a estria da buzina do servo em um dente. No código, calibre o pulso central (normalmente 1520µs em vez de 1500µs).

Método de verificação: Anexe um ponteiro e marque a posição central verdadeira em 1500 µs e, em seguida, ajuste a largura do pulso até que o centro mecânico corresponda.

Caso 3: Mecanismo Pan-Tilt da Câmera

Problema: O servo superaquece ao segurar uma carga útil de 200g a 45°.

Solução: Reduza a tensão para 5,0 V (o torque diminui, mas a corrente cai significativamente). Adicione resfriamento passivo (pequeno dissipador de calor em caixa de metal). O torque máximo de retenção contínuo não deve exceder 6 kg·cm para evitar desligamento térmico.

05Requisitos de fonte de alimentação (críticos para operação confiável)

Número de servos Corrente Mínima @6V Fonte de alimentação recomendada
1MG946R 2A de pico / 0,5A inativo 6V 3A regulado
2 MG946R 4A pico / 1A inativo 6V 5A (por exemplo, 2S LiPo com BEC)
3+ MG946R Calcular por servo UBEC externo ou bateria separada

Nunca alimente diretamente do pino 5V do Arduino– a corrente de bloqueio (1,2A típica) irá reiniciar o seu microcontrolador. Sempre use uma fonte de alimentação servo separada com aterramento comum ao Arduino.

06Solução de problemas comuns

Sintoma Causa mais provável Consertar
Nenhum movimento Largura de pulso fora da faixa (por exemplo, 300 µs) Defina attachment() com min=500, max=2500
Contrações erráticas Fonte de alimentação insuficiente Adicione capacitor de 1000µF, use alimentação 2A+
Move apenas 90° Faixa de pulso incorreta no código Use writeMicroseconds() em vez de write()
Zumbidos nos terminais Parada mecânica antes do limite elétrico Reduza o ângulo máximo em 5-10° no código
Superaquece rapidamente Ciclo de trabalho muito alto (carga pesada constante) Implemente períodos de inatividade ou reduza a demanda de torque

07Recomendações práticas para o seu projeto

1. Sempre calibre primeiro: Execute um esboço simples que varra de 500 µs a 2.500 µs em incrementos de 10 µs enquanto observa o movimento real da buzina. Registre os valores µs para 0° e 180° – estes são seus verdadeiros limites.

2. Use energia separada desde o primeiro dia: Conecte o servo VCC a uma fonte de 6V 3A (ou 4 baterias AA em série). Conecte o servo GND ao Arduino GND. Fio de sinal para pino PWM.

3. Adicione um capacitor de baixa ESR de 1000 µFatravés dos terminais de potência do servo – isso evita quedas de tensão durante mudanças repentinas de direção.

4. Para projetos multi-servo: escalone seus comandos de movimento em 20-50 ms para evitar consumos simultâneos de pico de corrente.

5. Implementar limites de software: Mesmo que o servo suporte 180°, restrinja seu código a 170° (por exemplo, 550µs a 2450µs) para proteger o potenciômetro interno do desgaste mecânico.

08Resumo dos Princípios Fundamentais

O MG946R requer um sinal PWM de período de 20 ms (50 Hz) com larguras de pulso entre 500 µs e 2500 µs para rotação completa de 180°.

A operação confiável exige uma fonte de alimentação de 6 V capaz de fornecer pelo menos 2 A para um único servo.

Sempre calibre a faixa exata de pulso para sua unidade específica antes da montagem final.

Use a biblioteca Arduino Servo com parâmetros mínimo/máximo explícitos ou geração direta de pulso para aplicações avançadas.

Etapa de ação final: Antes de integrar em sua construção final, conecte o servo a um Arduino com alimentação de 6V 3A, carregue o esboço de calibração fornecido acima e registre os valores reais de pulso de 0° e 180° de sua unidade. Em seguida, modifique seu código de produção para usar esses valores calibrados para uma operação precisa e confiável.

Hora de atualização:2026-04-22

Impulsionando o Futuro

Entre em contato com o especialista de produtos da Kpower para recomendar um motor ou caixa de engrenagens adequado para o seu produto.

Correio para Kpower
Enviar consulta
+86 0769 8399 3238
 
kpowerMap