Casa > Approfondimenti sul settore >Servo
SUPPORTO TECNICO

Supporto al prodotto

Guida completa al controllo dell'angolo Micro Servo con microcontrollori

Pubblicato 2026-04-07

Questa guida fornisce tutto il necessario per controllare con precisione l'angolo di rotazione di un micro standardservoutilizzando un microcontrollore. Il principio fondamentale è semplice: ilservoLa posizione dell'albero di uscita è determinata dall'ampiezza di un segnale di impulso. Per i micro più comuniservos, una larghezza di impulso di 1,5 millisecondi (ms) centra l'albero a 90°, 1,0 ms lo sposta a 0° e 2,0 ms lo sposta a 180°. Tuttavia, i servi del mondo reale variano. Questo articolo fornisce metodi verificati, esempi di codici e passaggi di calibrazione per ottenere un controllo accurato grado per grado senza fare affidamento su alcun marchio specifico.

01Come aMicroservoInterpreta la larghezza dell'impulso in angolo

UNMicroservocontiene un piccolo motore CC, un potenziometro di feedback e un circuito di controllo. Il circuito confronta l'ampiezza dell'impulso in ingresso con la posizione del potenziometro. Quando l'ampiezza dell'impulso corrisponde alla posizione desiderata, il motore si ferma. La relazione tra larghezza dell’impulso e angolo è lineare entro i limiti meccanici del servo.

Specifiche del segnale standard:

Frequenza di ripetizione dell'impulso:50 Hz (periodo = 20 ms)

Intervallo di larghezza di impulso utilizzabile:Tipicamente da 1,0 ms a 2,0 ms

Intervallo angolare corrispondente:Da 0° a 180°

Ciò significa che il servo attende un impulso ogni 20 ms. Modificando l'ampiezza dell'impulso da 1,0 ms a 2,0 ms, si comanda l'albero da 0° a 180°.

Un caso comune nel mondo reale:

Ne compri dueMicroservoProviene dallo stesso lotto. Uno si centra perfettamente a 90° quando si invia un impulso di 1,5 ms. L'altro si ferma a 85°. Ciò accade a causa delle tolleranze di produzione del potenziometro di feedback e dell'assemblaggio meccanico. Pertanto, calibrare sempre ciascun servo individualmente.

02Passo dopo passo: controllo dell'angolo del servo con il codice

La maggior parte delle piattaforme di microcontroller fornisce una libreria servo integrata che genera impulsi stabili a 50 Hz. Di seguito è riportato un esempio di codice generico che funziona con qualsiasi microcontrollore che supporti l'uscita PWM e le librerie di servocontrollo.

Configurazione dell'hardware:

Collegare il cavo di alimentazione del servo (rosso) a un'alimentazione da 5 V in grado di fornire almeno 500 mA.

Collega il filo di terra (marrone o nero) al GND del microcontrollore.

Collega il cavo del segnale (arancione, giallo o bianco) a un pin compatibile con PWM (ad esempio, pin 9).

Esempio di struttura del codice (pseudocodice universale):

#includereServomioServo; void setup() { mioServo.attach(9); // Collega il servo al pin 9 } void loop() { myServo.write(0); // Comando 0 gradi di ritardo(1000); mioServo.write(90); // Comando ritardo di 90 gradi (1000); mioServo.write(180); // Comando ritardo di 180 gradi (1000); }

ILscrivere(angolo)La funzione converte automaticamente l'angolo nell'ampiezza dell'impulso corrispondente utilizzando la mappatura predefinita (0°→1,0 ms, 180°→2,0 ms). Tuttavia, questo valore predefinito potrebbe non corrispondere al tuo servo specifico.

03Calibrazione: trovare i veri limiti di larghezza dell'impulso

Per ottenere angoli accurati, è necessario determinare l'esatta larghezza dell'impulso che produce 0° e 180° sul TUO servo.

Procedura di calibrazione:

1. Collegare un puntatore o segnare la posizione neutra dell'albero.

arduino micro servo degree_arduino micro servo degree_arduino micro servo degree

2. Inviare un impulso di 1,5 ms. L'albero dovrebbe essere vicino a 90°. Prendere nota di eventuali offset.

3. Diminuire l'ampiezza dell'impulso in passi di 10 µs finché l'albero non smette di muoversi. Questa è la vera larghezza dell'impulso di 0°.

4. Aumentare l'ampiezza dell'impulso da 1,5 ms in passi di 10 µs fino a quando l'albero smette di muoversi. Questa è la vera larghezza dell'impulso di 180°.

