The QTR-8RC reflectance sensor array is intended as a line sensor, but it can be used as a general-purpose proximity or reflectance sensor. The module is a convenient carrier for eight IR emitter and receiver (phototransistor) pairs evenly spaced at intervals of 0.375″ (9.525 mm). Each phototransistor uses a capacitor discharge circuit that allows a digital I/O line on a microcontroller to take an analog reading of reflected IR by measuring the discharge time of the capacitor. Shorter capacitor discharge time is an indication of greater reflection.
The outputs are all independent, but the LEDs are arranged in pairs to halve current consumption. The LEDs are controlled by a MOSFET with a gate normally pulled high, allowing the LEDs to be turned off by setting the MOSFET gate to a low voltage. Turning the LEDs off might be advantageous for limiting power consumption when the sensors are not in use or for varying the effective brightness of the LEDs through PWM control.
The LED current-limiting resistors for 5 V operation are arranged in two stages; this allows a simple bypass of one stage to enable operation at 3.3 V. The LED current is approximately 20-25 mA, making the total board consumption just under 100 mA. The schematic diagram of the module is shown below:
Specifications
- Dimensions: 2.95″ x 0.5″ x 0.125″ (without header pins installed)
- Operating voltage: 3.3-5.0 V
- Supply current: 100 mA
- Output format: digital I/O compatible
- Optimal sensing distance: 0.125″ (3 mm)
- Maximum recommended sensing distance: 0.375″ (9.5 mm)
- Weight without header pins: 0.11 oz (3.09 g)
Interfacing the QTR-8RC Outputs to Digital I/O Lines
Like the Parallax QTI, the QTR-8RC module has eight identical sensor outputs that require a digital I/O line capable of first charging the output capacitor (by driving the line high) and then measuring the time for the capacitor to discharge through the phototransistor. This measurement approach has several advantages, especially when coupled with the ability of the QTR-8RC module to turn off LED power:
- No analog-to-digital converter (ADC) is required
- Improved sensitivity over voltage-divider analog output
- Parallel reading of all eight sensors is possible with most microcontrollers
- Parallel reading allows optimized use of LED power enable option
The typical sequence for reading a sensor is:
- Turn on IR LEDs (optional)
- Set the I/O line to an output and drive it high
- Allow at least 10 us for the 10 nF capacitor to charge
- Make the I/O line an input (high impedance)
- Measure the time for the capacitor to discharge by waiting for the I/O line to go low
- Turn off IR LEDs (optional)
These steps can typically be executed in parallel on multiple I/O lines.
With a strong reflectance, the discharge time can be as low as several dozen microseconds; with no reflectance, the discharge time can be up to a few milliseconds. The exact time of the discharge depends on your microcontroller’s I/O line characteristics. Meaningful results can be available within 1 ms in typical cases (i.e. when not trying to measure subtle differences in low-reflectance scenarios), allowing up to 1 kHz sampling of all 8 sensors. If lower-frequency sampling is sufficient, substantial power savings can be realized by turning off the LEDs. For example, if a 100 Hz sampling rate is acceptable, the LEDs can be off 90% of the time, lowering average current consumption from 100 mA to 10 mA.
Our Pololu AVR library provides functions that make it easy to use these sensors with our Orangutan robot controllers and other AVR-based controller boards such as Arduinos. Please see section 11 of our library command reference for more information.
Breaking the Module in Two
If you don’t need or cannot fit all eight sensors, you can break off two sensors and still use all 8 sensors as two separate modules, as shown below. The PCB can be scored from both sides along the perforation and then bent until it snaps apart. Each of the two resulting pieces will function as an independent line sensor.
Included Components
This module ships with a 25-pin 0.1″ header strip and a 100 Ohm through-hole resistor.
You can break the header strip into smaller pieces and solder them onto your reflectance sensor array as desired, or you can solder wires directly to the unit or use a right-angle header strip for a more compact installation. The pins on the module are arranged so that they can all be accessed using either an 11×1 strip or an 8×2 strip.
The resistor is required to make the two-sensor array functional after the original eight-sensor array is broken into two pieces. This resistor is only needed once the board has been broken.
Reference
- QTR-8A and QTR-8RC Reflectance Sensor Array User’s Guide: QTR-8x.pdf
- Pololu QTR Reflectance Sensor Application Note: QTR_application_note.pdf
- Pololu AVR C/C++ Library User’s Guide: pololu_avr_library.pdf
- Arduino Library for the Pololu QTR Reflectance Sensors: Github
- Pololu AVR Library Command Reference: avr_library_commands.pdf
- Building Line Following and Line Maze Courses: building_line_courses.pdf
File downloads
- Datasheet for Fairchild’s QRE1113GR reflective object sensor
- This is the sensor that we initially used in the Pololu QTR reflectance sensors, but we have since switched to a similar generic unit that has slightly longer range.