Servomotore che vibra e ronza: cause e soluzioni
By Kunkune | Published: 2026-10-16
Category: Guide pratiche
Il tremolio e il ronzio del servo di solito derivano da problemi di alimentazione, cablaggio o segnale. Ecco come diagnosticare ogni sintomo e risolverlo senza tentativi.
Risposta rapida
La maggior parte dei tremolii e ronzii dei servo deriva da problemi di alimentazione, non dal servo stesso. Alimenta il servo da una fonte separata da 5-6V con una capacità di almeno 1A per piccolo servo, condividi la massa con l'Arduino e tieni i fili del segnale corti. Se il tremolio continua, il servo potrebbe essere danneggiato o il carico potrebbe essere troppo pesante per la sua coppia nominale.
Perché i servo tremano: le tre cause reali
Un servo è un motore a circuito chiuso: confronta il segnale PWM con il suo potenziometro interno e aziona il motore finché i due non corrispondono. Tremolii e ronzii si verificano quando quel circuito viene disturbato. Ci sono solo tre colpevoli pratici: alimentazione instabile, segnale rumoroso o sovraccarico meccanico. L'alimentazione è di gran lunga la più comune. Il regolatore 5V integrato dell'Arduino fornisce tipicamente solo 500mA, e un piccolo servo può assorbire 700mA o più nell'istante in cui inizia a muoversi. Quel calo di tensione resetta la logica interna del servo e produce un rapido tremolio. I problemi di segnale vengono dopo: fili lunghi, messe a terra scadenti o PWM da un pin che pilota anche un LED o un cicalino. Il sovraccarico meccanico è l'ultimo: se il braccio del servo combatte contro un carico pesante o un collegamento che si blocca, il servo cerca continuamente e ronza alla corrente di stallo.
Rumore dell'alimentazione: la soluzione più comune
scollega il filo di alimentazione del servo dall'Arduino e alimentalo da una fonte separata da 5-6V. Un pacco batterie 4xAA o un alimentatore da banco funzionano per i test. Collega la massa del servo sia alla massa dell'alimentazione che a quella dell'Arduino. Questa singola modifica risolve la maggior parte dei tremolii perché il regolatore dell'Arduino non è più in caduta di tensione. Se stai già usando una fonte separata e senti ancora ronzio, aggiungi un condensatore elettrolitico da 470uF a 1000uF tra i pin di alimentazione e massa del servo, vicino al servo. Il condensatore assorbe i picchi di corrente che si verificano ogni volta che il motore si avvia. Per progetti con motori DC dove serve anche il controllo di velocità, un controller di velocità PWM come il 1203BK può isolare il rumore del motore dall'alimentazione logica, anche se non è un driver per servo. Tieni separati i fili di alimentazione del motore e della logica e attorciglia la coppia di alimentazione per ridurre il rumore irradiato.
Controlli di segnale e cablaggio per il ronzio del servo Arduino
Se l'alimentazione è pulita e il servo trema ancora, controlla il percorso del segnale. Usa un filo jumper corto, sotto 20cm, tra il pin Arduino e il filo del segnale del servo. I fili di segnale lunghi captano rumore da motori e alimentatori a commutazione. Evita i pin 0 e 1 su un Uno se usi la seriale; la libreria Servo disabilita il PWM sui pin 9 e 10 su alcune schede, quindi controlla la documentazione della tua scheda. Nel codice, assicurati di non aggiornare la posizione del servo più velocemente di quanto possa muoversi. Un errore comune è scrivere una nuova posizione a ogni iterazione del loop con un valore che cambia leggermente a causa del rumore del sensore. Aggiungi una zona morta: chiama servo.write() solo quando il target cambia di più di 2 gradi. Se usi un sensore esterno per comandare il servo, filtra la lettura del sensore. Ad esempio, un modulo RTC come il DS1302 non è un sensore, ma se il tuo progetto muove un servo in base al tempo, leggi l'ora una volta al secondo, non a ogni loop.
Cause meccaniche: quando il servo combatte contro se stesso
scollega il braccio del servo e fai funzionare il servo senza carico. Se il ronzio scompare, il problema è meccanico. Controlla se il collegamento si blocca, se il braccio è premuto troppo sull'albero, o se il carico supera la coppia del servo. I piccoli servo come il SG90 hanno una coppia di stallo intorno a 1.8 kg-cm a 4.8V; spingerli oltre causa una ricerca costante e calore. Controlla anche che il servo sia montato saldamente. Un montaggio allentato fa vibrare il servo, che il potenziometro interno legge come errore di posizione, creando un ciclo di feedback. Se il servo ronza anche senza carico e con alimentazione pulita, il potenziometro interno o il treno di ingranaggi potrebbero essere usurati. In quel caso, la sostituzione è la soluzione pratica.
Quando smettere di fare diagnosi e sostituire il servo
Se hai provato un'alimentazione separata, un condensatore, fili di segnale corti e un test senza carico, e il servo trema o ronza ancora, il servo stesso è probabilmente danneggiato. L'usura del potenziometro interno è comune nei servo economici dopo un uso prolungato. Prima di sostituire, verifica il segnale con un tester per servo o un pin Arduino noto buono. Se un nuovo servo funziona nella stessa configurazione, il vecchio è il problema. Se anche un nuovo servo trema, il problema è nel percorso di alimentazione o segnale, non nel servo. Non continuare a far funzionare un servo che ronza sotto carico; la corrente di stallo può surriscaldare il motore e danneggiare il driver o l'alimentazione.
Tabella di diagnosi del tremolio del servo
- Ronzio o tremolio quando il servo inizia a muoversi: Il regolatore 5V dell'Arduino sta cedendo sotto la corrente di spunto del servo. Alimenta il servo da una fonte separata da 5-6V con una capacità di almeno 1A per piccolo servo e collega le masse insieme. Se il tremolio si ferma, la soluzione è un'alimentazione dedicata al servo.
- Ronzio continuo di basso livello senza comando di movimento: Il servo riceve un segnale rumoroso o è caricato meccanicamente. Controlla fili di segnale lunghi, una massa condivisa o un collegamento che si blocca. Aggiungi una zona morta nel codice così piccole variazioni del sensore non aggiornano il servo. Se il ronzio si ferma quando scolleghi il braccio, il problema è meccanico.
- Tremolio che persiste con alimentazione pulita e senza carico: Il potenziometro interno o gli ingranaggi del servo sono probabilmente usurati. Prova con un servo noto buono. Se il nuovo servo funziona, sostituisci il vecchio. Smetti di fare diagnosi e sostituisci il servo se una nuova unità si comporta correttamente nella stessa configurazione.
Componenti che aiutano con alimentazione e segnale del servo
- Controller di velocità motore PWM DC 6V-28V 3A 1203BK – Potenziometro regolabile: Controller di velocità motore PWM DC 6V-28V 3A 1203BK con potenziometro regolabile, capacità di 80W e design compatto di 50×32×15mm. Utile per progetti con motori DC dove devi isolare il rumore del motore dall'alimentazione logica; non è un driver per servo, ma può aiutarti a testare se il rumore del motore causa tremolii.
- Modulo orologio in tempo reale -DS1302: Il modulo orologio in tempo reale DS1302 fornisce la misurazione di secondi, minuti, ore, giorno, data, mese e anno con un cristallo integrato e backup CR2032, comunicando tramite interfaccia seriale a 3 fili. Se il tuo progetto con servo è basato sul tempo, leggere l'ora una volta al secondo invece che a ogni loop riduce gli aggiornamenti inutili del servo che possono causare tremolii.

