Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Problems with QTR-8RC Sensor


Please any one help me my qtr-8rc sensor not working not even i apply vcc and ground through arduino mega does it glow led when we plug in please help

PID based Line Following using Pololu QTR-8RC Sensors
PID based Line Following using Pololu QTR-8RC Sensors


The LEDs should be on when the board is powered, but they are IR LEDs, so you cannot see them with the naked eye. How are you testing to see if the IR LEDs are on? You can see how you might be able to test those using some cameras in the “Additional Considerations” section of the “QTR-8A and QTR-8RC Reflectance Sensor Array User’s Guide”. Can you post the code you are using on your Arduino Mega? Also, can you post some pictures showing how you have everything connected?



I am new to qtr sensor i tried QTRRCExample but it does not help me


These are the connections as in arduino qtr library


(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)


what should i do with digital pin 20 kindly help me

#include <QTRSensors.h>
#define KP 0.5
#define KD 0
#define M1_MAX_SPEED 70
#define M2_MAX_SPEED 70
#define M1_DEFAULT_SPEED 50
#define M2_DEFAULT_SPEED 50
#define MIDDLE_SENSOR 4, 5
#define NUM_SENSORS  8     // number of sensors used
#define TIMEOUT       2500  // waits for 2500 us for sensor outputs to go low
#define EMITTER_PIN   2     // emitter is controlled by digital pin 2
#define DEBUG 1 // set to 1 if serial debug output needed
#define rightMotor1 14
#define rightMotor2 15
#define rightMotorPWM 16
#define leftMotor1 17
#define leftMotor2 18
#define leftMotorPWM 19
#define motorPower 20
QTRSensorsRC qtrrc((unsigned char[]) {3,4,5,6,7,8,9,10} ,NUM_SENSORS, TIMEOUT, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];
void setup()
  pinMode(rightMotor1, OUTPUT);
  pinMode(rightMotor2, OUTPUT);
  pinMode(rightMotorPWM, OUTPUT);
  pinMode(leftMotor1, OUTPUT);
  pinMode(leftMotor2, OUTPUT);
  pinMode(leftMotorPWM, OUTPUT);
  pinMode(motorPower, OUTPUT);
int lastError = 0;
int  last_proportional = 0;
int integral = 0;
void loop()
  unsigned int sensors[8];
  int position = qtrrc.readLine(sensors);
  int error = position - 2500;
  int motorSpeed = KP * error + KD * (error - lastError);
  lastError = error;
  int rightMotorSpeed = M2_DEFAULT_SPEED - motorSpeed;
  int leftMotorSpeed = M1_DEFAULT_SPEED + motorSpeed;
    if (rightMotorSpeed > M1_MAX_SPEED ) rightMotorSpeed = M1_MAX_SPEED; // limit top speed
  if (leftMotorSpeed > M2_MAX_SPEED ) leftMotorSpeed = M2_MAX_SPEED; // limit top speed
  if (rightMotorSpeed < 0) rightMotorSpeed = 0; // keep motor above 0
  if (leftMotorSpeed < 0) leftMotorSpeed = 0; // keep motor speed above 0
  digitalWrite(motorPower, HIGH);
  digitalWrite(rightMotor1, HIGH);
  digitalWrite(rightMotor2, LOW);
  analogWrite(rightMotorPWM, rightMotorSpeed);
  digitalWrite(motorPower, HIGH);
  digitalWrite(leftMotor1, HIGH);
  digitalWrite(leftMotor2, LOW);
  analogWrite(leftMotorPWM, leftMotorSpeed);
void manual_calibration() {
  int i;
  for (i = 0; i < 250; i++)  // the calibration will take a few seconds
  if (DEBUG) { // if true, generate sensor dats via serial output
    for (int i = 0; i < NUM_SENSORS; i++)
      Serial.print(' ');
    for (int i = 0; i < NUM_SENSORS; i++)
  Serial.print(' ');


I mean what is means by motorPower what should i connect to this pin
And after runner QTRRCExample does qtr sensor save the data with in it self kindly help


Until we can get your sensor working, I recommend using a simpler example to troubleshoot your sensors. Can you try running the “QTRRCRawValuesExample.ino” example and post a screen capture of the output as you did before? Do the values change when you pass the sensor over your line? Also, can you post a close up picture of the connections to the QTR-8RC senor that shows the pins you have connected to on the sensor?



Digital pin 8 will be connected to what


Thanks Derrill
These are some pictures by running “QTRRCRawValuesExample” and also connection pins that i have connected…

Serial Comm Output

Digital pin 2 to digital pin 10 connected to Qtr senser

Qtr Sensor Connections

Mega Complete Connections Including Driver module pin connected with Digital pin 14 to 19

Line that I draw for Calibration

And again Thanks for helping me Derrill


The output of the QTRRCRawValuesExample is about what I expect from a working sensor. Can you try the “QTRRCExample.ino” and post the output as before? That demo does a calibration with the sensors, and when they are being calibrated (indicated by the user LED on the Arduino), you should be sure to pass each sensor on the board over your black line repeatedly so that each sensor passes over both the black and white surface.

By the way, I noticed that your line was made with a black marker. In my experience a line like that can give poor or inconsistent results due to the changes in line density. I suggest using black electrical tape to make your lines more uniform in size and IR reflectivity.