Sterzo controllato da microcontrollore: tutorial pratico sulla modulazione dell'ampiezza dell'impulso_Custom Drive_Industry Insights_Kpower
Casa > Approfondimenti sul settore >Guida personalizzata
SUPPORTO TECNICO

Supporto al prodotto

Sterzo controllato da microcontrollore: tutorial pratico sulla modulazione dell'ampiezza degli impulsi

Pubblicato 2026-05-09

"La teoria è un ufficiale, la pratica è un soldato." -Leonardo da Vinci

Il microcontrollore controlla la scatola dello sterzo. Infatti, non invia istruzioni del tipo “quanti gradi girare”, ma emette una serie di segnali impulsivi precisi. L'ampiezza di questa serie di impulsi determina direttamente la posizione di arresto del braccio dello sterzo.

Dubbi comuni: perché il servo non ruota quando viene applicata una tensione di 5 V? Il motivo è che all'interno della scatola dello sterzo è presente un chip di controllo. Ciò che aspetta è un'onda quadra con un periodo di 20 ms e un livello alto compreso tra 0,5 ms e 2,5 ms. Tra questi, 0,5 ms corrisponde a 0°, 1,5 ms corrisponde a 90° e 2,5 ms corrisponde a 180°.

01Comprendere il protocollo PWM

Pensa allo sterzo e al microcontrollore come alle tue mani, che possono essere immaginate come un lavoratore che ascolta le persone e consegna solo un pezzo di carta alla volta.

Il livello alto della carta dura 1,5ms → l'operatore gira di 90°

Il livello alto della carta dura 2,0 ms → l'operatore gira di 135°

Punti dati fondamentali: come per il servo standard, il suo periodo di controllo rimane fisso a 20 ms (ovvero 50 Hz). Se il tempo di livello alto supera i 2,5 ms, in questo caso il circuito interno potrebbe danneggiarsi o bruciarsi. Per i principianti, un errore comune è dimenticare di impostare il ciclo. Invece, cambia semplicemente il ciclo di lavoro.

02Tre elementi di cablaggio hardware

In un esempio, un team di studenti ha utilizzato un microcontrollore per fornire energia direttamente a due servi. Tuttavia, si è verificato un ripristino immediatamente dopo l'avvio dei servi. Il motivo era che la corrente arrivava fino a 1 A all'avvio dei servi, ma l'alimentazione fornita dal microcontrollore tramite USB era di soli 500 mA.

Collegamento corretto

linea di segnale→ Pin PWM del microcontrollore (non è richiesta alcuna resistenza in serie)

cavo di alimentazione→ Alimentazione indipendente da 5 V (o batteria + modulo stabilizzatore di tensione)

单片机运行控制舵机原理_单片机控制舵机教程_单片机怎么控制舵机运行

