Introduction: How to Use IR Sensor Using Op Amp and Arduino

About: Enjoys learning and playing with electronics and programming.
What is infra-red (IR)? Infra-red is an electromagnetic wave who wavelength is between 0.75 microns to 1000 microns (1 micron = 1µm). Since infra-red is out of visible light range, we can’t really see IR with naked eye. However, there is a method to “see” IR which will be shown later on. Some of the infra-red applications includes night vision, hyperspectral imaging, and communications. We also use IR daily in our TV remote or any device remote.

Step 1: Infra-red Sensor

IR transmitter and receiver can be obtained at low price. Their shape is looks exactly the same as LED. To distinguish between transmitter and receiver, the transmitter always come in clear LED while receiver is black in colour. Other than that, there is also receiver that is used to pick up specific frequency IR, 38kHz. For your information, 38kHz frequency IR is commonly used in remote control.

IR transmitter will emit infra-red when powered. You can connect the IR transmitter like a LED together with a current limiting resistor. The current limiting resistor is used to prevent too much of current passing through the transmitter and burnt it. I am using 330 ohms resistor for the IR transmitter.

Step 2: How to "see" IR

As mentioned before, there are ways to “see” the infra-red from the transmitter. All you need is a camera, be it from the phone camera or digital camera. Camera has sensor which can pick up infra-red, so you can use this technique to check whether your IR transmitter is working or not.

The IR receiver that I am going to discuss is the normal IR receiver instead of 38kHz IR receiver. IR receiver detects the amount of infrared received and varies the resistance across the receiver. Therefore, we can measure the voltage across the receiver to detect the amount of IR received.

Step 3: Using Op Amp Comparator With IR

I am going to show two methods of using IR receiver. The first method is using comparator which able to convert it to either HIGH or LOW. Comparator is a device that compares two signal and outputs a digital signal indicating which is larger. More info on comparator available here.

I am using LM 324 Low Power Quad Op Amp. LM 324 has four op amps, so I just use only one of them for this test.

Step 4: Schematic and Theory of Operation

I will briefly explain the operation of this comparator.

(1) IR transmitter will directly shine to IR receiver. IR receiver is connected in reverse biased with a 1M ohm series resistor. This will create a potential divider to the op amp non inverting input, V+.

(2) A 100k ohm variable resistor is connected to the op amp inverting input. By adjusting the variable resistor, we can adjust the reference voltage of comparator.

(3) When IR receiver is blocked from IR transmitter, the resistance across IR receiver will increase. Thus the voltage at non inverting input will increase.

(4) Since the V+ > V-, the output of op amp will be 5V. In this case, it will turn off the LED. Only when V+ < V-, the output of op amp is 0V, thus LED lights up.

Step 5: Images

You can actually implement IR receiver with comparator when you only need to compare to a fixed reference voltage. You can use this as a simple sensor for line following robot to detect the lines.

Step 6: Video



Video demo using IR sensor with comparator.

Step 7: Using Arduino With IR

However, there are times we need to obtain the raw values on IR receiver instead 2 discrete levels, HIGH and LOW. Now I am going to show the second method, which utilize the Arduino. I connect the IR receiver to Arduino’s Analog Input and use the Analog-to-Digital Converter to get the values. I am going to show how to obtain the values from IR receiver using Arduino and display it on LCD.

The connection is pretty simple for IR receiver. All you need is connect from IR receiver to any of the 6 analog inputs of Arduino. In this case, I am using analog input A0.

Step 8: Code for Arduino

The code for Infrared sensor:

//Infrared Sensor Experiment
//By Zxlee

#include <LiquidCrystal.h>

LiquidCrystal lcd(2,3,4,5,6,7);

#define photodiode A0

void setup()
{
lcd.begin(20,4);
pinMode(photodiode,INPUT);

lcd.setCursor(0,0);
lcd.print(" Infrared Sensor");

lcd.setCursor(5,1);
lcd.print("Experiment");

lcd.setCursor(6,3);
lcd.print("By Zxlee");

lcd.setCursor(2,2);
lcd.print("Analog Val= ");
}

void loop()
{
int value = analogRead(photodiode); //Read analog value from IR receiver

//Convert each digit in decimal and display on LCD
lcd.setCursor(17,2);
lcd.print((value%10));
value/=10;
lcd.setCursor(16,2);
lcd.print((value%10));
value/=10;
lcd.setCursor(15,2);
lcd.print((value%10));
value/=10;
lcd.setCursor(14,2);
lcd.print(value);
}

Step 9: Images

Step 10: Video



Video demo on using IR sensor with Arduino

Step 11:

Hope this instructables cann give a brief introduction on using IR sensor. If you have any questions, feel free to drop me a comment below.

Visit my blog on IR sensor, http://iamzxlee.wordpress.com/2014/01/22/infra-red-sensor-ir/