QTR-8A Kızıl ötesi sensor kullanılarak yapılmıştır
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.
QTR-8A Çizgi Sensörü
Sensörün isterseniz tüm çıkışlarını kullanamayabilirsiniz.Dilediğiniz şekilde kombinasyon yapma imkanına sahipsiniz.6+2 şeklinde tasarlanmış sensör kartını ihtiyaç duyarsanız iki parçaya bölebiliyor, 6lı ve 2li olmak üzere iki ayrı sensör kartı haline getirebiliyorsunuz.
#include
#define NUM_SENSORS 8
#define NUM_SAMPLES_PER_SENSOR 4
#define EMITTER_PIN 2QTRSensorsAnalog 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()
{
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);
}