Creative Commons images are CC BY 2.0

Description: This version of the QRE1113 breakout board features a digital output, using a capacitor discharge circuit to measure the amount of reflection. This tiny board is perfect for line sensing when only digital I/O is available, and can be used in both 3.3V and 5V systems.

The board’s QRE1113 IR reflectance sensor is comprised of two parts - an IR emitting LED and an IR sensitive phototransistor. When you apply power to the VCC and GND pins the IR LED inside the sensor will illuminate. A 100Ω resistor is on-board and placed in series with the LED to limit current. The output of the phototransistor is tied to a 10nF capacitor. The faster that capacitor discharges, the more reflective the surface is.

These sensors are widely used in line following robots. White surfaces reflect more light than black, so, when directed towards a white surface, the capacitor will discharge faster than it would when pointed towards a black surface.

The power input and output pins are brought out to a 3-pin, 0.1" pitch header. The board also has a single mounting hole if you want to screw it onto something.

We also have an analog version of this board.

Dimensions: 0.3x0.55"


  • 5VDC operating voltage
  • 25mA supply current
  • Digital I/O compatible
  • No ADC required
  • Optimal sensing distance: 0.125" (3mm)


Recommended Products

Customer Comments

  • On Arduino:

    void setup () { pinMode(9, INPUT_PULLUP); }

    void loop () { int val = digitalRead(9); }

  • I think that the 100 ohm is not enough to limit the LED current to the nominal 20mA specified in the component datasheet when powering the sensor with 5V.

    This value is correct for a 3V3 supply, and has been obviously selected for this configuration of use, but it is definitely too low for 5V. The resulting current is (5 - 1.2) / 100 = 38mA. Even if under the absolute maximum (50mA) it is prejudicial to the LED lifetime.

    Conclusion : either mention that the board is designed for a 3V3 usage (hence not for an Arduino) or change the resistor. Apart if your goal is to have customers buy more units after having fried their first batch ;)

  • How can I use these with a raspberry pi?

  • You use the 100-Omh resistor in the IR-LED circuit. Are You sure that the 50 mA current (with 5 volt source) isn’t too large for the QRE1113? IMHO, QRE1113 is too hot.

  • hey sparkers–the schematic and eagle file links are broken. Just FYI

  • Here is an Arduino library for reading Pololu’s version of this sensor. It should work for the Sparkfun version as well.

  • Hi.
    I had a some problem that you.
    pulsein is good, but for me it had a problem with timeout. When sensor get a black floor, pulsein didn’t return any value and “void loop()” was freezed waiting for value.
    Now I used the code below:
    pinMode( pinLine, OUTPUT );
    digitalWrite( pinLine, HIGH );
    delayMicroseconds( 50 );
    pinMode( pinLine, INPUT );
    // long readLine = pulseIn( pinLine, HIGH, 1000000L ); // wait max for 1 second.
    long readLine = 0;
    while ( digitalRead( pinLine ) == HIGH ) {
    if ( readLine == 15 ) { break; }
    delay( 20 );
    In my case, 1 = white and 15 = black.

  • Actually, I think that should be pulseIn(xxx, HIGH);

  • Looking at the schematic, I assume that you have to set the digital I/O line high to charge the cap, then flip it to input and time how long it stays high, e.g.
    pinMode(xxx, OUTPUT);
    digitalWrite(xxx, HIGH);
    delayMicroseconds(50); // 220 ohm * 1e-9 farads * fudgefactor
    pinMode(xxx, INPUT);
    int reading = pulseIn(xxx, LOW);

Customer Reviews

No reviews yet.