Pubblicato 2026-04-06
servoil controllo degli impulsi è il metodo per inviare un segnale elettrico ripetuto, in particolare aSegnale di modulazione di larghezza di impulso (PWM).-secondo uno standardservomotore per impostare l'albero di uscita su un angolo preciso. L'ampiezza dell'impulso (durata del segnale alto) determina la posizione, non solo il livello di tensione o la frequenza.
Per la stragrande maggioranza dei servi hobbistici e industriali, alarghezza dell'impulso di 1,5 millisecondi (ms)comanda ilposizione neutra (90 gradi)., UNImpulso da 1,0 mscomandi0 gradi(tutto a sinistra) e aImpulso da 2,0 mscomandi180 gradi(tutto a destra). Questo è lo standard universale da seguire per un funzionamento affidabile.
Ogni segnale di controllo inviato a un servo standard è composto da due parti:
Elevata larghezza di impulso(parte attiva): tipicamente tra0,5 ms e 2,5 ms, sebbene la maggior parte dei servi utilizzi1,0 ms – 2,0 msper l'intervallo 0–180°.
Periodo del fotogramma(tempo ciclo totale):20 ms(50 Hz) per servi analogici standard. I servi digitali possono accettare frequenze più elevate (fino a 333 Hz), ma 50 Hz funzionano universalmente.
Regola critica:Il servo legge solo illarghezza dell'impulsodi ogni ciclo. Il resto del ciclo (segnale basso) ripristina semplicemente il timer. Modifica del periodo del frame mantenendo la stessa ampiezza dell'impulsonocambia l'angolo: influisce solo sulla coppia e sulla velocità di aggiornamento.
> Fonte verificabile:Questi valori corrispondono allo standard definito dalla Radio Control Manufacturers Association (RCMA) e sono utilizzati da tutte le principali schede tecniche dei servo (ad esempio Futaba, Hitec, Savox). Per i servi che richiedono una gamma più ampia (ad esempio 270°), la gamma degli impulsi si estende di conseguenza a 0,5 ms – 2,5 ms.
Supponiamo di avere un servo standard da 5 V collegato a un microcontrollore generico (come Arduino, ESP32 o STM32). Vuoi che il servo esegua una rotazione da 0° a 180° e viceversa.
Cavo del segnale del servo → qualsiasi pin di uscita digitale (ad esempio, Pin 9)
Alimentazione servo (rosso) → Alimentazione esterna 5 V (non alimentare dal pin 5 V del microcontrollore se si assorbe > 500 mA)
Terra servo (marrone/nero) → terra comune con microcontrollore
La maggior parte delle librerie di microcontrollori astraggono la generazione di impulsi. Ecco la logica esatta che implementeresti se scrivessi codice di basso livello:
# Pseudocodice per il servocontrollo a 50 Hz (periodo di 20 ms) Imposta pin ALTO Attendi Pulse_Width_ms (ad esempio, 1,5 ms) Imposta pin BASSO Attendi (20 - Pulse_Width_ms) ms Ripeti ogni 20 ms
Errore comune:Utilizzandoritardo()che blocca altre attività. Utilizza invece un timing non bloccante con millis() o un timer hardware.
Un hobbista ha costruito un gimbal per una GoPro ma ha utilizzato impulsi da 0,5–2,5 ms su un servo standard a 180°. Risultato: il servo tremolava e si surriscaldava costantemente perché cercava di muoversi oltre i suoi limiti meccanici (fino a circa 270°). Dopo aver corretto a1,0–2,0 ms, il gimbal ha funzionato senza problemi. Verifica sempre la scheda tecnica del tuo servo per i limiti effettivi degli impulsi.
Causa 1:Ampiezza dell'impulso instabile (fluttuante di ±0,01 ms a causa di errori di temporizzazione del software).
Aggiustare:Utilizza una periferica hardware PWM invece del bit-banging.
Causa 2:Periodo del frame incoerente (ad esempio, da 18 ms a 22 ms).
![]()
Aggiustare:Assicurarsi che il periodo sia esattamente di 20 ms. I servi digitali sono meno sensibili, ma quelli analogici tremolano.
Causa:Gamma di impulsi troppo stretta. Molte librerie hanno un valore predefinito di 0,5–2,5 ms, ma il tuo servo richiede 0,9–2,1 ms.
Aggiustare:Misura i punti finali effettivi inviando impulsi sempre più grandi finché il servo non smette di muoversi, quindi imposta il minimo/massimo di conseguenza.
Causa:Corrente insufficiente. Un servo in stallo può assorbire >1A.
Aggiustare:Utilizzare un'alimentazione separata da 5 V nominale per almeno 2 A per servo. Non fare affidamento sull'alimentazione USB.
Causa:Rumore elettrico sulla linea del segnale.
Aggiustare:Aggiungere un resistore da 100–220 Ω in serie con il cavo del segnale e un condensatore da 10 µF tra l'alimentazione e la terra vicino al servo.
Segui questi passaggi per garantire il successo del tuo progetto:
1. Identifica le specifiche degli impulsi del tuo servo– Controlla la scheda tecnica. Se non disponibile, assumere 1,0–2,0 ms per 0–180°.
2. Utilizzare un pin PWM dedicato– I timer hardware producono impulsi stabili. Il bit-banging del software è solo a scopo di test.
3. Alimentare il servo separatamente– Collegare il VCC del servo a un'alimentazione regolata da 5 V (o 4,8 V–6 V come specificato). Non prelevare mai alimentazione dall'alimentatore logico (ad esempio, il pin 5 V del Raspberry Pi).
4. Inizia con un impulso neutro (1,5 ms)– Questo centra il servo e previene salti improvvisi.
5. Spazzare gradualmente l'ampiezza dell'impulso– Da 1,0 ms a 2,0 ms con incrementi di 0,01 ms. Rispettare l'effettiva portata meccanica.
6. Registra gli impulsi minimi/massimi reali del tuo servo– Utilizzare questi limiti nel codice finale per evitare di forzare i finecorsa.
7. Aggiungere una compensazione della banda morta– Per un posizionamento preciso, inviare due volte lo stesso impulso; la maggior parte dei servi ha una banda morta di 3–10 µs.
Ancora: solo la larghezza dell'impulso controlla l'angolo. Non la tensione, non la frequenza (entro limiti ragionevoli).Un impulso da 1,5 ms comanda sempre 90° su un servo standard, indipendentemente dal fatto che il periodo del frame sia di 20 ms o 10 ms. La modifica del periodo influisce solo sulla frequenza con cui il servo aggiorna la sua posizione. Per i servi analogici, attenersi a 50 Hz (20 ms). Per i servi digitali, si può arrivare fino a 333 Hz (periodo di 3 ms), ma la gamma della larghezza dell'impulso rimane identica.
Per applicare immediatamente e correttamente il controllo degli impulsi del servo:
Fare:Genera impulsi stabili da 1,0–2,0 ms con un periodo di 20 ms utilizzando una periferica hardware PWM.
Non:Alimenta il servo dal regolatore del tuo microcontrollore; utilizzare una batteria o un alimentatore separato.
Fare:Inizia sempre con un impulso neutro di 1,5 ms prima di passare a qualsiasi altro angolo.
Non:Supponiamo che tutti i servi utilizzino 0,5–2,5 ms; verifica la scheda tecnica del tuo modello specifico.
Seguendo questa guida, eliminerai il jitter, previeni danni meccanici e otterrai un controllo angolare preciso per qualsiasi progetto basato su servo, dai bracci robotici ai veicoli RC e ai gimbal delle fotocamere. Per ulteriore risoluzione dei problemi, fare riferimento alla scheda tecnica ufficiale del servo o eseguire un test con un oscilloscopio per confermare la temporizzazione degli impulsi.
Tempo di aggiornamento: 06-04-2026
Contatta lo specialista di prodotto Kpower per consigliare il motore o il riduttore adatto al tuo prodotto.