QTR-8A Kullanımı

 QTR-8A genellikle çizgi izleyen robotlarda kullanılan bir sensör çeşididir.Üzerinde 1 cm aralıklarla yerleştirilmiş kızılötesi kontrast sensörleri bulunmaktadır.Bu sensörler siyah ve beyaz rengi ayrıt edebilirler.Uzun süre stabil ve sorunsuz çalışabilmektedirler.Bu yüzdende robot projelerinde çok fazla tercih edilir.Kart üzerindeki her sensör ayrı bir analog voltaj çıkışı sağlar.Zeminin ışığı yansıtması veya cisimle olan mesafesine göre voltaj çıkışı analog olarak değişir. Yansıma arttıkça çıkış voltajı da yükselir.
Ayrıca sensör yakınlık ve cisim algılama sensörü olarak da kullanılabilmektedir.Çalışma voltajı 3.3 volt ile 5 votl arasındadır.Çektiği maksimum akım 100mAh tir.İdeal algılama mesafesi 3mm dir.Bu uzaklıktan fazla olduğunda kararlı çalışmaz.Sorunlar çıkartabilir.Maksimum algılama mesafesi ise 6mm dir.
Kütüphane dosyasını buradan indirebilir Arduino klasörü içerisinde lıbrary bölümüne atabilirsiniz.
Arduino’ya başlangıç için ve programlama temellerinin anlaşılması için yapılacak en basit örnekler ledlerle yapılan örneklerdir. Ledler hem kullanımı kolay hem ucuz hemde gereksinimi düşük olan elemanlardır. Bu yazımızda arduino’daki temel kodları ledler üzerinde yapılacak farklı örneklerle göstermeye çalışacağız.

ÖRNEK KOD;

   //////////////////////////////////////////////
  //          Arduino Projeleri İçin;         //
 //                                          //
//  https://ozkantastan.blogspot.com.tr/    //

/////////////////////////////////////////////
#include <QTRSensors.h>
#define NUM_SENSORS             8  
#define NUM_SAMPLES_PER_SENSOR  4  
#define EMITTER_PIN             2  

// sensors 0 through 7 are connected to analog inputs 0 through 5, respectively
QTRSensorsAnalog qtra((unsigned char[]) {0, 1, 2, 3, 4, 5, 6, 7}, 
  NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];

void setup()
{
  // initialize serial communication
  Serial.begin(9600);
  delay(500);
  int i;
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);    
  for (i = 0; i < 400; i++)  
  {
    qtra.calibrate();      
  }
  digitalWrite(13, LOW);   


  for (i = 0; i < NUM_SENSORS; i++)
  {
    Serial.print(qtra.calibratedMinimumOn[i]);
    Serial.print(' ');
  }
  Serial.println();

  
  for (i = 0; i < NUM_SENSORS; i++)
  {
    Serial.print(qtra.calibratedMaximumOn[i]);
    Serial.print(' ');
  }
  Serial.println();
  Serial.println();
  delay(1000);
}

void loop()
{

  unsigned int position = qtra.readLine(sensorValues);

  
  unsigned char i;
  for (i = 0; i < NUM_SENSORS; i++)
  {
    Serial.print(sensorValues[i] * 10 / 1001);
    Serial.print(' ');
  }
  Serial.print("    ");
  Serial.println(position);

  delay(250);