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.
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°.
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.
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.
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).
#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.
Per ottenere angoli accurati, è necessario determinare l'esatta larghezza dell'impulso che produce 0° e 180° sul TUO servo.
1. Collegare un puntatore o segnare la posizione neutra dell'albero.
![]()
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:
Questi valori mostrano che presupponendo un valore compreso tra 1000 µs e 2000 µs possono verificarsi errori fino a 15°. Utilizzare sempre valori calibrati.
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.
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.
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
Contatta lo specialista di prodotto Kpower per consigliare il motore o il riduttore adatto al tuo prodotto.