QTR-3RC Reflectance Sensor ArrayPololu
The QTR-3RC reflectance sensor array requires digital I/O lines to take readings. The similar QTR-3A reflectance sensor array is available with analog outputs.
The QTR-3RC 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 three IR emitter and receiver (phototransistor) pairs. With sensors spaced at intervals of 0.375″ (9.525 mm) along of the board’s longer axis, this array works well as a minimal detector for line-following robots, as line-following courses are commonly made using 3/4″ (19 mm) black electrical tape. The middle sensor is slightly offset along the short axis of the board.
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 LED current-limiting resistors are set to deliver approximately 17 mA to the LEDs when VCC is 5 V, making the total board consumption just over 50 mA. The schematic diagram of the module is shown below:
This schematic is also available as a downloadable pdf (117k pdf).
For an alternative array with eight sensors and the ability to turn off the IR LEDs to limit power consumption, consider our QTR-8RC reflectance sensor array. For individual reflectance sensors, consider our QTR-1RC and QTR-L-1RC.
- Dimensions: 1.25″ × 0.3″ × 0.1″ (32 mm × 8 mm × 3 mm) (without header pins installed)
- Operating voltage: 5.0 V
- Supply current: 50 mA
- Output format: 3 digital pulse signals
- Optimal sensing distance: 0.125" (3 mm)
- Maximum recommended sensing distance: 0.25" (6 mm)
- Weight without header pins: 0.02 oz (0.6 g)
Interfacing the QTR-3RC Outputs to Digital I/O Lines:
Like the Parallax QTI, the QTR-3RC module has three 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:
- No analog-to-digital converter (ADC) is required
- Improved sensitivity over voltage-divider analog output
- Parallel reading of all three sensors is possible with most microcontrollers
The typical sequence for reading a sensor is:
- 1. Set the I/O line to an output and drive it high
- 2. Wait several microseconds to give the 2.2 nF capacitor node time to reach 5 V
- 3. Make the I/O line an input (high impedance)
- 4. Measure the time for the capacitor node to discharge by waiting for the I/O line to go low
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 three sensors.
Our Pololu AVR library provides functions that make it easy to use these sensors with Orangutan robot controllers; please see the QTR Reflectance Sensors section of our library command reference for more information. We also have a Arduino library for these sensors.
This module has two mounting holes intended for screws (not included); if the mounting holes are not needed, the ends of the PCB can be ground off to make the unit even smaller (less than 1″ wide). The reflectance sensor array ships with a 1×5 straight male header strip and a1×5 right-angle male header strip as shown below. You can also solder wires, such as ribbon cable, directly to the pads for the smallest installation.
- Size: 1.25″ × 0.3″1
- Weight: 0.6 g2
- Supply current: 50 mA
- 1. Mounting holes can be cut/ground off to decrease with to under 1″.
- 2. Without included optional headers.