My Blog

Latest blog
In the previous article we learned about IR remotes, how they work and how to decode signals of any IR remote. If you haven't checked it already, here is a link. I recommend you read it first to better understand this tutorial. 

In this tutorial we will see how to use the decoded values to turn devices on/off, for example LEDs. Here I will demonstrate it using two LEDs. So without wasting any more time, lets get started.


Now that everything is gathered, we can start with making the circuit on a breadboard.


IR automation, home automation, arduino project

Make the connections as in the image above. Similar to the precious tutorial the IR LED is connected to pin 2. The LEDs are connected to Pin 8 and 9. After making the connections we can upload the code and start controlling the LEDs.


Before you upload the code, First you need to install the IRremote library. To know how to do that, check out this tutorial. After the Library is installed you can refer the code given bellow:
int IRPIN = 2;  //Receiver Pin  
int Green = 8;  //Green LED
int Red = 9;  //Red LED

int flag1 = 0; //Indicates state of Green LED
int flag2 =0; //Indicates state of Red LED

IRrecv irrecv(IRPIN); //Reads the signals from receiver
decode_results results; //saves decoded results 

void setup()
    Serial.println("Enabling IRin");
    irrecv.enableIRIn(); //Starts receiving
    Serial.println("Enabled IRin");

    pinMode(Green, OUTPUT);
    pinMode(Red, OUTPUT);
    pinMode(Green, LOW); //Turns LEDs off by default
    pinMode(Red, LOW);

void loop()
      Serial.println(results.value, HEX);
      if(results.value==0xFD08F7) //If this code is received
        if(flag1 == 0) //If flag state is 0 (LED is off)
          digitalWrite(Green, HIGH); //turns LED on
          flag1 = 1; //Sets flag as 1
       else if(flag1 == 1) //if flag is 1 (LED is on)
         digitalWrite(Green,LOW); //Turns LED off
         flag1 = 0; //sets flag 0
       if(flag2 == 0)
         digitalWrite(Red, HIGH);
         flag2 = 1;
       else if(flag2 == 1)
          flag2 = 0;
     irrecv.resume(); //Ready to receive next data

In the code above we have used the codes generated by IR remote. The algorithm is fairly simple I recommend you check this tutorial to learn about the flags and how to use it.
Copy and upload this code using Arduino IDE.


After uploading the code you can start turning on off the LEDs using IR remote. 

I hope this tutorial was helpful and you can implement this in your projects like home automation. Just replace LED with Relays and you can turn on/off AC appliances.
Thats all for this tutorial, if you like it and want more feel free to follow/subscribe. 

In next tutorial we will make IR controlled Robot until then, keep experimenting ;)
IR technology is nothing new it has been around for quite a while now. These days you can find IR remotes controlling everything from TVs, Sound systems and Air conditioning systems to Toys, Home automation and much more. So its not a surprise to find some old IR remotes laying around in the house. Instead of throwing it away we can do much better things. Maybe automate our homes or build an IR controlled Robot car. But in order to do this first we must understand how this technology works.

In this article we will see how IR remotes works and how we can decode their signals for reusing. So without wasting anymore time, lets get right into it.

What is IR Technology:

First question that comes to mind is what is IR technology? IR stands for Infrared. It is a wavelength of light which is invisible to human eyes. IR wavelength ranges between 700nm-1mm, humans can only see light between 400nm-700nm. There are tons of applications for IR light which you can read about here. We will focus on IR for remote controls.

How IR Remotes Work:

In IR remotes, an infrared LED is used to transmit data (in form of pulses). This data is sent to the IR receiver on the receiving end (TV, toys, etc). The pulses are decoded by the receiver and the action is taken. The actions depend on the codes which differ based on the frequency of light emitted by the IR LED.

You can't see IR light with your naked eyes but there is a way to check how the LED sends data. For this you will need a TV remote and your smartphone. Just open your camera and look at the LED on the TV remote as you press a button.

ir remote, ir led

You will notice the LED flicker, the LED might seem solid on but its just flickering at a very high frequency. So to use the IR remote we must find out what code the buttons are sending via the LED. 


After you have everything we can start with setting up the IDE.

Setting up IDE & Uploading Code:

To decode the IR signals, we need to install a library in our IDE. To install this library follow the steps given bellow:
  • Open IDE and goto >> Tools >> Manage Libraries. A pop up windows should show up. Here enter "IRremte" and scroll down, next install IRremote by shirriff.
how to install library in arduino ide
  • After installing the library restart the IDE and write the following code:
#include <IRremote.h>

int IRPIN = 2;

IRrecv irrecv(IRPIN);

decode_results result;

void setup()
  Serial.println("Enabling IRin");
  Serial.println("Enabled IRin");

void loop()
  if (irrecv.decode(&result))
    Serial.println(result.value, HEX);

upload the code to arduino. Now lets make connections.


Before connecting the IR receiver to the arduino make sure you know the pin outs. To find the pinouts just enter the name/number of receiver along with pinouts in google for example: "1838 pinouts". It will show you the pins and its purpose. As in this example I have used a 1838 receiver. Here is a pin diagram:

1838 IR receiver

Now that we know the pinouts we can make the connections as shown in the image below:

IR receiver with arduino

Connect the Vcc to 3.3v, Gnd to Gnd and Signal to pin 2. Now we can start decoding the IR signals.

How to Use it?

So now we have a sensor connected to our Arduino and the code is uploaded. To decode a Remote first open the Serial monitor. To open serial monitor goto >> tools >> Serial Monitor. Opening the serial monitor will reset the board and now you can point the Remote at the receiver and press the button you want to decode.

Note down the Hex code generated for the buttons. We can use these codes for multiple projects like automation, remote controlled car etc. 

That's all for this project, now you can decode any IR remotes and reuse it for projects. Learn how to use these codes in next tutorial. Till then, keep experimenting.

If you like this tutorial and want to learn more, make sure you follow and share this article with your friends ;)

Contact Us

Contact With Us



Get in touch with us.

  • +91 7276861817