Introduction: Smart Universal IR Remote

About: Maker | Electronics Engineer | Full-stack Software Developer | Build, Automate, Innovate |

Introducing the Smart Universal IR Remote !!!
A simple, compact & much powerful tool to conquer all the IR devices around you !!!
Everything all at just few bucks....

Why Smart ???

It can learn the actions of any button on any IR remote very easily, allowing you to modify the actions as per you requirement. These actions once taught, get stored in the non-erasable memory of the Arduino Nano. So, no need to re-assign the controls to its buttons. Featuring Multiple Keys for multiple devices at the same time on the same board.

The BRAIN !!!
It uses Arduino Nano as the main brain of the remote for carrying out all the learning and transmitting operations.

Step 1: Getting Parts for Your Remote !!!

The Components required for making this remote:

1) Ardunio Nano x 1
2) IR Receiver - Any of these (TSOP1130/TSOP1138/TSOP1330/TSOP1338) or any other will work too x 1
3) IR Transmitter LED x 1
4) Resistors - 150 Ohms x 1
5) Diode - 1N4007 x 1
6) SPST Slide Switch x 1
7) Female Headers / Burg Strip - 40 pins x 1
8) Push Buttons (Small - 6mm*6mm) x 9 (or according to your requirement)
9) Push Buttons (Big - 12mm*12mm) x 3 (or according to your requirement)
10) Perforated / Dotted / Zero PCB
11) 9V Battery Clip / Connector x 1
12) Connecting Wires
13) Soldering Iron and other tools
14) Soldering Wire

and finally some Hard work !!! :-p

Step 2: The Backbone !!!

As previously mentioned, Arduino Nano is the main backbone of the Remote.

It handles :
1) The reception of IR signals via the IR Receiver.
2) Decoding of the format of signals received.
3) Storage operations (write/ read / erase) in it EEPROM.
4) Detecting the Button presses of the user.
5) Transmission of the respective IR codes via the IR Transmitter LED.


*Refer to the datasheets of the devices for more info.

Step 3: The Circuit

The images shown here represent the circuit diagram of the IR remote.

- The push buttons both small and big are connected in a keypad matrix fashion for the purpose of multiplexing (We are saving pins of Arduino !!!).
*You can increase the number of buttons being used in your remote as per your requirement. Just increase the row or column accordingly and add few more push buttons in a similar manner.

- The pins D4 to D10 of Arduino Nano get connected to the keypad matrix as shown.

- One more push button, called as the 'Learn Switch' is directly connected to D2.

- The Transmitter LED is connected to pin D3 via a 150 Ohm Resistor. This configuration allows a transmission range of 3 meters. For more long range use a BC547 NPN transistor to drive the LED.

- The IR Receiver OUT terminal connects to the D11 & rest to 5V and GND of Arduino Nano as shown. *Refer the datasheet of your respective IR Receiver for PIN markings of the device.

- The 9V Battery Clip connects to the Vin of Arduino Nano via a diode - 1N4007 (general purpose rectifier diode) and a slide switch. This diode protects the Arduino, if the 9V Battery is reversely connected. The Switch enables / cuts the power supply delivered to the Arduino Nano via the battery.

*Please check all the connections carefully before you connect the Battery to it. Else, your circuit may get fried up !!!

Step 4: Assembling It Altogether . . . .

The images show the circuit assembly of my remote. I used Perforated / Zero PCB for mounting everything as its easy and versatile. You can also make your own design of the circuit & use an etched PCB.
I also used multi-stranded connecting wires for all the circuit connections.
The Diode and resistor are placed just below the Arduino Nano as shown in the image.

*Do not connect Arduino Uno or 9V Battery to the board before you have completed and tested the circuit properly !!!

You can follow the following steps to assemble your complete board:

1) Place and Solder all the Push buttons according to your choice.
2) Make the matrix connections between all the Push Buttons as per the circuit.
3) Solder the female headers according to the pins of the Arduino.
4) Solder the Resistor, Switch & Diode on the board accordingly.
5) Using connecting wires connect the keypad matrix to the Arduino pins.
6) Solder the IR Receiver, IR Transmitter LED and Learn Switch button. Also, using connecting wires complete their connections as per the circuit.
7) Connect the 9V battery clip and using a Continuity Tester check all the connections that you have made on your board.
8) If everything is alright, then connect the Arduino Nano to the Board and upload the Code by connecting it to the PC. You can test if the Remote is working fine or not in this step.
9) Connect the 9V Battery and Test it out !!!

Step 5: Program It !!!

The library used for this project is the IRremote.h
You can find it here : https://github.com/z3t0/Arduino-IRremote

Download and Install the library first before you move to further steps.

Open the provided code file using Arduino IDE.
Select proper Board and COM Port from the Tools Menu.
Upload it !!!

And you are all Done !!! :-)

Step 6: Final Step - Test It !!!

So, how to make it work ???

1) After connecting the Battery, the LED on the Nano blinks indicating it has started.
2) Remember, we have used three Big Push Buttons. These Buttons select the current key bank in use. So we have 3 different banks in all to store the controls of any remote. For example: You can assign your TV controls to Bank 1 and AC controls to Bank 2.
3) As we have just started the remote for its first use, we have to make it learn some commands.
4) Making it learn: (You will need the Remote of the device you want to control)

  • Press Bank 1 Button first to select the Bank 1 as the current bank to be used.
  • Press any button form the small push buttons for which the control has to be assigned.
  • Press the learn switch.
  • Hold the Remote of the respective device in front of the IR Receiver.
  • When an action is successfully learnt, the LED on the Arduino Nano will glow for few seconds and go off.
  • Similarly, the other small push buttons can be used for assigning various controls to them. You can program the rest Key Banks in a similar manner.

5) After you have done teaching it the controls, follow the following steps to use it:

  • Select a particular bank in which you have assigned the controls by pressing the respective bank button.
  • After Selecting the bank, Press any of buttons that you have assigned the controls to.
  • Done !!!

6) The video shows the testing of the IR LED after teaching a certain control to the Remote.

* You can re-assign a control to any button if there's any mistake while assigning the controls.


* If you want to Erase all the saved controls of the remote, Just press and hold the Learn Switch while turning the Remote On using the ON/OFF switch, or you can just press Reset Button on Arduino Nano while holding the Learn Switch. Hold the learn Switch till the LED on the Nano Turns On. It will go off, once the memory is erased completely.


Its Done !!!

Do Vote for me in the Micro-controller Contest if you liked this Instructable :-)

Checkout my other Instructables too.....
BOOM BOX: https://www.instructables.com/id/Boom-Box-/
CUSTOM ARDUINO: https://www.instructables.com/id/Make-a-ARDUINO-on-Your-Own/


HAPPY MAKING !!! :-)