Pubblicato 2026-03-25
Hai mai riscontrato questa situazione: hai acquistato unservoe volevi usarlo sulla tua piccola invenzione, ma quando lo colleghi non si muove o vibra all'impazzata? Non preoccuparti, non è quelloservoè rotto, è molto probabile che tu non abbia trovato il modo corretto di "comunicare" con esso. Oggi parleremo di come scrivere un programma per ilservoin modo che possa obbedire alle tue istruzioni e girarlo quanto vuoi.
Molti amici hanno semplicemente collegato casualmente i tre fili del servo (alimentazione, terra e segnale) alla scheda di sviluppo non appena hanno iniziato, e poi hanno iniziato a dubitare della loro vita quando hanno visto il servo "tremare". Infatti, la causa principale delle vibrazioni del servo è, nella maggior parte dei casi, un'alimentazione insufficiente. All'interno del servo è presente un piccolo motore e la corrente istantanea all'avvio è molto elevata. Se l'alimentatore (come il pin da 5 V sulla scheda) non è in grado di fornire questa corrente istantanea, la tensione verrà abbassata, causando la confusione della logica del chip all'interno del servo.
Un altro motivo comune è che il cavo del segnale non è collegato correttamente oppure la frequenza del segnale PWM inviata dal programma non è corretta. Il servo controlla l'angolo inviando una larghezza di impulso specifica di 50 volte al secondo (ovvero 50 Hz) sulla linea del segnale. Se imposti altre frequenze nel programma, il servo non capirà cosa stai dicendo e inizierà naturalmente a muoversi in modo casuale. Controlla il tuo codice per vedere se la frequenza PWM non è impostata su 50Hz.
Questo problema è direttamente correlato al fatto che la scatola dello sterzo possa funzionare normalmente. Se usi solo un servo, ed è un servo piccolo come 9g, puoi a malapena usare il pin 5V della scheda di sviluppo per fornire energia direttamente, ma in realtà è solo "a malapena". Per la stabilità del sistema, si consiglia vivamente di fornire un'alimentazione separata al servo. È necessario un alimentatore da 5 V in grado di fornire almeno 1 A di corrente, ad esempio tre batterie a secco in serie, oppure un power bank per telefono cellulare più un modulo boost.
Non collegare mai il cavo di alimentazione del servo e il cavo di alimentazione della scheda di sviluppo in modo inverso, altrimenti le cose si bruceranno. Il metodo di connessione corretto è: il filo rosso (VCC) del servo è collegato al polo positivo dell'alimentatore indipendente e il filo nero (GND) è collegato al polo negativo dell'alimentatore. Questo filo nero deve essere collegato al GND della scheda di sviluppo. Questo si chiama "terreno comune" ed è la chiave per segnalare stabilità. Molti principianti ignoreranno questo passaggio, facendo sì che la linea del segnale "fluttui" e il servo disobbedisca.
Se vuoi giocare con il servo, hai bisogno di queste cose a portata di mano. In termini di hardware: un servo (il più comune è SG90 o giù di lì), una scheda di sviluppo del microcontrollore (Uno è il più semplice da usare), alcuni cavi DuPont e una scatola batteria o un modulo di alimentazione che può alimentare il servo. Se è la prima volta che giochi, Uno è il più semplice da usare perché la sua libreria di programmazione integrata supporta molto bene i servi.
Dal punto di vista del software, è necessario scaricare un IDE, che è gratuito. Dopo l'installazione, seleziona il modello della scheda di sviluppo e il numero della porta seriale nel menu "Strumenti". Ecco un piccolo trucco. C'è un esempio "Servo" nel programma di esempio dell'IDE. Aprilo direttamente e vedrai il codice del servocomando più semplice. Devi solo cambiare il numero pin della linea del segnale del servo e caricarlo sulla scheda. Il servo dovrebbe iniziare a oscillare avanti e indietro. Questo è il primo passo nella programmazione.
Andiamo un po' più in profondità e parliamo del segnale PWM chiave. Il nome completo di PWM è modulazione di larghezza di impulso. Per dirla senza mezzi termini, c'è un impulso di alto livello sulla linea del segnale ogni 20 millisecondi (perché la frequenza è 50Hz). La durata di questo impulso determina l'angolo di rotazione del servo.
Di solito, quando l'ampiezza dell'impulso è 0,5 millisecondi, il servo ruota a 0 gradi; quando 1,5 millisecondi, ruota di 90 gradi; quando è di 2,5 millisecondi, ruota di 180 gradi. Quando usi il.write(angolo)funzione, convertirà automaticamente l'angolo nella larghezza dell'impulso corrispondente per te e non dovrai preoccuparti affatto dei dettagli sottostanti. Se stai utilizzando un altro microcontrollore, come STM32, potrebbe essere necessario utilizzare un timer per generare tu stesso questa precisa forma d'onda PWM. È un po’ più complicato, ma il principio è esattamente lo stesso.
Avanti, scriviamo un programma che possa far ruotare il servo avanti e indietro. Il primo passo è aprire l'IDE e creare un nuovo progetto. Nel secondo passaggio, utilizzare# all'inizio del codice per introdurre la libreria servo. Il terzo passo è creare un oggetto servo, comeservo;Passaggio 4: dentroimpostare()funzione, uso.(9);per dichiarare che la linea del segnale del servo è collegata al pin 9.
Il quinto passaggio, che è anche la parte fondamentale, consiste nel scrivere la logica di controllociclo continuo()funzione. Ad esempio, se si desidera che il servo ruoti prima a 0 gradi, attendere 1 secondo, quindi ruotare a 180 gradi, attendere 1 secondo. Quindi il codice è:.scrivi(0); ritardo(1000); .write(180); ritardo(1000);. È così semplice. Dopo aver caricato il codice, vedrai il servo oscillare avanti e indietro tra i due angoli impostati. Nel momento in cui ci sei riuscito, hai provato uno speciale senso di realizzazione?
Sulla base della mia esperienza, ci sono diversi errori che rappresentano un "ostacolo" per i principianti. Il primo è dimenticare il “terreno comune”. Il GND della scheda di sviluppo e il GND dell'alimentatore del servo devono essere collegati con fili, altrimenti il segnale di controllo è come dati senza sistema di riferimento ed è completamente inaffidabile. Il secondo è collegare la linea del segnale a un pin non supportato dal PWM. Solo i pin 3, 5, 6, 9, 10 e 11 su Uno supportano l'uscita PWM. Se ti colleghi al pin 2 o 4, il programma verrà compilato e passato, ma il servo non si muoverà.
Il terzo errore è pensare che l’angolo del servo debba essere continuamente regolabile. In effetti, il limite fisico di molti servi è compreso tra 0 e 180 gradi. Se scriviscrivere(200)nel programma, i servi saranno bloccati a 180 gradi oppure emetteranno un "clic" e proveranno a superare il limite. Con il passare del tempo si bruceranno facilmente. Inoltre, quando la carica della batteria che alimenta il servo è insufficiente, potrebbe indebolirsi, tremare o fermarsi a metà. Pertanto, quando riscontri un problema, controlla prima il cablaggio, poi l'alimentazione e infine sospetta il codice. Questa sequenza può farti risparmiare molto tempo.
Hai mai riscontrato "eventi soprannaturali" durante il debug del servo? Ad esempio, inizia improvvisamente a disegnare cerchi da solo o è particolarmente sensibile alla temperatura? Benvenuto per condividere la tua esperienza nell'area commenti e discutiamone insieme. Se desideri ottenere una selezione dei servi più dettagliata ed esempi di codici, puoi effettuare una ricerca nel sito Web ufficiale "Toshiba Semiconductor". Lì sono presenti numerose note applicative e progetti di riferimento, che saranno sicuramente di grande aiuto nel tuo percorso di sviluppo.
Tempo di aggiornamento: 25-03-2026
Contatta lo specialista di prodotto Kpower per consigliare il motore o il riduttore adatto al tuo prodotto.