KIZILÖTESİ SEKİZLİ SENSOR UYGULAMASI

QTR-8A Kızıl ötesi sensor kullanılarak yapılmıştır

qtr8rc sensor 1

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.

qtr8a sensor 1

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
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 2

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()
{
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);
}

Yorum bırakın

Scroll to Top