0% found this document useful (0 votes)
281 views

Arduino IR Sender and Receiver

This document provides instructions for using an Arduino to implement an infrared (IR) sender and receiver. It describes the necessary components, including two Arduinos, an IR emitter, IR receiver, resistor, button, and LED. It includes code samples to transmit and receive IR signals between the two Arduinos using these components. The code samples utilize an IR library and involve connecting the components, uploading the code, and testing the system by pressing a button to toggle an LED on the receiving Arduino.

Uploaded by

shashi_9242
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
281 views

Arduino IR Sender and Receiver

This document provides instructions for using an Arduino to implement an infrared (IR) sender and receiver. It describes the necessary components, including two Arduinos, an IR emitter, IR receiver, resistor, button, and LED. It includes code samples to transmit and receive IR signals between the two Arduinos using these components. The code samples utilize an IR library and involve connecting the components, uploading the code, and testing the system by pressing a button to toggle an LED on the receiving Arduino.

Uploaded by

shashi_9242
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Arduino IR sender and receiver

Posted by GarageLab on May 3, 2012 at 8:58am

View Blog

On this tutorial, we will show how to implement an IR sender and receiver with Arduino. To do
this, you will need 2x Arduinos, 1x IR emitter, 1x IR receiver, 1x 200 ohm resistor, 1x push
button, and 1x LED. You can use your TV remote as an IR transmitter.

First, you have to check the receiver pinout. Look at the datasheet, you should find something
like that:

Connect your transmitter like the following picture:


Then, connect your receiver like that:
Before we get to the programming, download and install the IR library.

The sample program was extracted from the Arduino Cookbook book. Open your Arduino IDE
and upload the following code:

/*
irSend sketch
this code needs an IR LED connected to pin 3
and 5 switches connected to pins 4 - 8
*/
#include <IRremote.h>
// IR remote control library
const int numberOfKeys = 1;
const int firstKey = 4;
// the first pin of the 5 sequential pins connected to buttons
boolean buttonState[numberOfKeys];
boolean lastButtonState[numberOfKeys];
long irKeyCodes[numberOfKeys] = {
0x18E758A7, //0 key
};
IRsend irsend;
void setup()
{
for (int i = 0; i < numberOfKeys; i++){
buttonState[i]=true;
lastButtonState[i]=true;
int physicalPin=i + firstKey;
pinMode(physicalPin, INPUT);
digitalWrite(physicalPin, HIGH); // turn on pull-ups
}
Serial.begin(9600);
}
void loop() {
for (int keyNumber=0; keyNumber<numberOfKeys; keyNumber++)
{
int physicalPinToRead=keyNumber+4;
buttonState[keyNumber] = digitalRead(physicalPinToRead);
if (buttonState[keyNumber] != lastButtonState[keyNumber])
{
if (buttonState[keyNumber] == LOW)
{
irsend.sendSony(irKeyCodes[keyNumber], 32);
Serial.println("Sending");
}
lastButtonState[keyNumber] = buttonState[keyNumber];
}
}
}

Do the same with the receiver code:

/*

IR_remote_detector sketch
An IR remote receiver is connected to pin 2.
The LED on pin 13 toggles each time a button on the remote is
pressed.
*/
#include <IRremote.h> //adds the library code to the sketch
const int irReceiverPin = 2; //pin the receiver is connected to
const int ledPin = 13;
IRrecv irrecv(irReceiverPin); //create an IRrecv object
decode_results decodedSignal; //stores results from IR detector
void setup()
{
pinMode(ledPin, OUTPUT);
irrecv.enableIRIn();
}
boolean lightState = false;
unsigned long last = millis();

// Start the receiver object


//keep track of whether the LED is on
//remember when we last received an IR
void loop()
{
if (irrecv.decode(&decodedSignal) == true) //this is true if a
message has been received
{
if (millis() - last > 250) {
//has it been 1/4 sec since last message
lightState = !lightState;
//toggle the LED
digitalWrite(ledPin, lightState);
}
last = millis();
irrecv.resume();
// watch out for another message
}
}

It's time to test! When you press the button, the LED on the other Arduino should switch on.
When you press it again, the LED switch off.

You might also like