Introduction: Reliable and Low Cost IR Proximity Sensor
This is a simple yet effective IR proximity sensor built around the TSOP 1738 module.
The TSOP module is commonly found at the receiving end of an IR remote control system; e.g., in TVs, CD players etc.
These modules require the incoming data to be modulated at a particular frequency and would ignore any other IR signals.
It is also immune to ambient IR light, so one can easily use these sensors outdoors or under heavily lit conditions.
Such modules are available for different carrier frequencies from 32 kHz to 42 kHz..
In this particular proximity sensor, we will be generating a constant stream of square wave signal using IC555 centered at 38 kHz and would use it to drive an IR led.
So whenever this signal bounces off the obstacles, the receiver would detect it and change its output. Since the TSOP 1738 module works in the active-low configuration, its output would normally remain high and would go low when it detects the signal (the obstacle).
description source: http://robotiks4u.blogspot.in/2008/05/this-is-simple-yet-effective-ir.html
Step 1:
Step 2: Components
Components list
1, 555 ic
2, PCB
3, Resistors 330Ohm,100 Ohm
4, Capacitors 0.1uF,0.02uf,1uF
5, LED IR LED,Yellow LED
6, Diode 1N4148
7, Preset Resistors 5K,1K
8, Connector 3 pin
9, TSOP Metal Type 1738 [38 khz IR Receiver ]
10, heat shrink tube
11, connecting wires - 3
Step 3: Circuit Diagram
Step 4: PCB Assembling
Attachments
Step 5: Interfacing to Arduino
//TSOP IR Sensor test - Arduino uno program
const int buttonPin = 2; // the number of the pushbutton pin
const int ledPin = 12; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
// initialize serial communications at 9600 bps:
Serial.begin(9600);
Serial.println("TSOP IR Sensor Testing" );
}
void loop(){
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed.
// if it is, the buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED off:
digitalWrite(ledPin, LOW);
}
else {
// turn LED on:
digitalWrite(ledPin, HIGH);
Serial.println(" sensor Active " );
}
}
Step 6: Arduino Wiring Diagram
Step 7: Working Video
Step 8: Application Example
robocar with 2 sensor
Step 9: Downloads
Downloads
Attachments

Participated in the
Microcontroller Contest

Participated in the
Build My Lab Contest
42 Comments
11 months ago
Hi! Great design!! It's exactly what I was looking for!!
Is it possible to make it to operate at a specific frequency, let's say 36khz and have a second circuit operating at 40khz so they won't see each other?
Thank you!!
Reply 11 months ago
I got it from another question you answered!! I have to use two different TSOP for different carrier frequencies from factory, watching the two ending numbers where the carrier frequency is specified.
Thank you so so much for this article!!!
2 years ago
Hi !! Great work. Just a quick question. Why don't we generate 38 KHz using the arduino only, if we are anyways using it. Why to add an extra 555 timer circuit to do it ? Would further reduce the cost.
2 years ago
Hi man, Great project... claps.
Que: how did you create the pcb? it is interesting.
2 years ago
can it be used to do water dispenser and will it sense ambient light
4 years ago
Does the yellow LED itself have a purpose besides being an indicator?
6 years ago
Hi, around how many mA does the circuit consume?
6 years ago
Helpful. Thanks.
9 years ago on Introduction
Would I be able to use other IR Sensors by Vishay?
Such as these: http://www.vishay.com/ir-receiver-modules/
I see no TSOP 1738, but there are other 38 KHz modules
Reply 7 years ago on Introduction
I'm pretty sure any 38kHz IR Receiver will work.
7 years ago on Introduction
8 years ago
when i cnnct the sensor board to my arduino my arduino switches off what to do pls help...
8 years ago
can you please ellaborate the connection of preset resistors i still a school boy so i m not able to undrstnd
8 years ago on Introduction
A Really nice project but i have a few questions
1) can i use this sensor with a PIC microcontroller ?
2) Can i use plastic TSOP instead of metal ?
3) if the TSOP is Tsop is 1740 is it ok ?
8 years ago on Step 2
Sir
Pls help
The sensor is giving high single always whether thr is any object or not. I hav set the frequency to 38khz then also the same problem. Please help me out!
Reply 8 years ago on Step 2
please use metal type TSOP.
9 years ago on Introduction
Dear SIr,
What is the value to set to RV1 and RV2? Because output of tsop is high & it goes low for very short period & return to high again. (TSOP can BRM--15S8--11 change TSOP 1738?) Please let me know. Thanks Sir
Reply 9 years ago on Introduction
set the both preset resistor in middle position before the calibration.
you have to adjust the preset resistor for matching reception frequency..
some TSOP sensors are not suitable for continues 38 KHZ signal reception.
metal type tsop is good and it works fine.
Reply 9 years ago on Introduction
I got that! All working good. Thank you so much
9 years ago on Introduction
Great, useful project :) What is the approximate range of the sensor?