Simple Arduino Project : IR Remote

Introduction

Making an arduino based IR remote is fairly simple thanks to the IR library.it enables us to :

  1. Detect and Read IR Signal
  2. Decode It
  3. Send Ir Signal

which is all we need for an infrared remote as we will be sending a coded message to be able to identify each button.

this project has many applications other than duplicating a TV or radio IR remote but can be used to activate or trigger anything with an IR receiver up to 10 meters away.

Principle :

the IR light that an IR led cant be seeing with a human eye ( you can use a camera to see it) but IR receivers can.the arduino using the PWM function will blink the led at a certain frequency which is picked up by the TSOP Ir receiver which can interpret those bursts of IR light into data.

Code:

IR Library Download Link :

the first code i used is the IRrecdemo and IRrecvDumpv2 included in the arduino IR library.how can read the IR signal of remotes and decode it .

IR Emitter code :

#include <IRremote.h>

IRsend irsend;

const int switch1 = 4;
const int switch2 = 5;
const int switch3 = 6;
void setup() {
pinMode(switch1, INPUT_PULLUP);
pinMode(switch2, INPUT_PULLUP);
pinMode(switch3, INPUT_PULLUP);

}

void loop() {

if (digitalRead(switch1) == LOW){
delay(50);
irsend.sendNEC(0xE0E020DF, 32);}

if (digitalRead(switch2) == LOW){
delay(50);
irsend.sendNEC(0xE0E0A05F, 32);}

if (digitalRead(switch3) == LOW){
delay(50);
irsend.sendNEC(0xE0E0609F, 32);}

}

 

IR Receiver code :

#include <IRremote.h> // IR library
const int RECV_PIN = 11; // TSOP IR Receiver Data PIN

const int switch1 = 2; //Switch or led’s to be activated OUTPUTS
const int switch2 = 3;
const int switch3 = 4;

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {

irrecv.enableIRIn();
pinMode(switch1, OUTPUT);
pinMode(switch2, OUTPUT);
pinMode(switch3, OUTPUT);
}

void loop() {
if (irrecv.decode(&results)) { // Receiving IR Signal and decoding it

irrecv.resume();
}

if (results.value == 0xE0E020DF) {
digitalWrite(switch1, HIGH);
delay(200);
digitalWrite(switch1, LOW);
results.value = 0x00000000;
}

if (results.value == 0xE0E0A05F) {
digitalWrite(switch2, HIGH);
delay(200);
digitalWrite(switch2, LOW);
results.value = 0x00000000;
}
if (results.value == 0xE0E0609F) {
digitalWrite(switch3, HIGH);
delay(200);
digitalWrite(switch3, LOW);
results.value = 0x00000000;
}

}

Circuit

Arduino IR remote
Tagged on:                 

Leave a Reply