In questo progetto vediamo come utilizzare un ricevitore infrarossi (IR) e un semplice telecomando per controllare un LED RGB con Arduino.
Grazie alla libreria IRremote possiamo leggere i codici inviati dai pulsanti del telecomando ed associare ad ognuno un colore diverso.
Lista della spesa
Per realizzare questo progetto, avrai bisogno di:
- Breadoard
- Arduino UNO (o compatibile)
- Ricevitore IR
- LED RGB
- Telecomando IR (di qualsiasi tipo)
- 3 resistenze da 10 kΩ
- Cavi jumper (Dupont)
- Cavo USB
Schema di montaggio

Segui questa guida passo-passo:
- Posiziona la breadboard su un tavolo e collega il Power Rail – a GND di Arduino e quello + a VCC di Arduino (Se non sai come fare i collegamenti su una breadboard guarda questo video: https://www.youtube.com/watch?v=w4CLsFViD2w)
- LED RGB: ha tre piedini per i colori rosso, verde e blu, più il catodo comune (quello più lungo). Prima di collegare i piedini ai pin di Arduino, inserisci una resistenza da 10 kΩ tra ciascun piedino dei colori e il pin corrispondente. Collega quindi il catodo comune al Power Rail – (GND). Collega il piedino rosso al pin 13 (D13), il piedino blu al pin 11 (D11) e il piedino verde al pin 12 (D12) di Arduino. Fai attenzione che il LED ha questa sequenza di piedini: Rosso, catodo comune, Blu, Verde.
- Ricevitore IR: ha tre piedini. Quello centrale dev’essere collegato al Power Rail – (GND). L’ultimo deve essere collegato al al Power Rail + (VCC). Il primo (quello del segnale infrarosso ricevuto) deve essere collegato al pin 10 (D10) di Arduino.
Se non ti ritrovi con questa spiegazione in fondo al post c’è un video che spiega in maniera dettagliata tutti i passaggi.
Codice per LED RGB controllato dal telecomando IR
#include <IRremote.h>
void setup()
{
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
IrReceiver.begin(10);
}
void loop()
{
int cmd;
if(IrReceiver.decode()){
cmd = IrReceiver.decodedIRData.command;
Serial.println(cmd);
switch(cmd){
case 12:{
rgb(0,0,0);
break;
}
case 16:{
rgb(255,0,0);
break;
}
case 17:{
rgb(0,255,0);
break;
}
case 18:{
rgb(0,0,255);
break;
}
}
}
IrReceiver.resume();
}
void rgb(int red, int green, int blue){
analogWrite(13,red);
analogWrite(12,green);
analogWrite(11,blue);
}
- Con la libreria IRremote Arduino riceve i codici inviati dal telecomando.
- Ogni pressione di tasto corrisponde a un numero comando diverso (stampato sul monitor seriale).
- Con lo switch associamo ad ogni comando un colore del LED RGB: rosso, verde, blu oppure spento.
- La funzione
rgb()
gestisce le tre uscite PWM sui pin 13-12-11, variando l’intensità di ciascun colore.