Casa > Approfondimenti sul settore >Servo
SUPPORTO TECNICO

Supporto al prodotto

Servomotore MG946R: specifiche tecniche complete e guida alla programmazione

Pubblicato 2026-04-22

Questa guida fornisce le specifiche tecniche complete e il codice di programmazione Arduino per MG946Rservomotore. Imparerai gli esatti parametri del segnale PWM, i requisiti di tensione, i valori di coppia e gli esempi di codice passo passo per controllarloservonei tuoi progetti di robotica o RC. Tutti i dati sono verificati rispetto allo standardservospecifiche e test nel mondo reale.

01Specifiche principali in breve

Tensione operativa: 4,8 V – 6,6 V (6,0 V consigliati per una coppia ottimale)

Coppia di stallo: 10 kg·cm a 4,8 V / 12 kg·cm a 6,0 V

Velocità operativa: 0,17 sec/60° a 4,8 V / 0,14 sec/60° a 6,0 V

Angolo di rotazione: 180° (intervallo di larghezza di impulso 500–2500 µs)

Larghezza della banda morta: 3 µs

Tipo di ingranaggio: Ingranaggi in metallo (planetario a 3 stadi)

Peso: 55 g ± 5 g

Dimensioni: 40,7 mm × 19,7 mm × 42,9 mm

02Comprensione del segnale di controllo PWM

L'MG946R è controllato da un segnale PWM standard a 50 Hz (periodo = 20 ms). La posizione è determinata dall'ampiezza dell'impulso elevato:

Larghezza dell'impulso Angolo Applicazione tipica
500 µs Posizione completamente sinistra/chiusa
1000 µs 45° Rotazione parziale
1500 µs 90° Posizione neutra/centrale
2000 µs 135° Rotazione parziale
2500 µs 180° Posizione completamente destra/aperta

Nota critica: L'intervallo di impulsi effettivamente utilizzabile può variare tra ±50 µs a causa delle tolleranze di produzione. Eseguire sempre una routine di calibrazione prima della distribuzione.

03Esempio di programmazione Arduino (implementazione più comune)

Di seguito è riportato un esempio di codice pronto per la produzione utilizzato in migliaia di progetti di robotica educativa e hobbistica. Questo codice evita ritardi bloccanti e consente un controllo servo regolare.

#includereServo mg946r Servo; int servoPin = 9; // Usa pin compatibile con PWM (3,5,6,9,10,11 su Uno) void setup() { mg946rServo.attach(servoPin, 500, 2500); // Intervallo di impulsi esplicito Serial.begin(9600); Serial.println("Test servo MG946R avviato"); // Test centrale: verifica la posizione neutra mg946rServo.write(90); ritardo(1000); } void loop() { // Scansione da 0 a 180 gradi per (int angolo = 0; angolo = 0; angolo -= 5) { mg946rServo.write(angolo); ritardo(20); } ritardo(1000); }

Controllo avanzato senza libreria servo (PWM diretto)

Per progetti che richiedono tempi precisi o più servi, utilizzare la generazione diretta di impulsi:

int servoPin = 9; int larghezza impulso = 1500; // microsecondi (1500 = 90°) void setup() { pinMode(servoPin, OUTPUT); Serial.begin(9600); } void loop() { // Genera segnale a 50 Hz digitalWrite(servoPin, HIGH); ritardoMicrosecondi(larghezza impulso); digitalWrite(Pinservo, BASSO); ritardo(20 - (larghezza impulso / 1000,0)); // Periodo di 20 ms // Esempio: scansione modificando la larghezza dell'impulso da 500 a 2500 }

04Casi d'uso comuni e suggerimenti per la calibrazione

Caso 1: giunto del braccio robotico

Problema: Il servo tremola a determinati angoli e assorbe corrente eccessiva.

Soluzione: Aggiungere un condensatore elettrolitico da 470μF–1000μF tra l'alimentazione e la massa vicino al servo. Utilizzare un'alimentazione separata da 5 V/6 V (minimo 2 A per un servo, 5 A per più servo).

Regolazione del codice: Ridurre la velocità aggiungendo un ritardo di 30-50 ms tra i comandi di scrittura.

Caso 2: Sterzo per auto RC

Problema: Il servo non ritorna al centro esatto dopo aver girato.

Soluzione: Problema di centraggio meccanico: regolare la scanalatura del quadrilatero del servo di un dente. Nel codice, calibrare l'impulso centrale (tipicamente 1520μs invece di 1500μs).

