Servo Motor Control with Remote © Apache-2.0

Arduino UNO & Genuino UNO x 1
SG90 Micro-servo motor x 1
IR receiver (generic) x 1
JustBoom IR Remote x 1
Jumper wires (generic) x 1


With this simple Arduino project, you can control a servo using a remote control. All you need is an Arduino Uno board (or similar), a servo motor (doesn’t have to be very powerful), a TV remote, an IR receiver (TS0P1738), and a small piece of cardboard.

Let’s get started!

Installing the IR Library:

The very first thing that we need to do associating with Arduino is to download the IR library.

First you need to connect the parts as per the given circuit diagram:

[](javascript:openLightBox(‘b6a2bc95c6’, 0):wink:

You can checkout Pin out of TSOP1738 below:

Use the following code to decode IR remote:

/*The IR sensor's pins are attached to Arduino as so:Pin 1 to Vout (pin 11 on Arduino)Pin 2 to GNDPin 3 to Vcc (+5v from Arduino)*/#include <IRremote.h>int IRpin = 11;IRrecv irrecv(IRpin);decode_results results;void setup(){Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver}void loop() { if (irrecv.decode(&results))    {     Serial.println(results.value, DEC); // Print the Serial 'results.value'     irrecv.resume();   // Receive the next value   }}

[](javascript:openLightBox(‘5ca5740aa9’, 0):wink:

  • Open Arduino IDE and Upload code
  • Open Serial Monitor
  • Aim your remote at the sensor and press each button
  • You can see different numbers for each button

Consider any two buttons, and note down decoded values. In my case, I have chosen the Power button and Mode button.

I got the following values:

  • Power button=33441975
  • Mode button =33446055

We will be using this two values to control rotation of servo need to add this two values in the program which is given on next step:

[](javascript:openLightBox(‘0d65f2e20a’, 0):wink:

Let’s set-up the final hardware!

The Final Circuit!



#include <IRremote.h>
#include <Servo.h>
int IRpin = 11;  // pin for the IR sensor
IRrecv irrecv(IRpin);
decode_results results;
Servo myservo;
void setup()
 irrecv.enableIRIn(); // Start the receiver
 myservo.attach(9);  // attaches the servo on pin 9 to the servo object
void loop() 
 if (irrecv.decode(&results)) 
     irrecv.resume();   // Receive the next value
  if (results.value == 33441975)  // change according to your IR remote button number
    if (results.value == 33446055)  // change according  to your IR remote button number

Visit 7USD for PCB Assembly

Hey Bean,

Excellent project! If you’d like to submit your writeup to the link below you can receive a store credit once we officially present it to the site. If there’s anything else that we can do to assist you please let us know!

Core Electronics | Support