Casa > Approfondimenti sul settore >BLDC
SUPPORTO TECNICO

Supporto al prodotto

Come controllare un servomotore utilizzando un telecomando a infrarossi (guida passo passo completa)

Pubblicato 2026-04-19

Questa guida fornisce una soluzione pratica e completa per il controllo di aservomotore utilizzando un telecomando a infrarossi (IR) standard. Seguendo i passaggi seguenti, sarai in grado di posizionare con precisione aservomotore premendo i pulsanti su qualsiasi telecomando IR comune (ad esempio, il telecomando di una TV o di un set-top box). Non sono richiesti componenti specifici del marchio e le istruzioni si basano su moduli ampiamente disponibili e a basso costo.

01Concetto di base e come funziona

Un telecomando IR emette impulsi di luce invisibile. Un ricevitore IR rileva questi impulsi e li converte in un codice digitale univoco per ciascun pulsante. Un microcontrollore legge questo codice e invia un segnale corrispondente di modulazione di larghezza di impulso (PWM).servomotore, impostando il suo albero ad un angolo specifico.

Scenario di esempio:Il pulsante “volume su” di un comune telecomando TV ruota un servo a 90° (ad esempio, aprendo un piccolo fermo), mentre “volume giù” lo riporta a 0°. Questo principio viene utilizzato nei bracci robotici fai-da-te, nelle mangiatoie automatiche per animali domestici e nei sistemi di brandeggio con telecamera telecomandati.

02Componenti richiesti (nessun marchio)

Componente Specifica tipica Quantità
Scheda microcontrollore Qualsiasi scheda comune (ad esempio, logica a 5 V, con uscita PWM) 1
Modulo ricevitore IR 1838B o equivalente (frequenza portante 38kHz) 1
Servomotore Servo analogico standard da 5 V (ad esempio, dimensioni SG90, 0°–180°) 1
telecomando IR Qualsiasi telecomando domestico (TV, DVD, condizionatore) 1
Cavi di collegamento Da maschio a femmina o da maschio a maschio 6–8
Alimentazione elettrica 5 V CC (USB o batteria) 1

Importante:La maggior parte dei servi assorbe una corrente significativa (200–500 mA). Non alimentare il servo direttamente dal pin 5V del microcontrollore se richiede più di 500 mA. Utilizzare un'alimentazione esterna da 5 V con terra comune.

03Collegamento elettrico (verificato e affidabile)

Collegare i componenti come segue. Questo cablaggio è stato testato con sistemi standard a 5 V.

Modulo ricevitore IR (guardando il lato piatto):

Pin sinistro: Segnale → Pin digitale 11 del microcontrollore (esempio)

Pin centrale: GND → Terra comune

Pin destro: VCC → uscita 5V

Servomotore:

Filo marrone/nero: GND → Terra comune

Filo rosso: 5 V → Alimentazione esterna 5 V (o microcontrollore 5 V solo per servi piccoli)

Filo arancione/giallo: Segnale → Pin 9 PWM del microcontrollore (esempio)

Terreno comune:Collega il GND dell'alimentatore esterno al GND del microcontrollore. Questo è obbligatorio per il funzionamento stabile.

04Procedura passo dopo passo

Passaggio 1: identificare i codici dei pulsanti del telecomando

Ogni telecomando IR invia codici diversi. Devi prima leggere i codici dal tuo telecomando specifico.

Caso tipico:Un telecomando TV Sony potrebbe inviare0x10per il pulsante "1", mentre un telecomando Samsung invia0x80. Il codice non è l'etichetta del pulsante: è un numero esadecimale univoco per la marca del pulsante + telecomando.

Azione:Carica un semplice schizzo del decodificatore IR (disponibile nelle librerie comuni come "IRremote") sul tuo microcontrollore. Apri il monitor seriale, premi ciascun pulsante che desideri utilizzare e annota i codici. Per esempio:

Freccia su →0xFF629D

Freccia giù →0xFFA857

OK/Seleziona →0xFF02FD

Passo 2: Mappare i codici dei pulsanti sugli angoli dei servi

Decidere quale pulsante sposta il servo a quale angolo. Gli angoli dei servi standard vanno da 0° a 180°.

Mappatura di esempio (utilizzando i codici del passaggio 1):

Pulsante0xFF629D→ Angolo del servo 0°

Pulsante0xFFA857→ Angolo del servo 90°

Pulsante0xFF02FD→ Angolo del servo 180°

Passaggio 3: scrivere il codice di controllo

Di seguito è riportato un esempio di codice generico che funziona con la popolare libreria IRremote (versione 3.x o successiva). SostituireREMOTE_CODE_1, REMOTE_CODE_2, ecc., con i codici effettivi del passaggio 1.

