Pololu firmasının ürettiği Zumo Reflectance Sensorün kullanımı hakkında bazı bilgiler vereceğiz. Bu sensör QTR-8RC sensörü ile aynıdır diyebiliriz. Pololu’nun ürettiği Zumo robot için tasarlanmıştır. Üzerinde 6 adet kızılötesi alıcı – verici ile renk algılama (siyah/beyaz) işlemi yerine getiriliyor. Bu yüzden sıklıkla çizgi izleyen robotlarda kullanılıyor.

Öncelikle bu sensör ile iş yapacaksanız şu kaynakları bilseniz iyi olur:

1- https://www.pololu.com/docs/0J57/2.c  Burada sensör hakkında ayrıntılı bilgi veriliyor.

2- https://forum.pololu.com/  Buradan da takıldığınız yerde daha önce mutlaka takılan vardır. Aratabilirsiniz.

Ben bu sensörü çizgi izleyen robotumda kullanacağım. Bu yüzden öncelikle sensörden değer almaya çalıştım.

Bağlantı şeması olarak şunu kullandım:

Eğer arduino uno kullanıyorsanız 2 nolu pin bağlantısını yapacaksınız. Leonardo kullanıyorsanız da A4 pinini bağlayın. Leo kullananlar kodda A4 değişikliğini yapacaklar. Yukarıda A0,A2, A3, 2,5,11,4 , Vin , GND , 5V girişlerini Zumo sensörüne bağlayın.

Arduino programını açarak, aşağıdaki kodu yapıştırın.

#include <QTRSensors.h>

// This example is designed for use with eight QTR-1RC sensors or the eight sensors of a
// QTR-8RC module.  These reflectance sensors should be connected to digital inputs 3 to 10.
// The QTR-8RC's emitter control pin (LEDON) can optionally be connected to digital pin 2, 
// or you can leave it disconnected and change the EMITTER_PIN #define below from 2 to 
// QTR_NO_EMITTER_PIN.

// The main loop of the example reads the raw sensor values (uncalibrated).
// You can test this by taping a piece of 3/4" black electrical tape to a piece of white 
// paper and sliding the sensor across it.  It prints the sensor values to the serial 
// monitor as numbers from 0 (maximum reflectance) to 2500 (minimum reflectance).


#define NUM_SENSORS   6     // number of sensors used
#define TIMEOUT       2500  // waits for 2500 microseconds for sensor outputs to go low
#define EMITTER_PIN   2     // emitter is controlled by digital pin 2

// sensors 0 through 7 are connected to digital pins 3 through 10, respectively
QTRSensorsRC qtrrc((unsigned char[]) {5,A2,A0,11,A3, 4 },
  NUM_SENSORS, TIMEOUT, EMITTER_PIN); 
unsigned int sensorValues[NUM_SENSORS];


void setup()
{
  delay(500);
  Serial.begin(9600); // set the data rate in bits per second for serial data transmission
  delay(1000);
}


void loop()
{
  // read raw sensor values
  qtrrc.read(sensorValues);

  // print the sensor values as numbers from 0 to 2500, where 0 means maximum reflectance and
  // 2500 means minimum reflectance
  for (unsigned char i = 0; i < NUM_SENSORS; i++)
  {
    Serial.print(sensorValues[i]);
    Serial.print('\t'); // tab to format the raw data into columns in the Serial monitor
  }
  Serial.println();
  
  delay(250);
}

Kodun düzgün çalışması için QTRSensors kütüphanesinin arduinoya kurulmuş olması lazım. Kütüphane linki: https://github.com/pololu/qtr-sensors-arduino

Arduino kodunu yükledikten sonra, beyaz zemin üzerine siyah bir bant yapıştırın. Siyah bant 6 sensörden hangisine gelirse, serial monitörde o sensörün bulunduğu yerde 2500 yazar. Serial monitörü açmak için arduino programı açıkken ctrl+shift+M tuşlarına basabilirsiniz.