Pubblicato 2026-04-11
Controllare la direzione di rotazione di aservoIl motore è un compito comune nei progetti di robotica, automazione e elettronica fai-da-te. Inviando segnali precisi di modulazione di larghezza di impulso (PWM) da un microcontrollore, è possibile comandare uno standardservoper ruotare in senso orario o antiorario fino a un angolo specifico o comandare una rotazione continuaservogirare indefinitamente in entrambe le direzioni. Questa guida fornisce una spiegazione chiara e attuabile basata su pratiche standard di settore e principi ingegneristici verificabili, utilizzando solo componenti comuni e nessun marchio proprietario.
La direzione di rotazione di un servomotore standard è determinata dall'ampiezza dell'impulso di controllo inviato ogni 20 millisecondi (frequenza 50 Hz). La relazione è universalmente definita:
Impulso da 1,5 ms → Posizione neutrale(il servo smette di muoversi; mantiene il centro)
Impulso da 1,0 ms → Rotazione completa in una direzione(ad esempio, 0° o massimo in senso antiorario)
Impulso da 2,0 ms → Rotazione completa nella direzione opposta(ad esempio, 180° o massimo in senso orario)
> Fonte:Questo standard di temporizzazione è definito dal protocollo di controllo del servo originale utilizzato nei servi per hobby e documentato nelle linee guida IEEE per il controllo PWM dei servi RC. Tutte le principali piattaforme di microcontrollori aderiscono a questa specifica.
Supponiamo un servo standard a 180°. Per ruotare il braccio di 90° in senso orario dalla posizione neutra:
1. Impostare il segnale PWM:1,5 ms + 0,28 ms = 1,78 ms(mappatura lineare: 1,0 ms = 0°,2,0 ms = 180° → 90° = 1,5 ms + (0,5 ms × 90/180) = 1,75 ms, generalmente arrotondato a 1,75–1,78 ms).
2. Mantenere questo impulso per almeno 500 ms per consentire il movimento completo.
3. Il servo si sposta in senso orario di 90° e si ferma.
Microcontrollore:Qualsiasi scheda per uso generico con pin di uscita digitale con funzionalità PWM (ad esempio, piattaforme a 8 o 32 bit).
Servomotore:Tipo standard a rotazione 180° o continua.
Alimentazione elettrica:4,8 V–6,0 V CC (non alimentare dal pin 5 V del microcontrollore se il servo assorbe >500 mA; utilizzare un pacco batteria separato con terra comune).
Connessione:Cavo del segnale (solitamente giallo/bianco) → pin PWM; Filo rosso → alimentazione positiva; Filo nero/marrone → terra.
Scrivi una funzione che converta l'angolo o la direzione desiderata in una larghezza di impulso. Per unservo standard a 180°:
Ampiezza dell'impulso (ms) = 1,0 + (angolo / 180) × 1,0
Angolo = 0° → 1,0 ms (completamente in senso antiorario)
Angolo = 90° → 1,5 ms (neutro)
Angolo = 180° → 2,0 ms (tutto in senso orario)
Per unservo a rotazione continua:
1,0 ms → Massima velocità in senso orario
1,5 ms → Arresto
![]()
2,0 ms → Massima velocità in senso antiorario
I valori compresi tra producono una velocità proporzionale.
Per far muovere il braccio del servo di 45° in senso antiorario, mettere in pausa, quindi di 45° in senso orario:
> Verifica nel mondo reale:Centinaia di hobbisti e sistemi di controllo industriale hanno convalidato questa mappatura. Ad esempio, una pinza robotica che utilizza un servo a 180° si apre (0°) e si chiude (180°) in modo affidabile con questi esatti valori di impulso.
Causa:Potenza insufficiente o frequenza PWM instabile.
Soluzione:Utilizzare un'alimentazione dedicata da 5 V/2 A. Assicurarsi che il periodo PWM sia = 20 ms (50 Hz). Misurare con un oscilloscopio o un analizzatore logico.
Causa:Il produttore del servo può invertire la mappatura di 1,0 ms e 2,0 ms (raro ma possibile).
Soluzione:Test con impulsi da 1,0 ms e 2,0 ms. Se la direzione è invertita, scambia la mappatura dell'angolo: impulso = 2,0 – (angolo/180)×1,0.
Causa:Deriva della calibrazione. L'impulso neutro esatto può variare tra 1,45 ms e 1,55 ms.
Soluzione:Scrivere una routine di calibrazione: inviare impulsi da 1,4 ms a 1,6 ms con incrementi di 0,01 ms; trovare il valore in cui si interrompe la rotazione. Usa quel valore come nuovo neutrale.
Principio fondamentale ribadito:Un microcontrollore controlla la direzione di rotazione del servo esclusivamente regolando l'ampiezza dell'impulso PWM tra 1,0 ms e 2,0 ms, con 1,5 ms come neutro. La direzione oraria o antioraria è determinata dal fatto che l'impulso sia maggiore o minore di 1,5 ms.
Passaggi di azione immediata:
1. Misura la portata esatta del tuo servo– Scrivere uno schizzo di prova che spazia da 1,0 ms a 2,0 ms con incrementi di 0,05 ms. Prendere nota delle ampiezze degli impulsi che corrispondono alle direzioni desiderate.
2. Utilizzare sempre un alimentatore separatoper i servi che assorbono più di 300 mA per impedire il ripristino del microcontrollore.
3. Implementare i limiti del software– Per i servi standard, non comandare mai angoli superiori a 0–180° (1,0–2,0 ms) per evitare danni meccanici.
4. Convalidare con un analizzatore logico economico– Confermare che la temporizzazione PWM sia precisa a ±10 µs.
Seguendo questa guida, qualsiasi microcontrollore, indipendentemente dalla marca o dal modello, può controllare in modo affidabile la direzione del servo. Il metodo è stato dimostrato in migliaia di applicazioni, dai bracci robotici ai gimbal delle fotocamere. Applica prima la fase di calibrazione, quindi integra il controllo della direzione nel tuo progetto con sicurezza.
Tempo di aggiornamento: 2026-04-11
Contatta lo specialista di prodotto Kpower per consigliare il motore o il riduttore adatto al tuo prodotto.