Arduino ile Engel Algılama

Bu uygulamada engel algılamak için dijital mesafe sensörü kullanacağız. Bu sensör iç yapısında bulunan kızılötesi ışık yayan diyot sayesinde karşısına doğru kızılötesi ışık yayar, bu sensörün önünde bir cisim varsa kızılötesi ışık bu cisme çarparak geriye doğru yansıma yapar ve yine sensörün iç yapısında bulunan foto transistör tarafından yansıyan kızılötesi ışık algılanır. Sensörün önünde bir cisim yoksa geriye doğru herhangi bir yansıma olmaz.

Kullanacağımız mesafe sensörünün önünde bir cisim yoksa dijital çıkışına enerji verir, Lojik1(HIGH) yapar. Önünde cisim varsa bunu algılayıp dijital çıkışına verdiği enerjiyi keser, Lojik0(LOW) yapar.

Mesafe sensörünü bir butona benzetirsek önünde cisim yokken butona basılmamış gibi, önünde cisim varken butona basılmış gibi düşünürsek; sensörün Pull-Up direnç bağlı bir buton gibi çalıştığını görürüz.

Mesafe sensörü olarak MZ80 Endüstriyel sensör kullanarak uygulamayı yapacağız. MZ80; maksimum 80cm menzilli kızılötesi sensördür. Dijital çıkışlı, yüksek kaliteli bir sensördür. Arkasındaki trimpot ile menzili 3 ile 80 cm arasında ayarlanabilir.

3 tane kablosu vardır. Kırmızı renkli kabloyu Arduinonun 5V etiketli pinine, siyah renkli kabloyu GND etiketli pinine bağlanır. Sensörün sarı renkli kablosu ise dijital çıkış almamızı sağlar. Sensörün önünde bir cisim yoksa dijital çıkışına enerji verir. Lojik1(HIGH) yapar. Sensörün önünde cisim varsa bunu algılayıp dijital çıkışına verdiği enerjiyi keser. Lojik0(LOW) yapar. 2 msn gibi çok kısa bir sürede tepki verir.

Fritzing programında MZ80 olmadığı için Bread Board üzerinde bağlantısını yaptığımız sensör MZ80 değil, ama bağlantıları MZ80 ile aynı olduğu için onu seçtik.

Arduino programı:

/* "Engel Algılama" Arduinonun 12 nolu pinine bağlı 
    mesafe sensörü engel algıladığında 13 nolu pinine bağlı 
    LED'i yakan program. diyot.net */
    
const int sensorPin = 12;   // sensör bağlanan pini sensorPin olarak isimlendir.
const int ledPin =  13;   // LED bağlanan pini ledPin olarak isimlendir.

int sensorDurumu;  // SENSÖR durumunu okuduktan sonra kaydetmek için değişken tanımla.

void setup() {
  
  pinMode(ledPin, OUTPUT);    // LED bağlanan pini çıkış olarak ayarla.
  
  pinMode(sensorPin, INPUT);   // sensor bağlanan pini giriş olarak ayarla.
}

void loop() {
 
  sensorDurumu = digitalRead(sensorPin);  
  // sensörün algılayıp-algılamadığını okuyup sonucu sensorDurumu değişkenine kaydet.

  if (sensorDurumu == LOW) {    // sensör algıladı mı? algılarsa sensorDurumu lojik0 olur.
    
    digitalWrite(ledPin, HIGH);   // sensor algıladıysa LED'i yak.
  } else {                        // algılamadıysa!
   
    digitalWrite(ledPin, LOW);     // LED'i söndür.
  }
}

Programda sensörün önünde bir cisim olduğu algılanırsa if şartı sağlanır ve digitalWrite komutuyla Arduinonun LED bağlı 13. pinine enerji verilir. Sensörün önünde cisim yoksa if şartı sağlanmaz else kısmında digitalWrite komutuyla LED bağlı 13. pinin enerjisi kesilir.

YAZAR : Admin

Elektronik Mühendisi / E.Üni. Kalibrasyon Lab. Sorumlusu / Biyomedikal Kalibrasyon Laboratuvarı Sorumlu Müdürü (Sağ.Bak.) / X-Işınlı Görüntüleme Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) / Ultrason-Doppler Sistemleri Test Kontrol ve Kalibrasyon Uzmanı (Sağ.Bak.) - Hatalı veya kaldırılmasını istediğiniz sayfaları diyot.net@gmail.com bildirin

BU YAZIYI DA İNCELEDİNİZ Mİ ?

Arduino ile BD135 – BD136 transistörlerini kullanarak DC Motor kontrolü

Çeşitli robot projelerinde kullanılan DC motorları Arduinoya doğrudan bağlayıp çalıştıramayız. Çünkü Arduinonun giriş-çıkış pinleri en …

Bir cevap yazın