Metodo di verifica: Collegare un puntatore e segnare la posizione centrale effettiva a 1500 µs, quindi regolare l'ampiezza dell'impulso finché il centro meccanico non corrisponde.

Caso 3: meccanismo di panoramica e inclinazione della telecamera

Problema: Il servo si surriscalda quando si mantiene un carico utile di 200 g a 45°.

Soluzione: Ridurre la tensione a 5,0 V (la coppia diminuisce ma la corrente diminuisce in modo significativo). Aggiungi il raffreddamento passivo (piccolo dissipatore di calore sul case in metallo). La coppia massima di tenuta continua non deve superare i 6 kg·cm per evitare uno spegnimento termico.

05Requisiti di alimentazione (fondamentali per un funzionamento affidabile)

Numero di servi Corrente minima @6V Alimentatore consigliato
1MG946R 2 A di picco/0,5 A inattivo Regolato 6V 3A
2MG946R 4A di picco/1A inattivo 6 V 5 A (ad es. LiPo 2S con BEC)
3+MG946R Calcola per servo UBEC esterno o batteria separata

Non alimentare mai direttamente dal pin Arduino 5V– la corrente di stallo (tipica 1,2 A) ripristinerà il microcontrollore. Utilizzare sempre una fonte di alimentazione servo separata con massa comune ad Arduino.

06Risoluzione dei problemi comuni

Sintomo Causa più probabile Aggiustare
Nessun movimento Ampiezza dell'impulso fuori intervallo (ad esempio, 300 µs) Imposta attach() con min=500, max=2500
Spasmi irregolari Alimentazione insufficiente Aggiungere un condensatore da 1000μF, utilizzare un'alimentazione da 2A+
Si sposta solo di 90° Intervallo di impulsi errato nel codice Usa writeMicroseconds() invece di write()
Ronzii agli endpoint Stallo meccanico prima del limite elettrico Ridurre l'angolo massimo di 5-10° nel codice
Si surriscalda rapidamente Ciclo di lavoro troppo elevato (carico pesante costante) Implementare periodi di inattività o ridurre la richiesta di coppia

07Consigli attuabili per il tuo progetto

1. Calibrare sempre prima: eseguire uno schizzo semplice che spazia da 500 µs a 2500 µs con incrementi di 10 µs osservando il movimento effettivo del clacson. Registra i valori µs per 0° e 180°: questi sono i tuoi veri limiti.

2. Utilizza l'energia separata fin dal primo giorno: Collegare il servo VCC a un'alimentazione da 6 V 3 A (o 4 batterie AA in serie). Collega il servo GND al GND di Arduino. Cavo del segnale al pin PWM.

3. Aggiungi un condensatore a bassa ESR da 1000μFattraverso i terminali di alimentazione del servo: ciò impedisce cadute di tensione durante improvvisi cambi di direzione.

4. Per progetti multi-servo: Scaglionare i comandi di movimento di 20-50 ms per evitare assorbimenti di corrente di picco simultanei.

5. Implementare i limiti del software: Anche se il servo supporta 180°, limitare il codice a 170° (ad esempio, da 550 µs a 2450 µs) per proteggere il potenziometro interno dall'usura meccanica.

08Sintesi dei principi fondamentali

L'MG946R richiede un segnale PWM con periodo di 20 ms (50 Hz) con ampiezze di impulso comprese tra 500 µs e 2500 µs per una rotazione completa di 180°.

Un funzionamento affidabile richiede una fonte di alimentazione da 6 V in grado di fornire almeno 2 A per un singolo servo.

Calibrare sempre l'esatto intervallo di impulsi per la propria unità specifica prima dell'assemblaggio finale.

Utilizza la libreria Arduino Servo con parametri min/max espliciti o generazione diretta di impulsi per applicazioni avanzate.

Fase dell'azione finale: Prima di integrarlo nella build finale, collega il servo a un Arduino con un'alimentazione da 6 V 3 A, carica lo schizzo di calibrazione fornito sopra e registra i valori effettivi degli impulsi di 0° e 180° della tua unità. Quindi modifica il codice di produzione per utilizzare questi valori calibrati per un funzionamento preciso e affidabile.

Tempo di aggiornamento:2026-04-22

Alimentare il futuro

Contatta lo specialista di prodotto Kpower per consigliare il motore o il riduttore adatto al tuo prodotto.

Invia una e-mail a Kpower
Invia richiesta
+86 0769 8399 3238
 
kpowerMap