Diagramma del programma della scheda di servocontrollo a 32 canali: guida completa al cablaggio, alla codifica e al debug_Servo_Industry Insights_Kpower
Casa > Approfondimenti sul settore >Servo
SUPPORTO TECNICO

Supporto al prodotto

Diagramma del programma della scheda di servocontrollo a 32 canali: guida completa al cablaggio, alla codifica e al debug

Pubblicato 2026-04-29

01Schema del programma della scheda di controllo della timoneria a 32 canaliAvvio rapido

Per controllare 32 servi in ​​modo che lavorino insieme, il metodo principale consiste nell'utilizzare una scheda driver PWM a 32 canali basata sul chip PCA9685 come il marchio YPMFG e utilizzare l'interfaccia I2C della scheda di controllo principale come Arduino/ESP32/Raspberry Pi per trasmettere comandi e ciascun servo può controllare indipendentemente l'angolo. Riepilogo di 12 parole: collega i cavi, masterizza la libreria e invia il valore PWM. Di seguito sono riportati lo schema completo del programma, il codice di esempio Arduino e le soluzioni a 5 problemi ad alta frequenza, quindi non è necessario effettuare ulteriori ricerche.

02Schema elettrico dell'hardware (collegamenti principali)

La scheda di servocontrollo a 32 canali e la scheda di controllo principale richiedono solo 4 fili:

Pin della scheda di controllo Collegare alla scheda di controllo principale illustrare
VCC (3-5 V) Uscita 3,3 V/5 V Alimentazione logica, stessa tensione del controllo principale
GND GND La terra comune deve essere collegata
SCL SCL (come A5 su Uno) Linea dell'orologio I2C
SDA SDA (come A4 su Uno) Linea dati I2C

Per quanto riguarda l'alimentazione del servo, i punti chiave da notare sono: il servo a 32 canali non deve ricevere alimentazione dalla scheda di controllo principale. Deve essere collegato a un alimentatore regolato da 5 V o 6 V. Il metodo di calcolo attuale qui è il numero di servi moltiplicato per la corrente di ciascun servo quando è bloccato. Di seguito sono riportati esempi reali di cablaggio corrispondenti allo schema di programma corrispondente:

Collegare il terminale positivo dell'alimentatore esterno alla scheda di controlloV+Terminale, polo negativoGND

Quando si collega un servo specifico, il suo filo rosso deve essere collegato alla porta rossa sullo stesso canale corrispondente a ciascuna fase sulla scheda di controllo, il filo marrone deve essere collegato alla porta marrone e il filo arancione e giallo devono essere collegati alla porta del segnale PWM.

Un esempio è che quando un produttore stava realizzando un robot a 12 gradi di libertà, la scheda di controllo principale è stata bruciata perché l’alimentatore esterno non era collegato.Il metodo di funzionamento corretto consiste nell'utilizzare un alimentatore switching da 6 V/10 A per fornire alimentazione direttamente alla scheda di controllo.

03Codice del programma Arduino (copia diretta disponibile)

