Picture of Control your Arduino with a remote
Wondering about how to control anything in your house with a simple remote control? It's pretty simple and cheap.

Step 1: Collect stuff

Picture of Collect stuff
Here is what you will need:

- Arduino (I use UNO)
- Solderless breadboard
- An infrared receiver
- Solderless wires
- Any kind of remote control
1-40 of 51Next »
makeosaurus1 month ago

For some reason its trying to read from the RobotIRremote library. Should I delete or move the folder as i am using an UNO?

Here are my errors:

Arduino: 1.6.5 (Windows 7), Board: "Arduino Uno"

C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:1: error: missing terminating " character

int RECV_PIN = TDK2"; // the pin the IR receiver is connected to


C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: 'TDK2' was not declared in this scope

int RECV_PIN = TDK2"; // the pin the IR receiver is connected to


C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp: In function 'void beginIRremote()':

C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:10:2: error: 'irrecv' was not declared in this scope

irrecv.enableIRIn(); // Start the receiver


C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp: In function 'bool IRrecived()':

C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:14:9: error: 'irrecv' was not declared in this scope

return irrecv.decode(&results);


C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp: In function 'void resumeIRremote()':

C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:18:5: error: 'irrecv' was not declared in this scope

irrecv.resume(); // resume receiver


Error compiling.

This report would have more information with

"Show verbose output during compilation"

enabled in File > Preferences.

I have deleted it and now it says there is no IRremote.h but there is!!

CooperG3 months ago

in expansion of macro 'HEX'
Error compiling.


expected unqualified-id before numeric constant
#define HEX 16

are causing me problems

tashvin1 year ago
hi please help me i already had all the codes for the IR
what if i want to light 2 leds with the IR? which connections should i make? am new please hlep :(
Vel0ceD3v tashvin4 months ago

I think you'll have to take two (or four) button's readings and apply them to two different LEDs.

Something like:

switch(results.value) {

case 1:



case 2:



case 3:



case 4:




universallvr5 months ago

IRrecvDemo.ino:9:22: fatal error: IRremote.h: No such file or directory
compilation terminated.

Maybe the IR library isn't present on your PC. Try downloading it from here: http://arcfn.com/files/IRremote.zip (from the tutorial).

After downloading it, open your IDE, click on "Sketch", click on "Import Library...", click on "Add Library", and finally, browse for your library.

antley5 months ago

I did make it! But I have no image. Awesome job! you have the most simple way to solve this problem of Remote Controlling projects, and it only requires 1 pin!

OnePiece0039.7 months ago

im receiving this error?

C:\Program Files\Arduino\libraries\IRremote\IRremote.cpp:529: error: 'volatile struct irparams_t' has no member named 'rawlen'

how did you fix it?

already fixed it

Awesome! Thank you so much for this. You are very smart, and thank you for making this.

Hi, I do not get anything in the serial monitor

hi, thanks for you work

i switch, when i press 0 for example


case 16738455:




i want it to print 0, but it loops forever, can you help me?

Kamokaki1 year ago

hi im trying to controll my arduino to move a servo.

Could you help me put in the code?

The controll gives off the infrared as i press left: FF22DD and right FFC23D. Please help me figure this out.

#include <Servo.h>
#include <IRremote.h>

unsigned long Value1 = 0xFF22DD; // where XXXXXXXX is on our your remote's values
unsigned long Value2 = 0xFFC23D; // where XXXXXXXX is another button on your remote

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

Servo servo1;

// the setup routine runs once when you press reset:
void setup() {

irrecv.enableIRIn(); // Start the receiver

// initialize the digital pin as an output.

servo1.attach(10); // attack servo to digital pin 10

// the loop routine runs over and over again forever:
void loop() {

if (irrecv.decode(&results)) {

Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value

if(results.value == Value1) {
else if (results.value == Value2){

vek112 years ago
Whenever I plug my Arduino(with the IR receiver), it always turns off as soon as I plug it into the computer. Any advice?
(btw, my arduino works fine with anything else plugged into it.)
hello I get this ' IRrevc' does not name a type
jukees2 years ago
lidl remote FTW :D
I hade a small white IR receiver with only 2 leads. Would this work?
dmiller372 years ago
Excellent tutorial, very helpful. I have a quick question, what is the best way to deal with on/off of the same button. Since each button has two keys, i thought I could use them to turn on and off. it works, but the timing is an issue since the other key comes quickly after the first. What is the best way to deal with it?

I tried: (but the button pressing has to be timed perfectly)
case key1:
digitalWrite(LED, HIGH);

case key2:
digitalWrite(LED, LOW);

I have done this before, but I did it with pins so I could check the current state of the pin and then decide whether or not to make it on or off. The way I did this in an Instructable of mine was

switch (results.value)
case (blahblah)
if (digitalRead(pin) == LOW)
digitalWrite(pin, HIGH);
digitalWrite(pin, LOW);

If you have multiple pins to check, just make it a function, call it for each case and pass in the pin number. Hope this helped.
lawand42 years ago
help when i upload it marks that IRrecv irrecv(RECV_PIN); and says does not name the type
LexanPanda3 years ago
Which IR receiver did you use?
phorvath92 (author)  LexanPanda3 years ago
I don't know the type because I soldered it out maybe from an old dvd player but I'm not sure. I think it works on 38kHz.
Sparkfun has a great one for $1.95
the seaker3 years ago
Okay so i have a problem. I have already been able to get the ir codes from the remote that i wish to us but it will send something like this:
so the code is actually being send 5 times then another 3 are the end code. but sometimes if i press the button again the first number will either send 4 or 6 times. im not sure how to filter out the codes because if i just look for say 4035 it will repeat 4 to 6 times... um please if any one has an idea please help
Try an unsigned long so that in your program it looks like


unsigned long someValue = 0xXXXXXXXX; // where XXXXXXXX is on our your remote's values.

void loop(){

if(results.value == someValue) {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second

make a method that catches the first time that you receive the signal. then tell it to ignore the rest until you recieve the 2553 signal... something like this:

boolean ignore=false;

void setup(){

void loop(){
int sig= ;
//set your input here, sending your input to the to sig.
if (!ignore&&sig==4035)doSomething();
else ignore==true;

go4th5572 years ago
Mine shows zeroes no matter what button I push on any remote.
roachburn3 years ago
How would i use the case function to turn on an led. What I want to do is have the led turn High as long as I hold the button and go low when I release. The problem though is that there are 2 codes for every button on my remote. I press it once and it gives 458. then if I press it again it gives 10458. If I hold the button down It spams the one code and If i release then hold it down again it spams the other code.
pikmin2053 years ago
I've been receiving error codes saying "error: 'EE008FC9' was not declared in this scope", how do i fix this? (BTW, EE008FC9 is a remote key code)
phorvath92 (author)  pikmin2053 years ago
put it in decimal :)
new error: `.' cannot appear in a constant-expression
nvm fixed that now its expected ';' before break
Bot13983 years ago
Is that the original arduino UNO
phorvath92 (author)  Bot13983 years ago
No, probably it is not. But it is fully functional as well as the original.
I thought of it cause the power light in the original UNO is green and not blue
roachburn3 years ago
How come i get two different codes for each button. For example I press 1 on the remote I get 1025 then if i press it again i get 66561. If i hold it down it just repeats the same number. Every button does this.
i am having problems with the IRremote everytime i goto compile it i get errors lots of em
phorvath92 (author)  oldsmarracin3 years ago
What errors does it write?
1-40 of 51Next »