The product is currently Out-of-Stock. Enter your email address below and we will notify you as soon as the product is available.

Infrared (IR) break-beam sensors are a simple way to detect motion. They work by having an emitter side that sends out a beam of human-invisible IR light, then a receiver across the way which is sensitive to that same light. When something passes between the two, and its not transparent to IR, then the 'beam is broken' and the receiver will let you know.

Compared to PIR sensors, breakbeams are faster and allow better control of where you want to detect the motion. Compared to Sonar modules, they're less expensive. However, you do need both emitter and receiver on opposite sides of the area you want to monitor.

This is the 3mm IR version.  It works up to 25cm / 10". You can power it from 3.3V or 5V, but 5V will get you better range and is what we suggest. The receiver is open collector transistor output which means that you do need a pull up resistor if you want to read a digital signal off the signal wire. Most microcontrollers have the ability to turn on a built in pull up resistor. If you do not, connect a 10K resistor between the white wire of the receiver and the red wire. If you want to control a relay or LED or whatever, it can sink up to 100mA to ground.

Technical details
  • Sensing Distance: Approx 25cm / 10"
  • Power Voltage: 3.3 - 5.5 VDC
  • Emitter Current Draw: 10 mA @ 3.3V, 20 mA @ 5V
  • Output Current Capability of receiver: 100 mA sink
  • Transmitter/Receiver LED Angle: 10°
  • Response Time: <2 ms
  • Dimensions (mm): 20x10x8 / 0.8" x 0.4" x 0.3"
  • Cable Length (mm): 234 / 9.2"
  • Weight (of each half): ~3g
Sketch for Arduino

IR Breakbeam sensor demo!

#define LEDPIN 13
// Pin 13: Arduino has an LED connected on pin 13
// Pin 11: Teensy 2.0 has the LED on pin 11
// Pin 6: Teensy++ 2.0 has the LED on pin 6
// Pin 13: Teensy 3.0 has the LED on pin 13

#define SENSORPIN 4

// variables will change:
int sensorState = 0, lastState=0; // variable for reading the pushbutton status

void setup() {
// initialize the LED pin as an output:
// initialize the sensor pin as an input:
digitalWrite(SENSORPIN, HIGH); // turn on the pullup


void loop(){
// read the state of the pushbutton value:
sensorState = digitalRead(SENSORPIN);

// check if the sensor beam is broken
// if it is, the sensorState is LOW:
if (sensorState == LOW) {
// turn LED on:
digitalWrite(LEDPIN, HIGH);
else {
// turn LED off:
digitalWrite(LEDPIN, LOW);

if (sensorState && !lastState) {
if (!sensorState && lastState) {
lastState = sensorState;

Documentation and link


Write a review

Please login or register to review

IR Break Beam Sensor - 3mm LEDs

  • Price: 4.10€

The product is currently Out-of-Stock. Enter your email address below and we will notify you as soon as the product is available.