How To Set Up An IR Remote and Receiver On An Arduino - Circuit Basics
How To Set Up An IR Remote and Receiver On An Arduino - Circuit Basics
By Krishna Pattabiraman
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 1/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
There are plenty of interesting Arduino projects that use IR communication too. With
a simple IR transmitter and receiver, you can make remote controlled robots,
distance sensors, heart rate monitors, DSLR camera remote controls, TV remote
controls, and lots more.
In this tutorial I’ll first explain what infrared is and how it works. Then I’ll show you
how to set up an IR receiver and remote on an Arduino. I’ll also show you how to use
virtually any IR remote (like the one for your TV) to control things connected to the
Arduino.
BONUS: I made a quick start guide for this tutorial that you can download and go
back to later if you can’t set this up right now. It covers all of the steps, diagrams,
and code you need to get started.
The 3-in-1 Smart Car and IOT Learning Kit from SunFounder has everything you
need to learn how to master the Arduino. It includes all of the parts, wiring
diagrams, code, and step-by-step instructions for 58 different robotics and internet
of things projects that are super fun to build!
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 2/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
PCBCart
High quality with IPC class 3, Fine pitch like LCC, BGA & QFN,
pcbcart.com
What is Infrared?
Infrared radiation is a form of light similar to the light we see all around us. The only
difference between IR light and visible light is the frequency and wavelength. Infrared
radiation lies outside the range of visible light, so humans can’t see it:
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 3/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
The same type of LED is used in IR transmitter breakout boards for the Arduino. You
can see it at the front of this Keyes IR transmitter:
The IR receiver is a photodiode and pre-amplifier that converts the IR light into an
electrical signal. IR receiver diodes typically look like this:
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 4/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 5/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
IR Signal Modulation
IR light is emitted by the sun, light bulbs, and anything else that produces heat. That
means there is a lot of IR light noise all around us. To prevent this noise from
interfering with the IR signal, a signal modulation technique is used.
PCBCart
High quality with IPC class 3, Fine pitch like LCC, BGA & QFN,
pcbcart.com
The modulated IR signal is a series of IR light pulses switched on and off at a high
frequency known as the carrier frequency. The carrier frequency used by most
transmitters is 38 kHz, because it is rare in nature and thus can be distinguished
from ambient noise. This way the IR receiver will know that the 38 kHz signal was
sent from the transmitter and not picked up from the surrounding environment.
The receiver diode detects all frequencies of IR light, but it has a band-pass filter and
only lets through IR at 38 kHz. It then amplifies the modulated signal with a pre-
amplifier and converts it to a binary signal before sending it to a microcontroller.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 6/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
PCBCart
High quality with IPC class 3, Fine pitch like LCC, BGA & QFN,
pcbcart.com
IR Transmission Protocols
The NEC protocol is also the most common type in Arduino projects, so I’ll use it as
an example to show you how the receiver converts the modulated IR signal to a
binary one.
Logical ‘1’ starts with a 562.5 µs long HIGH pulse of 38 kHz IR followed by a 1,687.5
µs long LOW pulse. Logical ‘0’ is transmitted with a 562.5 µs long HIGH pulse
followed by a 562.5 µs long LOW pulse:
This is how the NEC protocol encodes and decodes the binary data into a modulated
signal. Other protocols differ only in the duration of the individual HIGH and LOW
pulses.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 7/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
IR Codes
Each time you press a button on the remote control, a unique hexadecimal code is
generated. This is the information that is modulated and sent over IR to the receiver.
In order to decipher which key is pressed, the receiving microcontroller needs to
know which code corresponds to each key on the remote.
PCBCart
High quality with IPC class 3, Fine pitch like LCC, BGA & QFN,
pcbcart.com
Different remotes send different codes for the keypresses, so you’ll need to
determine the code generated for each key on your particular remote. If you can find
the datasheet, the IR key codes should be listed. If not though, there is a simple
Arduino sketch that will read most of the popular remote controls and print the
hexadecimal codes to the serial monitor when you press a key. I’ll show you how to
set that up in a minute, but first we need to connect the receiver to the Arduino…
Lets get started with the hardware connections. The pin layout on most breakout
boards looks like this:
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 8/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
To connect a breakout board mounted IR receiver, hook it up to the Arduino like this:
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 9/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
PCBCart
High quality with IPC class 3, Fine pitch like LCC, BGA & QFN,
pcbcart.com
We’ll be using the IRremote library for all of the code examples below. You can
download a ZIP file of the library from here.
To install the library from the ZIP file, open up the Arduino IDE, then go to Sketch >
Include Library > Add .ZIP Library, then select the IRremote ZIP file that you
downloaded from the link above.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 10/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
To find the key codes for your remote control, upload this code to your Arduino and
open the serial monitor:
PCBCart
High quality with IPC class 3, Fine pitch like LCC, BGA & QFN,
pcbcart.com
#include <IRremote.h>
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
irrecv.resume();
}
}
Now press each key on your remote and record the hexadecimal code printed for
each key press.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 11/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Using the program above, I derived a table of keys and their corresponding codes
from the remote that came with my HX1838 IR receiver and remote set. Note that
you will receive a 0XFFFFFFFF code when you press a key continuously.
Key Code
CH- 0xFFA25D
CH 0xFF629D
CH+ 0xFFE21D
<< 0xFF22DD
>> 0xFF02FD
>|| 0xFFC23D
– 0xFFE01F
+ 0xFFA857
EQ 0xFF906F
100+ 0xFF9867
200+ 0xFFB04F
0 0XFF6897
1 0xFF30CF
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 12/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
2 0xFF18E7
3 0xFF7A85
4 0xFF10EF
5 0xFF38C7
6 0xFF5AA5
7 0xFF42BD
8 0xFF4AB5
9 0xFF52AD
Knowing which protocol your remote uses can be useful if you want to work on some
more advanced projects. Or you might just be curious. The program below
will identify the protocol used by your remote. It should even work on most of the
remote controls around your house.
#include <IRremote.h>
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
Serial.println(results.value, HEX);
switch (results.decode_type){
case NEC: Serial.println("NEC"); break ;
case SONY: Serial.println("SONY"); break ;
case RC5: Serial.println("RC5"); break ;
case RC6: Serial.println("RC6"); break ;
case DISH: Serial.println("DISH"); break ;
case SHARP: Serial.println("SHARP"); break ;
case JVC: Serial.println("JVC"); break ;
case SANYO: Serial.println("SANYO"); break ;
case MITSUBISHI: Serial.println("MITSUBISHI"); break
;
case SAMSUNG: Serial.println("SAMSUNG"); break ;
case LG: Serial.println("LG"); break ;
case WHYNTER: Serial.println("WHYNTER"); break ;
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 13/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
case AIWA_RC_T501: Serial.println("AIWA_RC_T501");
break ;
case PANASONIC: Serial.println("PANASONIC"); break ;
case DENON: Serial.println("DENON"); break ;
default:
case UNKNOWN: Serial.println("UNKNOWN"); break ;
}
irrecv.resume();
}
}
I extended the code above to print the key value instead of the hexadecimal code:
#include <IRremote.h>
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
if (results.value == 0XFFFFFFFF)
results.value = key_value;
switch(results.value){
case 0xFFA25D:
Serial.println("CH-");
break;
case 0xFF629D:
Serial.println("CH");
break;
case 0xFFE21D:
Serial.println("CH+");
break;
case 0xFF22DD:
Serial.println("|<<");
break;
case 0xFF02FD:
Serial.println(">>|");
break ;
case 0xFFC23D:
Serial.println(">|");
break ;
case 0xFFE01F:
Serial.println("-");
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 14/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
break ;
case 0xFFA857:
Serial.println("+");
break ;
case 0xFF906F:
Serial.println("EQ");
break ;
case 0xFF6897:
Serial.println("0");
break ;
case 0xFF9867:
Serial.println("100+");
break ;
case 0xFFB04F:
Serial.println("200+");
break ;
case 0xFF30CF:
Serial.println("1");
break ;
case 0xFF18E7:
Serial.println("2");
break ;
case 0xFF7A85:
Serial.println("3");
break ;
case 0xFF10EF:
Serial.println("4");
break ;
case 0xFF38C7:
Serial.println("5");
break ;
case 0xFF5AA5:
Serial.println("6");
break ;
case 0xFF42BD:
Serial.println("7");
break ;
case 0xFF4AB5:
Serial.println("8");
break ;
case 0xFF52AD:
Serial.println("9");
break ;
}
key_value = results.value;
irrecv.resume();
}
}
If your remote sends different codes than the ones in the table above, just replace
the hex code in each line where it says:
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 15/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
PCBCart
High quality with IPC class 3, Fine pitch like LCC, BGA & QFN,
pcbcart.com
case 0xFFA25D:
Serial.println(“CH-“);
In these lines, when the hex code 0xFFA25D is received, the Arduino prints “CH-“.
For any IR communication using the IRremote library, first we need to create an
object called irrecv and specify the pin number where the IR receiver is connected
(line 3). This object will take care of the protocol and processing of the information
from the receiver.
The next step is to create an object called results, from the decode_results class,
which will be used by the irrecv object to share the decoded information with our
application (line 5).
In the void setup() block, first we configure the serial monitor baud rate. Next we
start the IR receiver by calling the IRrecv member function enableIRIn() (line 10).
The irrecv.blink13(true) function on line 11 will blink the Arduino’s on board LED
every time the receiver gets a signal from the remote control, which is useful for
debugging.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 16/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
IT Ticket System
ManageEngine
In the void loop() block, the function irrecv.decode will return true if a code is
received and the program will execute the code in the if statement. The received
code is stored in results.value. Then I used a switch to handle each IR code and
print the corresponding key value.
if (results.value == 0XFFFFFFFF)
results.value = key_value;
key_value = results.value;
When you receive a repeat pattern, then the previously stored value is used as the
current key press.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 17/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
IT Ticket System
ManageEngine
At the end of the void loop() section, we call irrecv.resume() to reset the receiver
and prepare it to receive the next code.
The resistor sets the LCD’s backlight brightness. It can be anything from 200 ohms
to about 2K ohms. The potentiometer sets the character contrast. I normally use a
10K ohm potentiometer for this one.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 18/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
#include <IRremote.h>
#include <LiquidCrystal.h>
void setup(){
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
lcd.begin(16, 2);
}
void loop(){
if (irrecv.decode(&results)){
if (results.value == 0XFFFFFFFF)
results.value = key_value;
lcd.setCursor(0, 0);
lcd.clear();
switch(results.value){
case 0xFFA25D:
lcd.print("CH-");
break;
case 0xFF629D:
lcd.print("CH");
break;
case 0xFFE21D:
lcd.print("CH+");
break;
case 0xFF22DD:
lcd.print("|<<");
break;
case 0xFF02FD:
lcd.print(">>|");
break ;
case 0xFFC23D:
lcd.print(">|");
break ;
case 0xFFE01F:
lcd.print("-");
break ;
case 0xFFA857:
lcd.print("+");
break ;
case 0xFF906F:
lcd.print("EQ");
break ;
case 0xFF6897:
lcd.print("0");
break ;
case 0xFF9867:
lcd.print("100+");
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 19/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
break ;
case 0xFFB04F:
lcd.print("200+");
break ;
case 0xFF30CF:
lcd.print("1");
break ;
case 0xFF18E7:
lcd.print("2");
break ;
case 0xFF7A85:
lcd.print("3");
break ;
case 0xFF10EF:
lcd.print("4");
break ;
case 0xFF38C7:
lcd.print("5");
break ;
case 0xFF5AA5:
lcd.print("6");
break ;
case 0xFF42BD:
lcd.print("7");
break ;
case 0xFF4AB5:
lcd.print("8");
break ;
case 0xFF52AD:
lcd.print("9");
break ;
}
key_value = results.value;
irrecv.resume();
}
}
Again, if the hex codes don’t match the codes output by your remote, just replace
them for each character where it says case 0xXXXXXXXX;.
IT Ticket System
ManageEngine
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 20/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
The example circuit has the IR receiver connected to the Arduino, with a red LED
connected to pin 10 and a green LED connected to pin 11:
The code below will write digital pin 10 HIGH for 2 seconds when the “5” button is
pressed, and write digital pin 11 HIGH for 2 seconds when the “2” button is pressed:
#include <IRremote.h>
void setup(){
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop(){
if (irrecv.decode(&results)){
switch(results.value){
case 0xFF38C7: //Keypad button "5"
digitalWrite(redPin, HIGH);
delay(2000);
digitalWrite(redPin, LOW);
}
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 21/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
switch(results.value){
case 0xFF18E7: //Keypad button "2"
digitalWrite(greenPin, HIGH);
delay(2000);
digitalWrite(greenPin, LOW);
}
irrecv.resume();
}
}
So far we have covered the properties of infrared radiation and how communication
happens between the transmitter and receiver. We saw how to identify the IR key
codes for a given remote control. We learned how to display key presses on serial
monitor and on an LCD screen. Finally I showed you how to control the Arduino’s
output with the remote. Have fun playing with this and be sure to let us know in the
comments if you have any questions or trouble setting this up!
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 22/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Related Posts
Leave a Comment
Your email address will not be published. Required fields are marked *
Write a comment...
Name*
Email*
Post Comment
Thank you.
A well presented, informative and useful overview including specific examples for
implementation. Bravo.
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 24/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Judith says:
April 12, 2022 at 10:57 am
Thank you this was really helpful. I thought the store where I bought my
kits from tempered with my components because my IR receiver didn’t
have a board. But now I now it can actually come without a board. Thank
you
Reply
A very well written and informative article. One thing I would have liked to learn more
about is how to choose the IR emitter and receiver. My local store stocks several
options of each, does it matter which one I choose?
https://www.fabian.com.mt/en/products/webshop/bycategory/843/name/asc/18/1/infrared–
uv-emitters-and-receivers.htm
Reply
Stan says:
November 3, 2017 at 3:26 pm
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 25/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Shekhar says:
November 17, 2017 at 11:03 am
Reply
Sajjad says:
December 12, 2017 at 6:06 pm
Hello hope that you all are fine. my Ir reciever giving me continous values on serial
moniter although i am sending no signals to it. kindly reply.
Thanks
Reply
anonymous says:
March 22, 2019 at 5:37 pm
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 26/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
i’m 2 years too late, but you don’t need to type anything in the monitor
Reply
AHHH says:
June 26, 2025 at 1:13 am
Reply
hi my receiver gets as hot as the sun and it does not give me any
values can you help me
Reply
SE says:
November 4, 2021 at 10:16 am
Reply
Stup says:
September 18, 2024 at 7:16 am
Reply
Hi, please i try loading the code on uno and nano board this is the error message (
Build options changed, rebuilding all
C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16:
error: ‘TKD2’ was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 27/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
exit status 1
Error compiling for board Arduino/Genuino Uno.
)
please what should i do , thanks in advance
Reply
Saviour says:
December 26, 2019 at 1:29 am
Hi I’m Savvy I faced the same error too so I installed the IRremote library
folder into my Arduino library and it worked the link is above
Reply
Tom says:
October 25, 2018 at 4:28 pm
Hi, late but hopefully still helpful, if not for you maybe for somebody else.
This error-message occurs when you’re using the “Robot IR Remote”
library instead of the “IRremote” library, which you would first have to
import, either by using the buildt-in feature of the Arduino-IDE, or by
downloading a ZIP-archive.
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 28/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Sunil says:
August 31, 2018 at 8:28 pm
How to remove receiving NEC repeat code. From my remote control it always display
0xFFFFFFFF but when i presses key fast at once it display correct value like
18E7E817 so how to turn off receiving repeat code. Please help.
Reply
If you have problems like “error: ‘TKD2’ was not declared in this scope – int
RECV_PIN = TKD2; // the pin the IR receiver is connected to” just remove the
“RobotIRremote” default library and install the “Arduino-IRremote-master”. Then
rename the folder “Arduino-IRremote-master” in “IRremote”. That’s all.
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 29/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
medo says:
October 20, 2018 at 7:08 pm
hi,
i connected atmega 328 ic with 4 relayes. really, i made that using two cycles one for
the ic and the ir receiver. the cycle was supported using 5v (2 amp) adapter.
The other cycle contained 4 relayes, each one have 1 daiods and 574 transistor. this
cycle was supported using 5v (1 amp) adapter.
those cycles were conected from (a)- cathode (b)- the ic’s output pins to the
transistors.
the target was to open/close each relay by lg-tv remote control. the cycle work very
will through 1 hour from starting point, but after that it hang and not receive the
signals.
um looking forward to hearing from you, why this problem is happened.
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 30/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
hi there,
for some reason the program never finishes uploading onto my uno. The program
verifies properly and I see some on the memory usage figures but it just never
finishes. Any ideas?
Reply
Colin says:
December 17, 2018 at 9:36 pm
Reply
Colin says:
December 17, 2018 at 9:38 pm
Its working now! Sorry, I turned on serial monitor in arduino and it started
to work. Coincidence?
Thanks:)
Reply
Andreas says:
December 22, 2018 at 9:09 pm
Thx helped me out a lot with my project. Clearly structured and nice to read. Worked
like a charm
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 31/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Hi,
I have been looking for an understandable explanation how to use a IR receiver with
Arduino for a while.
Your explanation is the first that is simple and understandable for a beginner.
Thanks to put such good quality information on this site.
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 32/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Reply
Reply
ioan says:
February 2, 2019 at 12:55 pm
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 33/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
My 3 IR receivers are always blinking even before I add the code, and aren’t
receiving any data sent from a functional RGB remote controller.
Please, can someone help me?
Reply
Reply
saket says:
February 25, 2019 at 5:40 pm
when i try to get the codes for my remote after clicking the serial moniter it
automatically starts giving the values why??
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 34/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Iam building a hand gesture based remote using the ultrasonic sensor.I want to
control a music player which already has a remote can anybody help with writting the
code.My project is the modification of https://www.instructables.com/id/Ultrasonic-
gesture-based-TV-remote-control/
Reply
S.Keerthy says:
April 4, 2019 at 6:25 am
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 35/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 36/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Serial.println(“0”);
break ;
case 1FE10EF:
Serial.println(“RPT”);
break ;
case 1FE906F:
Serial.println(“U/SD”);
break ;
case 1FE50AF:
Serial.println(“1”);
break ;
case 1FED827:
Serial.println(“2”);
break ;
case 1FEF807:
Serial.println(“3”);
break ;
case 1FE30CF:
Serial.println(“4”);
break ;
case 1FEB04F:
Serial.println(“5”);
break ;
case 1FE708F:
Serial.println(“6”);
break ;
case 1FE00FF:
Serial.println(“7”);
break ;
case 1FEF00F:
Serial.println(“8”);
break ;
case 1FE9867:
Serial.println(“9”);
break ;
}
key_value = results.value;
irrecv.resume();
}
}
And the error says that:
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 37/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
exit status 1
‘IFEFFFFFFFF’ was not declared in this scope
Help me to rectify my mistakes as fast as you can!!!
Reply
hi Keerthi , i think the code in your serial monitor is hexa decimal it should
change to decimal (hexadecimal to decimal conversion.online converter is
available on google.just copy and paste the hexa decimal code in
converter and then convert it.copy the converted code and replace that
code in your arduino program)…100% working. i already made this..it is
useful simple program
Reply
sarath says:
August 3, 2019 at 12:22 pm
Thanks for the tip.Me also faced same issue but now rectified.
Reply
Sergei says:
April 22, 2019 at 7:58 pm
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 38/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Joseph T says:
June 3, 2019 at 2:04 am
Reply
Very cool!
I would suggest a tutorial to control a led matrix, 8×32, for example, (4 in 1) with this
same procedure;
Thank you
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 39/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Reply
Paul R says:
August 23, 2019 at 3:20 am
I find that I often see “FFFFFFFF” when I use some of your code. I added this IF
statement around the print statements to omit that:
if(results.value != 4294967295){ // decimal equivalent to 0XFFFFFFFF
ORIGINAL Serial.println OR lcd.print LINE
}
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 40/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Joel says:
September 15, 2019 at 10:33 pm
my code error says IRremote.h: No such file or directory can you help me out?
Reply
TITO says:
October 25, 2020 at 2:59 am
iNSTALL LIBRRARY
https://www.arduinolibraries.info/libraries/i-rremote
Reply
Mr Wolf says:
October 16, 2019 at 8:27 pm
Hi, just want to make you my compliments: great turorial, very well explained.
Thanks!
Reply
Gary says:
December 6, 2019 at 2:57 am
Thank you so much for this tutorial. It was clear, concise, and the examples worked.
I had loaded IRrecvDumpV2 into my project, got all needed codes, but could not
figure out how to use them to control a homemade arduino robot. Nothing I tried on
my own worked.
The IRrecvDumpV2 instructions were saved into the example directories, and was
123 pages long. The doc seemed to be musings of folks who truely live in an
embedded world, and went deep into the artistry and wonderment of their
cleverness.
Thank you for helping me see the light. These 2 lines are what significantly helped
me move forward with my project.
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 41/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
if (results.value == 0XFFFFFFFF)
results.value = key_value;
Thank you, thank you, thank you
Reply
Jean says:
December 27, 2019 at 8:18 pm
Reply
Avanish says:
July 15, 2020 at 4:12 pm
Reply
Dear sir,
In the scheme ‘Using the IR Remote to Control Things’ the two resistors are
connected to the anode. They should be connected to the kathode-side(ground), as I
found out.
Thanks for this great tutorial!
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 42/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Kind regards,
Jan Speyer, the Netherlands
Reply
I also found out that on my breadboard the ‘+’ is on the left and the ‘-‘ on the right.
Sorry for my comment:-)
Reply
alfredo says:
February 18, 2020 at 10:50 pm
Reply
Harold says:
September 25, 2020 at 5:05 pm
I am getting this error Message ? This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 2000), Board: “Arduino Uno”
In file included from sketch_sep25j.ino:1:
C:\Documents and Settings\HAC\My Documents\Arduino\libraries\Arduino-IRremote-
2.6.1\src/IRremote.h:486: error: ISO C++ forbids initialization of member ‘sendPin’
C:\Documents and Settings\HAC\My Documents\Arduino\libraries\Arduino-IRremote-
2.6.1\src/IRremote.h:486: error: making ‘sendPin’ static
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 43/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Harold says:
September 25, 2020 at 5:06 pm
I am Getting this error ? This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 2000), Board: “Arduino Uno”
In file included from sketch_sep25j.ino:1:
C:\Documents and Settings\HAC\My Documents\Arduino\libraries\Arduino-IRremote-
2.6.1\src/IRremote.h:486: error: ISO C++ forbids initialization of member ‘sendPin’
C:\Documents and Settings\HAC\My Documents\Arduino\libraries\Arduino-IRremote-
2.6.1\src/IRremote.h:486: error: making ‘sendPin’ static
Reply
Volker says:
September 29, 2020 at 12:56 pm
Reply
Alex says:
November 14, 2020 at 12:37 pm
Hello,
I’m trying to copy a remote controller of which I have the schematics, but not the
parts.
It seems that it’s using the Toshiba protocol, but I can’t find information about it…
The part I’m trying to simulate is the PT2248
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 44/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
I had a whole bunch of problems getting the codes to work for my arduino.
the first code, instead of giving me IR codes, it would just print a 0 to the serial port
every time i pressed a button on the controller.
the second code didnt work at all…
I tried a number of things, including testing all the different examples in the IRremote
library….
after i failed to get it to work seemlessly, i discovered that the IRremote library has
been updated in the last few months.
I managed to solve the problem by reverting to an earlier update for the IRremote
library (2.7.0), and now everything is working perfectly!
thanks very much!
Reply
Andriy says:
February 11, 2021 at 11:39 am
Hi Daniel
I’ve got the same issue: 0 instead of codes.
Also, I’ve had to delete &results out of ” if (irrecv.decode(&results)){ ” in
loop and leave .decode() with nothing in brackets. Have you done the
same?
However, you said that swap 3.0.1 to earlier version of IRremote library
has solved the issue.
How did you manage it ?
Thanks.
Reply
Matt says:
February 18, 2021 at 10:44 pm
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 45/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Reply
Reply
Andriy says:
February 23, 2021 at 3:48 pm
Reply
Ivy says:
February 23, 2021 at 6:44 pm
Hi,
I have read so many blogs but still can’t solve my problem : (
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 46/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
I got different value when I pressed the same button, but I have no idea where the
mistakes are.
Hope anyone can help me with my problem, thanks! : )
Here is my code:
#include
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
Serial.begin(9600);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume();
}
delay(100);
}
P.S. The version of IRremote is 2.7.0
(And sorry for my poor English, I’m not native speaker.)
Reply
soultyrant1 says:
April 7, 2021 at 4:21 pm
hi
i need help when ever i try to verify the code it gives me this error message
/tmp/692403348/sketch_apr1a/sketch_apr1a.ino: In function ‘void setup()’:
/tmp/692403348/sketch_apr1a/sketch_apr1a.ino:10:10: error: ‘class IRrecv’ has no
member named ‘blink13’
irrecv.blink13(true);
^~~~~~~
exit status 1
i have downloaded the libraries so what is wrong
Reply
john says:
April 15, 2021 at 3:19 pm
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 47/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Reply
Sébastien says:
April 28, 2021 at 6:35 pm
Outdated, not compatible with the recent version of the library. Could be interesting
to update the code :)
Reply
aggertroll says:
July 11, 2021 at 12:21 pm
Reply
RAMESH says:
August 19, 2021 at 11:57 am
While i uploading the code with hide this line // irrecv.blink13(true); sucessfully
uploaded but in serial monitor shows error like
The function decode(&results)) is deprecated and may not work as expected! Just
use decode() without a parameter and IrReceiver.decodedIRData.
anyone suggest me a good solution to overcome this problem
Reply
/*
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 48/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 49/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 50/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Down”);
if(IRdecodedRawData == 0xFF10EF) Serial.println(“Pressed Arrow Left”);
if(IRdecodedRawData == 0xFF5AA5) Serial.println(“Pressed Arrow Right”);
if(IRdecodedRawData == 0xFF38C7) Serial.println(“Pressed Ok”);
*/
irrecv.resume(); // Receive the next value
}
}
Reply
Reply
Rauni says:
May 19, 2024 at 11:12 am
You may want to update your tutorial. Currently, when opening the serial monitor, I
get the following warning:
Thank you for using the IRremote library!
It seems, that you are using a old version 2.0 code / example.
This version is no longer supported!
Please use one of the new code examples from the library,
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 51/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
available at “File > Examples > Examples from Custom Libraries / IRremote”.
Or downgrade your library to version 2.6.0.
Reply
carlos says:
July 17, 2024 at 4:39 pm
to all my future homies, use IR library 2.5 and it will work as intended.
Reply
user-056299 says:
April 19, 2025 at 2:51 am
awesome
Reply
Please Give me the complete setup image of door sensing system with the
components Arduino Uno, IR receiver, IR transmitter, 220ohms and 10kilo ohms
resistor, breadboard, remote and jumper wires for door security systems.
Reply
Williamladdy says:
June 2, 2025 at 3:50 pm
comprar norfloxacino sin receta: la farmacia online cupon descuento – ilerna online
farmacia y parafarmacia
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 52/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
MichaelGreft says:
June 4, 2025 at 2:25 pm
Reply
AlfonsoAriff says:
June 11, 2025 at 9:17 pm
Reply
Billyblone says:
June 13, 2025 at 8:19 am
Reply
Billyblone says:
June 14, 2025 at 3:00 am
Reply
Jamesamumb says:
June 14, 2025 at 7:01 am
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 53/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Reply
AlfonsoAriff says:
June 15, 2025 at 12:48 am
Reply
ufabet says:
June 15, 2025 at 3:47 pm
Reply
RobertMal says:
June 18, 2025 at 7:12 pm
Reply
Henrydub says:
June 19, 2025 at 5:06 am
http://efarmaciait.com/# EFarmaciaIt
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 54/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
买伟哥 says:
June 19, 2025 at 10:01 am
great points altogether, you simply received a logo new reader. What may you
recommend in regards to your put up that you simply made some days in the past?
Any certain?|
Reply
ClintonFag says:
June 20, 2025 at 12:30 am
Reply
WilliamMef says:
June 20, 2025 at 2:15 pm
Reply
Reply
EdwardSup says:
June 20, 2025 at 11:51 pm
https://pharmaconnectusa.com/# PharmaConnectUSA
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 55/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Reply
viyana’da dil kursu viyana’da dil kursu viyana’da dil kursu viyana’da dil kursu
viyana’da dil kursuviyana’da dil kursu
Reply
TUĞÇE says:
June 22, 2025 at 9:33 am
Çağra LTD | Mutfak ürünleri | Bahçe aksesuar Kıbrıs mutfak gereçleri, hırdavat
kıbrıs, kıbrıs hırdavat, matkap kıbrıs, kıbrıs inşaat ürünleri, kıbrıs mobilya
Reply
Albertgof says:
June 23, 2025 at 3:36 am
Reply
EdwardSup says:
June 23, 2025 at 7:59 pm
Reply
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 56/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
MelvinQuibe says:
June 25, 2025 at 12:23 am
Reply
EdwardSup says:
June 27, 2025 at 7:41 am
Reply
Albertgof says:
June 27, 2025 at 10:47 am
Reply
becem travel | Kıbrıs araç transfer Kıbrıs araç kiralama , Kıbrıs vip araç , Kıbrıs araç
transfer , Kıbrıs güvenli ulaşım
Reply
viyana üniversitesi kabul şartları viyana üniversitesi kabul şartları viyana üniversitesi
kabul şartları viyana üniversitesi kabul şartları
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 57/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Reply
MelvinQuibe says:
June 28, 2025 at 2:13 am
Reply
Albertgof says:
June 28, 2025 at 5:06 pm
Reply
This is really interesting, You’re a very skilled blogger. I’ve joined your feed and look
forward to seeking more of your magnificent post. Also, I’ve shared your site in my
social networks!
Reply
Search
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 58/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Email Address
Subscribe
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 59/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 60/61
7/2/25, 7:03 AM How to Set Up an IR Remote and Receiver on an Arduino - Circuit Basics
Arduino
Electronics
Raspberry Pi
Contact Us
About
Privacy Policy
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/ 61/61