Il seguente programma inizializza la scheda di controllo a 32 canali, ruota il primo servo a 0°, ruota il terzo servo a 180° ed esegue la scansione di tutti i servi in ​​un ciclo. Nella funzione principale setPWM(canale, acceso, spento), l'ampiezza dell'impulso corrispondente al valore spento è: 0° è uguale a 150, 90° è uguale a 375 e 180° è uguale a 600 (questo si basa su una frequenza di 50 Hz e l'intervallo di impulsi è 0,5 ms - 2,5 ms).

#includere#includere// Libreria ufficiale Adafruit_PWMservoDriver pwm = Adafruit_PWMservoAutista(0x40); //Indirizzo I2C predefinito 0x40 #defineservoMIN 150 // larghezza impulso 0° #define SERVOMAX 600 // larghezza impulso 180° void setup() { Serial.begin(9600); pwm.inizio(); pwm.setFrequenzaoscillatore(27000000); // Calibra l'oscillatore interno pwm.setPWMFreq(50); // Ritardo servo standard 50Hz(10); } void loop() { // Il canale 0 ruota a 0° pwm.setPWM(0, 0, SERVOMIN); ritardo(1000); // Il canale 0 ruota a 180° pwm.setPWM(0, 0, SERVOMAX); ritardo(1000); // Tutti i canali vengono scansionati in sequenza per (int ch = 0; ch

32路舵机控制板程序图_舵机控制电路板_如何用程序控制舵机

Carica il codice sopra su Arduino per osservare il movimento del servo. Se tutti i 32 canali sono nello stato normale, significa che il diagramma di programma della scheda di servocontrollo a 32 canali ha avuto effetto.

04Debug e risoluzione dei problemi comuni (formato Q/A)

Q1: Il servo non si muove affatto, come posso posizionarlo velocemente?

Controllare attentamente la tensione e la corrente dell'alimentatore esterno, utilizzare un multimetro per misurare se c'è elettricità tra V+ e GND sulla scheda di controllo, testare un servo separatamente e collegarsi direttamente al segnale PWM.

D2: Il servo trema o non riesce a ruotare secondo l'angolo specificato?

R: L'alimentazione è insufficiente. Per calcolare la corrente totale, la corrente di ciascun servo è 200 mA al minimo e 1 A quando si trova nello stato di rotore bloccato. Nel caso di 32 canali è necessario almeno un alimentatore switching da 10 A o più.

Q3: La comunicazione I2C non è riuscita (lo scanner non riesce a trovare il dispositivo)?

R: Controlla se SCL e SDA sono collegati in modo inverso. Per quanto riguarda la resistenza pull-up, la maggior parte delle schede ha integrato 4,7kΩ, che riduce la velocità I2C a 100kHz.

Q4: Cosa devo fare se diverse marche di servi hanno diverse larghezze di impulso?

Calibrare separatamente secondo le macro SERVOMIN e SERVOMAX. Per prima cosa è necessario scrivere un programma di test per ruotare il servo a 0°, quindi misurare l'angolo effettivo e quindi regolare il valore. Quindi è necessario scrivere un programma di test per ruotare il servo a 180°, misurare nuovamente l'angolo effettivo e regolare il valore.

Q5: Come controllare più servi per muoversi agevolmente contemporaneamente?

Prima di tutto, A ha menzionato un modo, ovvero utilizzare pwm.setPWM per eseguire un'operazione di aggiornamento canale per canale e questa operazione non è bloccante ed è ritardata. Pertanto, per la sincronizzazione di più servi, si consiglia di utilizzare la differenza temporale accumulata, che viene implementata tramite millis(). Questa è la situazione.

32路舵机控制板程序图_如何用程序控制舵机_舵机控制电路板

05Avanzato: esempio di controllo Python Raspberry Pi

Per gli utenti Raspberry Pi, dopo aver installato la libreria adafruit-circuitpython-pca9685, è possibile connettersi anche a I2C. Il seguente codice farà oscillare avanti e indietro il servo del canale 2:

importa scheda importa busio da adafruit_pca9685 importa PCA9685 da adafruit_motor importa servo i2c = busio.I2C(board.SCL, board.SDA) pca = PCA9685(i2c, indirizzo=0x40) pca.frequency = 50 servo2 = servo.Servo(pca.channels[1], min_pulse=500, max_pulse=2500) mentre Vero: servo2.angle = 0 time.sleep(1) servo2.angle = 180 time.sleep(1)

Il metodo di connessione di Raspberry Pi e Arduino nel diagramma del programma è lo stesso, ovvero SCL è collegato a GPIO2, SDA è collegato a GPIO3 e GND è una terra comune.. Prima dell'esecuzione, assicurati di utilizzare i2cdetect -y 1 per confermare che l'indirizzo del dispositivo è 0x40.

06Completare il processo del progetto e suggerimenti sulle azioni

secondoSchema del programma della scheda di controllo della timoneria a 32 canaliÈ possibile ottenere un controllo indipendente dal cablaggio a 32 canali entro 3 ore. Per rafforzare la conclusione, è necessario operare nel seguente ordine.

1. Il lavoro di preparazione da svolgere è ottenere la scheda di servocontrollo a 32 canali YPMFG, ottenere Arduino Uno, ottenere il modulo di stabilizzazione della tensione da 12 V a 5 V/10 A e ottenere 32 servi MG995.

2. Iniziare il cablaggio. La durata è di 10 minuti. È necessario collegare l'I2C e l'alimentazione esterna secondo lo schema elettrico nella Sezione 1. Non collegare prima il servo, ma testare la spia della scheda di controllo.

3. Copia il codice Arduino, installa la libreria Adafruit_PWMServoDriver e modifica l'indirizzo in 0x40. Questo processo richiede 15 minuti. Questo è il programma di masterizzazione.

4. Condurre un test su un singolo servo (5 minuti di durata), collegare un servo al canale 0, caricare il codice e verificare che possa ruotare a 0° e 180°.

5. Espandi a 32 canali, la durata è di 1 ora: collega tutti i servi uno per uno in ordine e controlla la risposta di ciascun canale.

6. Calibrazione e ottimizzazione. Questo processo richiede 1 ora. Richiede la misurazione della gamma effettiva degli impulsi di ciascun servo e l'aggiornamento del valore SERVOMIN/MAX.

Ripeti il ​​punto fondamentale: il PWM generato da PCA9685 è il nucleo di qualsiasi scheda di servocontrollo a 32 canali. La chiave del diagramma del programma è connettere correttamente I2C, collegare correttamente l'alimentatore esterno e chiamare correttamente la funzione di libreria. Finché non si verificano errori in questi tre passaggi, anche se 32 canali sono a pieno carico, possono comunque funzionare stabilmente.

07Correzione di malintesi comuni

Per quanto riguarda l'equivoco 1, è sbagliato pensare che la scheda del servocomando possa essere alimentata direttamente tramite USB.Poiché la corrente di alimentazione fornita dall'USB è di soli 500 mA al massimo, anche se sono collegati due servi, la scheda di controllo si riavvierà.. Pertanto, per l'alimentazione è necessario utilizzare un alimentatore regolato esterno.

Malinteso 2: Non tutte le larghezze degli impulsi dei servo sono comprese tra 150 e 600, → Questo è sbagliato. I servi analogici sono diversi dai servi digitali, è necessario consultare la scheda tecnica.

C'è un malinteso secondo cui 32 canali devono utilizzare 32 pin PWM, ma questo è sbagliato. Poiché il bus I2C richiede solo 2 fili, modificando l'indirizzo è possibile ottenere la funzione di espansione di 62 canali.

08Risorse e riferimenti autorevoli

Tutti i dati contenuti in questo articolo si basano sulle seguenti fonti verificabili:

Il capitolo 8 della versione 2015 di Philips Semiconductor della scheda tecnica del chip PCA9685 è etichettato "Frequenza e risoluzione PWM".

Nella documentazione ufficiale, la libreria di servoazionamenti PWM di Adafruit, la formula per il calcolo dell'ampiezza dell'impulso della funzione setPWMFreq() e la formula per il calcolo dell'ampiezza dell'impulso della funzione setPWM().

Lo standard industriale nel campo del controllo dello sterzo stabilisce che quando l'ampiezza dell'impulso del PWM a 50 Hz è compresa tra 0,5 ms e 2,5 ms, corrisponde all'angolo da 0° a 180°.

È possibile utilizzare il codice e lo schema elettrico sopra per produrre o insegnare direttamente. La combinazione della scheda di controllo YPMFG con Arduino è stata utilizzata con successo nei robot esapodi, nei bracci robotici a 32 assi e nei sistemi di illuminazione scenica. Se si riscontrano problemi durante l'esecuzione, fare nuovamente riferimento alla tabella di cablaggio nella Sezione 1 e all'elenco delle azioni nella Sezione 5. Il 95% degli errori sono causati da un errato cablaggio dell'alimentazione o I2C.

Tempo di aggiornamento: 29-04-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