SparkFun Line Sensor Breakout - QRE1113 (Digital)

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.

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

SparkFun Line Sensor Breakout - QRE1113 (Digital) Product Help and Resources

Core Skill: Soldering

This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.

1 Soldering

Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels


Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

2 Programming

Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

1 Electrical Prototyping

Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels


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 ) {
    readLine++;
    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.