#includere#includereconst int IR_PIN = 11; const int SERVO_PIN = 9; IRrecv irrecv(IR_PIN); risultati decode_results; ServomioServo; // Sostituiscili con i codici effettivi del tuo telecomando (valori esadecimali del passaggio 1) const unsigned long CODE_ANGLE_0 = 0xFF629D; // ad esempio, pulsante Su const unsigned long CODE_ANGLE_90 = 0xFFA857; // ad esempio, pulsante Giù const unsigned long CODE_ANGLE_180 = 0xFF02FD; // ad esempio, pulsante OK void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Avvia il ricevitore IR myServo.attach(SERVO_PIN); mioServo.write(0); // Inizia da 0° Serial.println("Pronto. Premi i pulsanti sul telecomando."); } void loop() { if (irrecv.decode(&risultati)) { unsigned long ricevutoCodice = risultati.valore; Serial.print("Codice ricevuto: 0x"); Serial.println(codicericevuto, HEX); // Mappa il codice ricevuto sull'angolo del servo if (receivedCode == CODE_ANGLE_0) { myServo.write(0); Serial.println("Servo → 0°"); } else if (receivedCode == CODE_ANGLE_90) { myServo.write(90); Serial.println("Servo → 90°"); } else if (codicericevuto == CODICE_ANGOLO_180) { mioServo.write(180); Serial.println("Servo → 180°"); } else { Serial.println("Pulsante non mappato. Ignorato."); } irrecv.resume(); // Aspetta il segnale successivo } }

Nota:Se il telecomando utilizza un protocollo diverso (ad esempio NEC, Sony, RC5), la libreria lo rileva automaticamente. Il codice sopra funziona per la maggior parte dei telecomandi consumer.

Passaggio 4: test e calibrazione

1. Alimentare il circuito (alimentazione del servo esterno se necessario).

2. Aprire Monitor seriale a 9600 baud.

3. Premere un pulsante mappato: il servo dovrebbe spostarsi all'angolo preimpostato entro 0,5 secondi.

4. Se il servo trema o non si muove, controllare:

Collegamento a terra comune.

Capacità di alimentazione servo (minimo 500 mA per servi standard).

Il ricevitore IR non è esposto alla luce solare diretta o alla luce fluorescente (che causano interferenze).

05Problemi comuni e soluzioni (casi reali)

Problema Causa più probabile Correzione verificata
Il servo si muove in modo casuale quando non viene premuto alcun pulsante Il ricevitore IR rileva il rumore dalle luci o dallo schermo Schermare il ricevitore con nastro isolante nero o aggiungere un condensatore da 100 µF tra 5 V e GND vicino al ricevitore
Alcuni pulsanti funzionano, altri no Il telecomando invia un "codice di ripetizione" (ad esempio, 0xFFFFFFFF) per i pulsanti premuti Modifica il codice per ignorare i codici ripetuti:if (codicericevuto == 0xFFFFFFFF) ritorno;
Il servo si muove solo una volta e poi si ferma Calo di potenza del servo Utilizzare un alimentatore esterno da 5 V (consigliato 2 A) con un condensatore di grandi dimensioni (470 µF)
Nessun segnale rilevato Pin del ricevitore IR errato o libreria mancante Ricontrollare la connessione dei pin; installa l'ultima libreria IRremote da un repository attendibile

06Espansione del progetto (passi successivi attuabili)

Conclusione fondamentale ribadita:Un telecomando IR standard abbinato a un ricevitore IR a basso costo e un microcontrollore ti offre un servocontrollo wireless preciso senza alcun hardware proprietario.

Tre raccomandazioni attuabili per rafforzare la tua implementazione:

1. Aggiungi più servi:Utilizza una serie di oggetti servo e assegna pulsanti diversi a servi diversi. Ad esempio, il pulsante “1” controlla il servo A a 0°, il pulsante “2” controlla il servo B a 45°.

2. Implementare un movimento fluido:Sostituireservo.write(angolo)con un ciclo che incrementa l'angolo passo dopo passo (ad esempio, dall'angolo corrente all'angolo target con incrementi di 1° con ritardo di 15 ms). Questo crea un movimento professionale e graduale.

3. Memorizza le mappature dei pulsanti nella EEPROM:Scrivi una piccola routine di calibrazione che ti consenta di apprendere nuovi pulsanti senza ricaricare il codice. Ciò è particolarmente utile se perdi il telecomando originale e passi a un'altra marca.

Verifica finale:Prima di implementare il progetto in un'applicazione reale (ad esempio, chiusura della porta telecomandata o pinza robot), testare la pressione di tutti i pulsanti almeno 50 volte ciascuna. I segnali IR possono essere bloccati da oggetti o luce intensa: includere sempre un indicatore visivo (ad esempio, un LED che lampeggia quando viene ricevuto un codice) per confermare che il sistema funziona.

Tempo di aggiornamento: 2026-04-19

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
+86 0769 8399 3238
 
kpowerMap