- Email: [email protected]
This Infrared Tracking Sensor is built for line-following cars and reflective target detection. It uses an infrared transmitter and receiver pair with fixed threshold behavior, reducing the need for manual potentiometer adjustment during robot setup.
The module outputs a digital signal after reflected infrared light is processed by a Schmitt trigger or inverter circuit. It works from 3.3 V to 5 V and can connect directly to microcontroller GPIO pins or the Sensor Shield Expansion Board V5.
Mount the sensor close to the surface for best results. Reflective response depends on distance, ambient light, surface color, and the angle between the sensor and target.
| Parameter | Value |
|---|---|
| Sensor type | Infrared reflection tracking sensor |
| Detection principle | IR emitter and receiver reflection |
| Output type | Digital signal |
| Operating voltage | 3.3 V to 5 V |
| Detection distance | 1 mm to 20 mm |
| Threshold style | Fixed-distance design, no routine adjustment required |
| Indicator | Blue detection indicator LED |
| Connector | 2.54 mm pitch 3-pin header |
| Pinout | GND, VCC, S |
| Recommended use | Line-following robot and reflective mark detection |
| Development support | Arduino, ESP32, STM32, Raspberry Pi Pico GPIO |
Use Infrared Tracking Sensor as a digital line sensor. The output is commonly active-low when a reflective target is detected, so the code prints line state for calibration.
const int SENSOR_PIN = 2;void setup() { pinMode(SENSOR_PIN, INPUT); Serial.begin(115200);}void loop() { bool activeLow = digitalRead(SENSOR_PIN) == LOW; Serial.println(activeLow ? "line_or_reflection_detected" : "background"); delay(50);}A single sensor can be used for simple demonstrations, or duplicated left/right for a basic line-following robot.
const int LEFT_SENSOR = 2;const int RIGHT_SENSOR = 3;const int LEFT_MOTOR = 5;const int RIGHT_MOTOR = 6;void setup() { pinMode(LEFT_SENSOR, INPUT); pinMode(RIGHT_SENSOR, INPUT); pinMode(LEFT_MOTOR, OUTPUT); pinMode(RIGHT_MOTOR, OUTPUT);}void loop() { bool left = digitalRead(LEFT_SENSOR) == LOW; bool right = digitalRead(RIGHT_SENSOR) == LOW; analogWrite(LEFT_MOTOR, right ? 180 : 90); analogWrite(RIGHT_MOTOR, left ? 180 : 90);}Count passing marks, slots, or reflective labels with a debounce interval to prevent repeated triggers.
const int SENSOR_PIN = 2;unsigned long lastHit = 0;unsigned long count = 0;void setup() { pinMode(SENSOR_PIN, INPUT); Serial.begin(115200);}void loop() { bool detected = digitalRead(SENSOR_PIN) == LOW; if (detected && millis() - lastHit > 150) { count++; lastHit = millis(); Serial.println(count); }}Q: Can this module work with Arduino?
A: Yes. Connect VCC, GND, and the signal pin to an Arduino-compatible board or an OpenELAB Sensor Shield V5.
Q: Can it work with 3.3 V controllers?
A: Yes for the listed 3.3 V to 5 V modules, but keep analog output within the controller ADC range.
Q: Is calibration required?
A: For threshold or quantitative use, calibrate in the final installation and record baseline readings.
Q: Can I use long wires?
A: Shorter wires are better for analog stability; use averaging in firmware if readings fluctuate.
Q: Does the module output precise engineering units?
A: Most of these modules provide relative analog or digital signals, not certified measurement data.
Q: What should I check first if it does not trigger?
A: Verify power, ground, pin mapping, threshold setting, and whether the signal is active-high or active-low.
Q: Is it suitable outdoors?
A: Only with enclosure protection. Keep connectors and electronics away from water and corrosion.
Q: Can it drive a relay or motor directly?
A: No. Use the module as an input to a controller, then drive a suitable relay or motor driver.
This Infrared Tracking Sensor is built for line-following cars and reflective target detection. It uses an infrared transmitter and receiver pair with fixed threshold behavior, reducing the need for manual potentiometer adjustment during robot setup.
The module outputs a digital signal after reflected infrared light is processed by a Schmitt trigger or inverter circuit. It works from 3.3 V to 5 V and can connect directly to microcontroller GPIO pins or the Sensor Shield Expansion Board V5.
Mount the sensor close to the surface for best results. Reflective response depends on distance, ambient light, surface color, and the angle between the sensor and target.
| Parameter | Value |
|---|---|
| Sensor type | Infrared reflection tracking sensor |
| Detection principle | IR emitter and receiver reflection |
| Output type | Digital signal |
| Operating voltage | 3.3 V to 5 V |
| Detection distance | 1 mm to 20 mm |
| Threshold style | Fixed-distance design, no routine adjustment required |
| Indicator | Blue detection indicator LED |
| Connector | 2.54 mm pitch 3-pin header |
| Pinout | GND, VCC, S |
| Recommended use | Line-following robot and reflective mark detection |
| Development support | Arduino, ESP32, STM32, Raspberry Pi Pico GPIO |
Use Infrared Tracking Sensor as a digital line sensor. The output is commonly active-low when a reflective target is detected, so the code prints line state for calibration.
const int SENSOR_PIN = 2;void setup() { pinMode(SENSOR_PIN, INPUT); Serial.begin(115200);}void loop() { bool activeLow = digitalRead(SENSOR_PIN) == LOW; Serial.println(activeLow ? “line_or_reflection_detected” : “background”); delay(50);}
A single sensor can be used for simple demonstrations, or duplicated left/right for a basic line-following robot.
const int LEFT_SENSOR = 2;const int RIGHT_SENSOR = 3;const int LEFT_MOTOR = 5;const int RIGHT_MOTOR = 6;void setup() { pinMode(LEFT_SENSOR, INPUT); pinMode(RIGHT_SENSOR, INPUT); pinMode(LEFT_MOTOR, OUTPUT); pinMode(RIGHT_MOTOR, OUTPUT);}void loop() { bool left = digitalRead(LEFT_SENSOR) == LOW; bool right = digitalRead(RIGHT_SENSOR) == LOW; analogWrite(LEFT_MOTOR, right ? 180 : 90); analogWrite(RIGHT_MOTOR, left ? 180 : 90);}
Count passing marks, slots, or reflective labels with a debounce interval to prevent repeated triggers.
const int SENSOR_PIN = 2;unsigned long lastHit = 0;unsigned long count = 0;void setup() { pinMode(SENSOR_PIN, INPUT); Serial.begin(115200);}void loop() { bool detected = digitalRead(SENSOR_PIN) == LOW; if (detected && millis() – lastHit > 150) { count++; lastHit = millis(); Serial.println(count); }}
Q: Can this module work with Arduino?
A: Yes. Connect VCC, GND, and the signal pin to an Arduino-compatible board or an OpenELAB Sensor Shield V5.
Q: Can it work with 3.3 V controllers?
A: Yes for the listed 3.3 V to 5 V modules, but keep analog output within the controller ADC range.
Q: Is calibration required?
A: For threshold or quantitative use, calibrate in the final installation and record baseline readings.
Q: Can I use long wires?
A: Shorter wires are better for analog stability; use averaging in firmware if readings fluctuate.
Q: Does the module output precise engineering units?
A: Most of these modules provide relative analog or digital signals, not certified measurement data.
Q: What should I check first if it does not trigger?
A: Verify power, ground, pin mapping, threshold setting, and whether the signal is active-high or active-low.
Q: Is it suitable outdoors?
A: Only with enclosure protection. Keep connectors and electronics away from water and corrosion.
Q: Can it drive a relay or motor directly?
A: No. Use the module as an input to a controller, then drive a suitable relay or motor driver.
There are no reviews yet. Be the first to review this product!
Add a review
Your email address will not be published. Required fields are marked *