Creative Commons images are CC BY-NC-SA 3.0

2.95

added to your
shopping cart

quantity
In stock 60 in stock
2.95 1+ units
2.66 10+ units
2.36 100+ units

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"

Features:

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

Documents:

Comments 6 comments

  • 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);

  • Since this is digital, is the output of this a square wave? If so, what is the range of the period? Has anyone used this on an Arduino?


Related Products