Overview
In this lesson, we will use the remote IR receiver and the RGB to do an experiment - control the RGB LED by the infrared remote controller.
Components
- 1 * Arduino UNO
- 1 * USB Cable
- 1 * IR Receiver HX1838
- 1 * Remote Controller
- 1 * RGB LED
- 3* 220Ω Resistor
- 1 * Breadboard
- Several jumper wires
Principle
This experiment is to connect an RGB LED with a remote controller, and by programming the Arduino board, realize controlling the LED by the remote controller.
If you press a certain key except 0 on the remote controller, you will find the color of an RGB LED changed. When you press the key marked with 0, the RGB LED will be off.
Procedures
Step 1: Build the circuit

Step 2: Program
_32_control_a_RGB_LED_with_IR_remoter_controller.ino
/***********************************************************
File name: 32_control_a_RGB_LED_with_IR_remoter_controller.ino
Description: When you press the number buttons 0-9 on the
remote control, you will see the RGB LED emit
different colors of light.
Website: www.adeept.com
E-mail: support@adeept.com
Author: Tom
Date: 2015/05/02
***********************************************************/
#include <IRremote.h>
int RECV_PIN = 5;//The definition of the infrared receiver pin 5
int redPin = 11; // R petal on RGB LED module connected to digital pin 11
int greenPin = 10; // G petal on RGB LED module connected to digital pin 9
int bluePin = 9; // B petal on RGB LED module connected to digital pin 10
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(redPin, OUTPUT); // sets the redPin to be an output
pinMode(greenPin, OUTPUT); // sets the greenPin to be an output
pinMode(bluePin, OUTPUT); // sets the bluePin to be an output
irrecv.enableIRIn(); //Initialization infrared receiver
}
void loop()
{
if (irrecv.decode(&results)) {
if(results.value==0xC101E57B)//0
{
color(0,0,0); // turn the RGB LED off
}
if(results.value==0x9716BE3F)//1
{
color(255,0,0); // turn the RGB LED red
}
if(results.value==0x3D9AE3F7)//2
{
color(0,255,0); // turn the RGB LED green
}
if(results.value==0x6182021B)//3
{
color(0,0,255); // turn the RGB LED blue
}
if(results.value==0x8C22657B)//4
{
color(255,255,0); // turn the RGB LED yellow
}
if(results.value==0x488F3CBB)//5
{
color(255,255,255); // turn the RGB LED white
}
if(results.value==0x449E79F)//6
{
color(128,0,255); // turn the RGB LED purple
}
if(results.value==0x32C6FDF7)//7
{
color(30,128,255); // turn the RGB LED hermosa pink
}
if(results.value==0x1BC0157B)//8
{
color(0,128,128); // turn the RGB LED pale blue
}
if(results.value==0x3EC3FC1B)//9
{
color(128,0,128); // turn the RGB LED pink
}
irrecv.resume(); // Receiving the next value
}
}
void color (unsigned char red, unsigned char green, unsigned char blue)// the color generating function
{
analogWrite(redPin, 255-red); // PWM signal output
analogWrite(greenPin, 255-green); // PWM signal output
analogWrite(bluePin, 255-blue); // PWM signal output
}Step 3: Compile the program and upload to Arduino UNO board
Now press any key except 0 on the remote control and the color of the RGB LED will change; press key 0, then the LED will be turned off.
