Reliable and Low Cost IR Proximity Sensor

About: embedded system enthusiast ...

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:

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

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.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




    • Organization Contest

      Organization Contest
    • Paper Contest

      Paper Contest
    • Faux-Real Contest

      Faux-Real Contest

    37 Discussions


    1 year ago

    Does the yellow LED itself have a purpose besides being an indicator?

    Jose MichaelD

    2 years ago

    Hi, around how many mA does the circuit consume?


    5 years ago on Introduction

    Would I be able to use other IR Sensors by Vishay?
    Such as these:
    I see no TSOP 1738, but there are other 38 KHz modules

    1 reply

    4 years ago

    when i cnnct the sensor board to my arduino my arduino switches off what to do pls help...


    4 years ago

    can you please ellaborate the connection of preset resistors i still a school boy so i m not able to undrstnd


    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 ?


    4 years ago on Step 2

    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!

    1 reply

    5 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

    2 replies

    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.

    5 cm maximum , because it is a proximity sensor..
    you can increase the sensing range using high power IR led [555 output LED].

    Tom Hargrave

    5 years ago on Introduction

    It looks like this part will work in its place.

    1 reply

    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


    5 years ago on Introduction

    wHOA! Voted!

    A question: Wich program did you use to make this wonderful PCB? Does it generates the 3d view too?