Using an IR Remote and sensor with an Arduino

Got Questions? Click here and post them in the Brainy-Bits Forum to get help!


Using an IR Remote is a great way to have wireless control of your Arduino project.

Infrared remotes are simple and easy to use.  In this tutorial we will be connecting the IR receiver to the UNO, and then use a Library that was designed for this particular sensor. 

In our sketch we will have all the IR Hexadecimal codes that are available on this remote, we will also detect if the code was recognized and also if we are holding down a key.


Arduino with IR Remote Control Tutorial

There are 3 connections to the IR Receiver.


The connections are : Signal, Voltage and Ground.

The “-” is the Ground, “S” is signal, and middle pin is Voltage 5V.


First download the Library (link below) and extract it to your “Library” folder inside your IDE software, it should be named “IRremote”


Next we will move the “RobotIRremote” out of the Library folder, we do this because that library conflicts with the one we will be using.  You can just drag it back inside the library folder once you are done programming your microcontroller.


Once you have installed the Library, just go ahead and restart your IDE Software.


You can watch our Tutorial video to get more information.

#include "IRremote.h"

int receiver = 11; // Signal Pin of IR receiver to Arduino Digital Pin 11

/*-----( Declare objects )-----*/
IRrecv irrecv(receiver);     // create instance of 'irrecv'
decode_results results;      // create instance of 'decode_results'

void setup()   /*----( SETUP: RUNS ONCE )----*/
  Serial.println("IR Receiver Button Decode"); 
  irrecv.enableIRIn(); // Start the receiver

}/*--(end setup )---*/

void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
  if (irrecv.decode(&results)) // have we received an IR signal?

    irrecv.resume(); // receive the next value
}/* --(end main loop )-- */

/*-----( Function )-----*/
void translateIR() // takes action based on IR code received

// describing Remote IR codes 




  case 0xFF629D: Serial.println(" FORWARD"); break;
  case 0xFF22DD: Serial.println(" LEFT");    break;
  case 0xFF02FD: Serial.println(" -OK-");    break;
  case 0xFFC23D: Serial.println(" RIGHT");   break;
  case 0xFFA857: Serial.println(" REVERSE"); break;
  case 0xFF6897: Serial.println(" 1");    break;
  case 0xFF9867: Serial.println(" 2");    break;
  case 0xFFB04F: Serial.println(" 3");    break;
  case 0xFF30CF: Serial.println(" 4");    break;
  case 0xFF18E7: Serial.println(" 5");    break;
  case 0xFF7A85: Serial.println(" 6");    break;
  case 0xFF10EF: Serial.println(" 7");    break;
  case 0xFF38C7: Serial.println(" 8");    break;
  case 0xFF5AA5: Serial.println(" 9");    break;
  case 0xFF42BD: Serial.println(" *");    break;
  case 0xFF4AB5: Serial.println(" 0");    break;
  case 0xFF52AD: Serial.println(" #");    break;
  case 0xFFFFFFFF: Serial.println(" REPEAT");break;  

    Serial.println(" other button   ");

  }// End Case

  delay(500); // Do not get immediate repeat




Copy and paste the above code in the Arduino IDE to program your Arduino.


Used Libraries:

Download the IRremote created by Ken Shirriff here:


Once downloaded, just extract the content of the zip files inside your “arduino/libraries” folder.


Budvar - Jan 25, 2017

Hello, thank you for tutorial, but when I tried your code, there was an error
int RECV_PIN = TKD2; // the pin the IR receiver is connected to

Solution is add on first line of code
include / <— solved my problem

int receiver = 11;

SafeeDeen - Jan 25, 2017

Hello .
Does it work with any type of Remote Control sender
.,like nec protocol .?
thanks a lot.

Evan - Jan 25, 2017

i keep getting “other button” in serial monitor?

Carlos Cortez - Jan 25, 2017

Hi Brian. I’m using the same remote and the codes that you get, however, I don’t get the same results you get.
I tried with 2 different remotes and using the decoder I get different codes for the bottoms I pressed.
I need some light in this matter. Thank you Brian.

Got Questions? Click here and post them in the Brainy-Bits Forum to get help!

Leave a comment

Comments have to be approved before showing up