Risultati misurati tipici di tre servi comuni:

Servocampione Impulso 0° reale (μs) Impulso reale a 180° (μs) Impulso centrale a 90° (μs)
Campione A 540 2420 1480
Campione B 510 2450 1500
Campione C 570 2380 1460

Questi valori mostrano che presupponendo un valore compreso tra 1000 µs e 2000 µs possono verificarsi errori fino a 15°. Utilizzare sempre valori calibrati.

Applicazione della calibrazione nel codice:

La maggior parte delle librerie servo consentono di impostare intervalli di larghezza di impulso personalizzati utilizzando un fileallegare()sovraccarico o una funzione separata. Esempio:

mioServo.attach(9, 540, 2420); // Pin, larghezza minima dell'impulso (μs), larghezza massima dell'impulso (μs)

Dopo aver effettuato il collegamento con i limiti calibrati,mioServo.write(90)invierà l'esatto impulso centrale (1480 µs in questo caso), fornendo 90° reali.

04Problemi comuni e soluzioni

Problema Causa tipica Correzione verificata
Il servo trema o vibra Alimentazione insufficiente o rumorosa Utilizzare un regolatore separato da 5 V (ad esempio, 5 V 1 A) e aggiungere un condensatore da 100 µF tra alimentazione e terra vicino al servo
Il servo non si sposta all'angolo comandato Mancata corrispondenza dell'intervallo di larghezza dell'impulso Eseguire la procedura di calibrazione e impostare ampiezze di impulso min/max personalizzate
Il servo ruota solo tra 0° e 90° La larghezza dell'impulso non supera mai 1,5 ms Controlla il tuo codice: assicuratiscrivere(180)effettivamente invia un impulso >1,5 ms; utilizzare l'intervallo di attacco personalizzato
Il servo si surriscalda rapidamente Frequenza di ripetizione degli impulsi troppo elevata Verificare che la libreria servo emetta 50 Hz (periodo di 20 ms). Alcune configurazioni PWM emettono frequenze più elevate.

05Raccomandazioni attuabili per un controllo angolare affidabile

Passaggio 1: calibrare sempre ciascun servo individualmente– Non dare per scontato le specifiche di fabbrica. Trascorri 5 minuti misurando le reali larghezze degli impulsi di 0° e 180°.

Passaggio 2: utilizzare un alimentatore dedicato– Non alimentare i microservi direttamente dal pin 5V del microcontrollore. Un improvviso assorbimento di corrente può ripristinare il controller. Utilizzare un UBEC da 5 V 1 A o un alimentatore esterno regolato.

Passaggio 3: memorizza i valori di calibrazione nel codice– Dopo la calibrazione, codificare le ampiezze di impulso minima e massima. Esempio:

#define SERVO_PIN 9 #define SERVO_0_PULSE 540 // µs misurati per 0° #define SERVO_180_PULSE 2420 // µs misurati per 180° Servo myServo; myServo.attach(SERVO_PIN, SERVO_0_PULSE, SERVO_180_PULSE);

Passaggio 4: verifica con un semplice test– Comando 0°, 45°, 90°, 135°, 180°. Utilizzare un goniometro per verificare la precisione. Se qualsiasi angolo è errato di oltre 2°, ripetere la calibrazione.

Passaggio 5: documenta le tue impostazioni– Annotare le ampiezze degli impulsi calibrati per ciascun servo. Quando sostituisci un servo, ricalibralo immediatamente.

06Principio fondamentale ribadito:

L'angolo del micro servo è controllato direttamente dall'ampiezza dell'impulso. La mappatura standard (1,0 ms = 0°, 1,5 ms = 90°, 2,0 ms = 180°) è un punto di partenza. I servi reali richiedono una calibrazione individuale delle ampiezze di impulso minima e massima per ottenere una precisione reale da 0° a 180°. Senza calibrazione, potrebbero verificarsi spostamenti da 10° a 20°.

Seguendo la procedura di calibrazione e personalizzando l'intervallo di larghezza dell'impulso nel codice, otterrai un posizionamento servo ripetibile e accurato per qualsiasi applicazione, dai bracci robotici ai gimbal della fotocamera. Testa sempre i limiti effettivi di ogni servo e regola il tuo codice di conseguenza. Questa pratica elimina le congetture e garantisce che il tuo progetto funzioni in modo affidabile ogni volta.

Tempo di aggiornamento: 07-04-2026

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