Ir Remote Tester And Decoder

About the project

In this tutorial, I am going to show you guys how to create a simple InfraRed Receiver / Tester Circuit using TSOP4838

Project info

Difficulty: Easy

Platforms: AdafruitAndroidArduino

Estimated time: 1 hour

License: GNU Lesser General Public License version 3 or later (LGPL3+)

Items used in this project

Hardware components

arduino arduino x 1
TSOP4838 TSOP4838 x 1
220 ohm Resistor 1/4 Watt 220 ohm Resistor 1/4 Watt x 1

Software apps and online services

arduino iDE arduino iDE



What do you generally do when your remote controls starts playing up?

  • Do you generally use a multimeter and check the voltage and current produced by the battery?
  • Or do you point the remote control to a digital camera and try to visualize the infrared light? 

In this video, I am going to show you guys how to create a simple InfraRed(IR) Receiver Circuit using TSOP4838 and will also show you how to read the code send by the remote controls. You can also use this circuit as an IR remote tester.

Setup Without Arduino 

Lets first have a look at the setup without an Arduino.

The main component of this circuit is the Infrared Remote (IR) Receiver TSOP4838.

The TSOP4838 is tuned to 38kHz, which is typically the frequency range of the TV remote controls. 

From left to right Pin-1 is the OUTput pin, Pin-2 is GND and Pin-3 is VCC. Just remember, the pin assignments can be different depending upon the TSOP variant. So, please be very careful while hooking it up to your circuit.

Now, lets have a look at the setup.

Connect Pin-2 of IR Receiver to the -ve and Pin-3 to the +ve terminal of the battery.

Then connect the -ve pin of the LED to Pin-1 of the IR Receiver and the +ve pin to the +ve terminal of the battery by placing a current limiting resistance in-between.

To reduce the flickering rate of the LED, you can add a capacitor anything between 10mfd to 100mfd between Pin-3 and VCC of the circuit.

That's it, as easy as that.

Demo Without Arduino 

Now, lets do a quick test.

As you can see, when I press any button on the the remote control the LED starts flickering.TSOP4838 demodulates the signals received from the remote control and gives the output in the form of active low to the LED.

Adding a capacitor will lower the flickering rate of the LED.

The supply voltage has to be strictly between 5V-6V.

Setup Using Arduino

Now, lets set this up using a MicroController and try to read the demodulated signals.

Connect the +ve pin of the IR Receiver to 5V, -ve to GND and the OUT pin to Pin-2 of the Arduino.

You can also add the optional LED to this setup to get a visual effect when the Receiver decodes the signal. 

The Code

Now, go ahead and launch Arduino IDE and go to "Tools" > "Manage Libraries".Download and Install the latest release of the "IRremote" library from the library manager.

Then, go to "Examples" and open the "SimpleReceiver" example. Go ahead and load the code without making any modification to the Arduino Board.

Demo Using Arduino

For this demo, I am using a Panasonic and a Sony remote control. The decoded data will be shown using the Arduino IDE's Serial Monitor.

As you can see when I press a button on the remote control, the LED lights up and the decoded data is displayed on the serial monitor.

The serial monitor displays a lot of information, but the one of my interest is the "Source" and the "Command" send by the remote control.


Some common uses of this project includes:

  • Controlling devices using a remote control
  • Decoding data sent over IR
  • Troubleshooting remote controls 
  • Lighting up LED strips near your TV whenever you press a button on the remote control


Thanks again for checking my post. I hope it helps you.If you want to support me subscribe to my YouTube Channel:

  • Video: Video Link 
  • Full Blog Post: Blog Post 
  • Datasheet: Download

    Support My Work:
  • BTC:  15cNh9hup8jidCVPwa1DTcxeoh2FPijVrX
  • LTC:  LbquH9Ku78vHtcm3LZnWXpD1JQWdKzeV4v
  • DOGE: DEB2QBAihnBRhGsaB8P7kz559TDiucQhX6
  • ETH:  0x5d8c9ba0e54d8354d4af81871db26daa190d2194
  • BAT:  0x939aa4e13ecb4b46663c8017986abc0d204cde60
  • LBC:  bZ8ANEJFsd2MNFfpoxBhtFNPboh7PmD7M2
  • COS:  bnb136ns6lfw4zs5hg4n85vdthaad7hq5m4gtkgf23 Memo: 572187879
  • BNB:  0x5d8c9ba0e54d8354d4af81871db26daa190d2194
    Thanks, ca again in my next tutorial.


Photo of tarantula3


There were 1000+ sperms but I was the fastest one..


Leave your feedback...