Simple Arduino Project : IR Remote
Introduction
Making an arduino based IR remote is fairly simple thanks to the IR library.it enables us to :
- Detect and Read IR Signal
- Decode It
- 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; } }
can you give the link of the library?
what library ??