Filo di terra→ Terra comune con il GND del microcontrollore (Deve essere connesso

Un consiglio per la programmazione è confermare la funzione alternativa del pin prima di inizializzare il timer. Per la maggior parte dei microcontrollori a 32 bit, i pin di uscita PWM appartengono allo stesso pin fisico del normale GPIO, ma devono essere configurati in modalità "multiplex push-pull".

03Genera impulsi controllati

Prendiamo come esempio il controllo del servo per ruotare lentamente da 0° a 180°. La logica del codice è divisa in tre parti:

1. Impostare il periodo del timer su 20 ms (ovvero 20.000 microsecondi)

2. Impostare il valore di confronto su 1,5 ms (punto medio 90°)

3. Aumentare gradualmente il valore di confronto nel ciclo principale

Idea dello pseudocodice:

Inizializza frequenza PWM = 50Hz, periodo = 20000us Imposta ciclo di lavoro = 1500us (90°) Attendi 1 secondo Ciclo di lavoro = 500us (0°) Attendi 1 secondo Ciclo di lavoro = 2500us (180°)

Verificare mediante misurazione effettiva. Bloccare l'oscilloscopio tra il pin del segnale e la terra per vedere se la larghezza del livello alto cambia con il programma.. Se non disponi di un oscilloscopio, puoi collegare un LED e una resistenza in serie, con il polo positivo del LED collegato al segnale e il polo negativo collegato a terra. I cambiamenti nella luminosità del LED indicano che l'impulso sta cambiando.

04Offset dell'angolo di calibrazione

Per servi diversi dello stesso modello, la larghezza dell'impulso corrispondente a 0° può avere una deviazione di ±100us. Il metodo di calibrazione consiste nello scrivere un programma di scansione automatica:

A partire da 500us, passo dopo passo 10us, rimani per 0,5 secondi ad ogni passo

单片机运行控制舵机原理_单片机怎么控制舵机运行_单片机控制舵机教程

Registrare il valore dell'ampiezza dell'impulso quando il limite meccanico si ferma

Mappa linearmente l'intero intervallo angolare su questo intervallo

La situazione normale è che la larghezza della zona morta di molti servi economici con ingranaggi in plastica è 5us, il che significa che quando si modifica la larghezza dell'impulso e la larghezza dell'impulso modificata è inferiore a 5us, il servo non si muoverà. Questa è una situazione normale e non è necessario avere dubbi sul programma.

Il suggerimento durante il debug è che quando il servo emette quel suono "sfrigolio" ma non ruota, mostra che l'angolo corrispondente all'ampiezza dell'impulso corrente è più vicino allo stato limite. Ridurre il valore del passo o verificare se la struttura meccanica è bloccata.

05Controlla più servi

Un timer può emettere più segnali PWM, a condizione che il numero di canali sia sufficiente. Ad esempio, il timer universale di un microcontrollore a 32 bit ha generalmente 4 canali e può controllare indipendentemente 4 servi.

Una guida per evitare le trappole

Non utilizzare la funzione di ritardo per attendere la rotazione del servo. Quando il servo stesso ruota, impiega circa 0,2 secondi/60°.

Quando si avviano più servi contemporaneamente, la corrente totale verrà sovrapposta. Si consiglia di collegare un condensatore da 1000uF in parallelo alla linea di alimentazione di ciascun servo.

Mantenere uno spazio di almeno 2 mm tra le linee del segnale per evitare diafonia

06Domande frequenti su domande e risposte

D: Cosa fa vibrare il servo?

L'alimentazione è insufficiente. Misurare la tensione del terminale di alimentazione del servo. Se l'interruzione di corrente è inferiore a 4,5 V, sostituire la batteria indipendente e aggiungere un condensatore da 220 uF.

D: Come correggere la differenza angolare totale di 5°?

R: Non esiste una relazione lineare tra l'ampiezza dell'impulso e l'angolo. Basta utilizzare i due punti misurati, ovvero l'ampiezza dell'impulso di 0° e l'ampiezza dell'impulso di 180°, ed eseguire l'interpolazione lineare per la calibrazione.

D: Il microcontrollore si riavvierà non appena il servo sarà collegato?

R: Manca un terreno comune oppure la corrente di avviamento è troppo elevata. Innanzitutto collegare GND, quindi fornire alimentazione al servo unilateralmente e infine collegare la linea del segnale.

D: È possibile utilizzare la normale porta IO per simulare il PWM?

R: Funziona, ma l'utilizzo della CPU è elevato. Adatto per un singolo servo e non esegue altri lavori, altrimenti è necessario utilizzare il PWM hardware.

07Suggerimenti per l'azione

Per ribadire i punti chiave: controllare il servo significa controllare l'ampiezza dell'impulso, il periodo è fissato a 20 ms e la condizione di alto livello determina l'angolo

Verifica in 3 passaggi

1. Utilizzare un alimentatore indipendente per alimentare un servo, fissare l'impulso da 1,5 ms scrivendo a mano e verificare se rimarrà nella posizione di 90°.

2. Utilizzare un loop per produrre 500us → 2500us e osservare se l'intera rotazione è fluida.

3. Collegare il carico effettivo (come un giunto robot) e ripetere la calibrazione dell'offset

Sostenere l'uso dikpowerProdotti come Servo vengono sottoposti al primo ciclo di test e la calibrazione dei parametri è accurata e può ridurre le variabili di indagine. Da un singolo giunto a più gradi di libertà, il margine di alimentazione deve essere confermato in ogni fase. Ricorda: durante il debug, misurare prima l'impulso e poi avere dubbi sul servo.

Tempo di aggiornamento: 09-05-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
Messaggio WhatsApp
+86 0769 8399 3238
 
kpowerMap