Infrared Remote Control
View Full-Size Image

Infrared Remote Control

( E )

Have you ever needed a cheap way to activate something from across the room? Infrared remotes are still the cheapest way to wirelessly control a device. We chose this remote because it's small, very simple, and low-cost.

With this cheap infrared controller, you can easily make remote control projects such as the Arduino IR Remote receiver thanks to the open-hardware community, there are also some IR libraries such the joshuajnoble IR library for you to make everything in your house to be remote-control. This remote control offer 21 buttons, we suggest you use this remote control with the IR receiver.

Note: The unit does not come with a coin cell battery.


Dimension: 84mmx39mm
Buttons: 21
Distance: ~ 8m
Battery: 3V Button Cell (CR2025)

Sample Code HERE


Example Code

  SparkFun Electronics 2010
  Playing with IR remote control
  IR Receiver TSOP382: Supply voltage of 2.5V to 5.5V
  With the curved front facing you, pin 1 is on the left.
    Pin 1: To pin 2 on Arduino
    Pin 2: GND
    Pin 3: 5V
  This is based on pmalmsten's code found on the Arduino forum from 2007:

  This code works with super cheapo remotes. 
   If you want to look at the individual timing
  of the bits, use this code:
  This code clips a lot of the incoming IR blips, 
   but what is left is identifiable as key codes.


int irPin = 2; //Sensor pin 1 wired to Arduino's pin 2
int statLED = 13; //Toggle the status LED every time Power is pressed
int start_bit = 2200; //Start bit threshold (Microseconds)
int bin_1 = 1000; //Binary 1 threshold (Microseconds)
int bin_0 = 400; //Binary 0 threshold (Microseconds)

void setup() {
  pinMode(statLED, OUTPUT);
  digitalWrite(statLED, LOW);

  pinMode(irPin, INPUT);

  Serial.println("Waiting: ");

void loop() {
  int key = getIRKey();		    //Fetch the key
  if(key != 0) //Ignore keys that are zero
    Serial.print("Key Recieved: ");
      case 144: Serial.print("CH Up"); break;
      case 145: Serial.print("CH Down"); break;
      case 146: Serial.print("VOL Right"); break;
      case 147: Serial.print("VOL Left"); break;
      case 148: Serial.print("Mute"); break;
      case 165: Serial.print("AV/TV"); break;
      case 149: 
        if(digitalRead(statLED) != 1) 
//This toggles the statLED every time power button is hit
          digitalWrite(statLED, HIGH);
          digitalWrite(statLED, LOW);

      default: Serial.print(key);


int getIRKey() {
  int data[12];
  int i;

  while(pulseIn(irPin, LOW) < start_bit); //Wait for a start bit
  for(i = 0 ; i  bin_0) //is it a 0?
      data[i] = 0;
      return -1; //Flag the data as invalid; 
                     // I don't know what it is! Return -1 on invalid data

  int result = 0;
  for(i = 0 ; i < 11 ; i++) //Convert data bits to integer
    if(data[i] == 1) result |= (1<


In Stock: 10

Usually ships in:


Customer Reviews:

There are yet no reviews for this product.
Please log in to write a review.

You may also be interested in this/these product(s)

IR Receiver - SM0038
IR Receiver - SM0038

Products Categories

We Accept


Shopping Cart

Your Cart is currently empty.



Product Search

Advanced Search

Currency Selector

HTTPS Secure