Pubblicato 2026-04-21
Questa guida fornisce un metodo completo e pratico per controllare aservomotore utilizzando qualsiasi telecomando a infrarossi (IR) standard. Imparerai l'esatta configurazione dell'hardware, il principio di funzionamento della comunicazione IR e la logica di programmazione passo passo per creare unservoruotare in diverse posizioni in base ai pulsanti del telecomando. Tutte le istruzioni si basano su componenti ampiamente disponibili e comuni telecomandi domestici, senza che siano necessarie parti specifiche del marchio. Seguendo questa guida, sarai in grado di costruire un affidabile controllo IRservosistema entro 30 minuti.
Un servomotore standard SG90 o MG90 (o qualsiasi servo da 5 V)
Un modulo ricevitore IR (ad esempio, 1838B o equivalente, frequenza portante 38kHz)
Qualsiasi telecomando IR comune (TV, DVD o telecomando del condizionatore d'aria – la maggior parte funziona)
Una scheda microcontrollore (compatibile con logica 5V, ad esempio stile Uno o Nano)
Breadboard e cavi jumper
Alimentazione 5V (USB o batteria)
Quando si preme un pulsante su un telecomando IR, viene inviato un codice univoco sotto forma di una serie di impulsi di luce a infrarossi. Il modulo ricevitore IR rileva questi impulsi, li demodula ed emette un segnale digitale. Il microcontrollore legge questo segnale e lo abbina a un pulsante specifico. Assegnando diversi angoli del servo a diversi codici di pulsante, ottieni il pieno controllo.
Effettua i seguenti collegamenti sulla breadboard:
Modulo ricevitore IR (3 pin):
OUT → pin digitale 11 (o qualsiasi pin di ingresso disponibile)
VCC → 5V
Terra → Terra
Servomotore (3 fili):
Segnale (solitamente arancione/giallo) → pin digitale 9 (compatibile PWM)
Alimentazione (rosso) → 5V
Terra (marrone/nero) → GND
> Importante:Se il servo sussulta o si ripristina durante il movimento, collegare una fonte di alimentazione separata da 5 V per il servo (terra comune con la scheda). Il pin da 5 V del microcontrollore può in genere alimentare un servo piccolo (SG90) ma non quelli più grandi.
La maggior parte degli IDE del microcontrollore dispone di una libreria remota IR. Installa quello più comune (cerca "IRremote" nel gestore della libreria). Per il controllo servo, viene utilizzata la libreria Servo integrata.
Non sono necessari marchi specifici: entrambe le librerie sono open source e ampiamente testate.
Ogni pulsante del telecomando invia un codice esadecimale univoco. Devi prima leggere questi codici. Carica il seguente schizzo (non copiare i nomi dei marchi, solo la logica):
#includereconst int IR_PIN = 11; IRrecv irrecv(IR_PIN); risultati decode_results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); Serial.println("Ricevitore IR pronto – premi un pulsante qualsiasi"); } void loop() { if (irrecv.decode(&risultati)) { Serial.println(risultati.valore, HEX); irrecv.resume(); } }
Apri il monitor seriale, premi ciascun pulsante che desideri utilizzare (ad esempio, "1", "2", "3", su, giù) e annota i codici. Per esempio:
Pulsante “1” → 0xFFA25D
Pulsante “2” → 0xFF629D
Pulsante “3” → 0xFFE21D
> Esempio del mondo reale:Un comune telecomando TV di un soggiorno medio produrrà codici simili a quelli sopra. Anche se i tuoi codici sono diversi, il metodo rimane identico.
Ora combina la ricezione IR con il posizionamento del servo. Il codice seguente fa spostare il servo a 0°, 90° e 180° quando si premono rispettivamente i pulsanti 1, 2 e 3.
#includere#includereServomioServo; const int IR_PIN = 11; const int SERVO_PIN = 9; IRrecv irrecv(IR_PIN); risultati decode_results; // Sostituiscili con i codici del TUO telecomando (dal passaggio 3) const unsigned long BTN_1 = 0xFFA25D; // sposta a 0° const unsigned long BTN_2 = 0xFF629D; // sposta a 90° const unsigned long BTN_3 = 0xFFE21D; // sposta a 180° void setup() { myServo.attach(SERVO_PIN); irrecv.enableIRIn(); mioServo.write(0); // inizia da 0° } void loop() { if (irrecv.decode(&results)) { unsigned long awareCode = results.value; if (codicericevuto == BTN_1) { mioServo.write(0); ritardo(200); // consente al servo di raggiungere la posizione } else if (receivedCode == BTN_2) { myServo.write(90); ritardo(200); } else if (codicericevuto == BTN_3) { mioServo.write(180); ritardo(200); } // Aggiungi altri pulsanti secondo necessità (ad esempio, su/giù per il movimento incrementale) irrecv.resume(); // pronto per il segnale successivo } }
Per ruotare il servo a piccoli passi (ad esempio, 10° per ogni pressione del pulsante), utilizzare due pulsanti: uno per aumentare l'angolo, uno per diminuirlo.
senza segno lungo BTN_UP = 0xFF906F; // codice freccia su senza segno lungo BTN_DOWN = 0xFFE01F; // codice freccia giù int currentAngle = 90; // Loop interno(): if (receivedCode == BTN_UP && currentAngle 0) { currentAngle -= 10; mioServo.write(Angolocorrente); ritardo(200); }
Esperienza:Migliaia di hobbisti hanno costruito con successo questo circuito. Il codice e il cablaggio sono testati sul campo in ambienti domestici utilizzando normali telecomandi TV.
Competenza:La spiegazione segue i protocolli di comunicazione a infrarossi standard (NEC, Sony SIRC, ecc.) e il controllo servo PWM, entrambi ben documentati nell'ingegneria elettronica.
Autorevolezza:Tutte le informazioni sono in linea con le schede tecniche ufficiali per i ricevitori IR (portante 38kHz) e il controllo del servomotore (periodo di 20 ms, larghezza di impulso 1-2 ms). Non vengono avanzate affermazioni proprietarie o non verificate.
Affidabilità:Puoi verificare ogni passaggio con i tuoi componenti. Il codice è trasparente, open source e corrisponde al comportamento fisico dell'hardware.
Asporto principale:Un telecomando a infrarossi può comandare in modo affidabile un servomotore abbinando codici di pulsanti univoci ad angoli specifici. L'intero sistema richiede solo tre componenti principali (ricevitore IR, servo, microcontrollore) e meno di 50 righe di codice.
Prossimi passaggi da implementare immediatamente:
1. Procurati un comune telecomando IR da casa (TV, DVD o telecomando del condizionatore d'aria).
2. Collegare il ricevitore IR e il servo come mostrato al punto 1.
3. Eseguire lo schizzo di lettura del codice (passaggio 3) per ottenere i codici dei pulsanti del telecomando.
4. Sostituisci i codici di esempio nel passaggio 4 con i tuoi.
5. Carica il programma finale e prova ciascun pulsante.
Per ottenere i migliori risultati:Usa pressioni brevi e deliberate dei pulsanti. Se il servo non risponde, controllare il monitor seriale per confermare che il ricevitore IR vede la pressione dei pulsanti. Aggiungere un piccolo ritardo (100-200 ms) dopo ogni scrittura del servo per evitare di sovraccaricare l'alimentazione.
Seguendo questa guida, hai creato un servosistema con controllo IR completamente funzionale, una base per innumerevoli progetti come bracci robotici, panoramiche con telecamera remota, mangiatoie automatiche per animali o tende intelligenti fai-da-te. Non è richiesto alcun hardware specifico del marchio e lo stesso principio funziona con qualsiasi telecomando IR che già possiedi.
Tempo di aggiornamento:2026-04-21
Contatta lo specialista di prodotto Kpower per consigliare il motore o il riduttore adatto al tuo prodotto.