Kızılötesi sensörler, nesnelerin varlığını ve mesafesini ölçmek için kullanılan elektronik cihazlardır. Arduino gibi mikrokontrolörlerle birlikte kullanılarak, otomatik kapı açma, insan varlığı algılama ve çizgi izleme gibi birçok proje geliştirilebilir.

  1. Gerekli asıl malzemeler : Kızılötesi sensör, Arduino ve jumper kabloları.
    • Kızılötesi sensörün VCC pinini Arduino’nun 5V pinine, GND pinini Arduino’nun GND pinine, sinyal pinini ise Arduino’nun dijital pinine bağlayın.
      • Arduino IDE’de, sensörün sinyal pini için bir dijital giriş değişkeni tanımlıyoruz. Ardından, sensörün sinyal pini üzerinden gelen verileri okuyan bir döngü oluşturup ve bu verileri seri monitöre yazdırıyoruz.
        • Sensörü test etmek için Arduino’yu bilgisayara bağlayın ve kodu yükleyin. Sensörün önüne bir nesne koyun ve seri monitörde sensörden gelen verileri izleyin. Sensör, bir nesne algıladığında sinyal çıktısı verir.
          • Sensörü kullanarak birçok proje geliştirebiliriz. Örneğin, sensörü kullanarak otomatik bir kapı açabiliriz. Kapıyı açmak için sensör, insan varlığını algılar ve kapı açılır. Kapı açık olduğu sürece, sensör sürekli olarak çevresindeki nesneleri tarar ve kapı kapanmadan önce insan varlığını tespit eder.

Eğer bu aşamaları hazırladıysanız, Arduino ile Kızılötesi sensörü kullanabilirsiniz. Bu sensörlerin kullanımı, birçok farklı proje için uygundur ve Arduino gibi mikrokontrolörlerle birlikte kullanılarak, birçok farklı özellik eklenerek daha da geliştirilebilir.

Örneğimizde, sensörün önündeki nesne mesafesini ölçeceğiz ve LCD ekran üzerinde görüntüleyeceğiz.

Malzemeler:

  • Arduino Uno
  • Kızılötesi mesafe sensörü
  • LCD ekran (Tür i2C) (i2c olmayan bir LCD de kullanılabilir.
  • Potansiyometre (kontrast ayarı için) 10K Ohm (Normal LCD için gerekli i2c var ise gerek yok!)
  • Breadboard
  • Jumper kabloları
//www.bozukdevre.net
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2); // LCD ekranın adresi

const int irSensorPin = 2; // kızılötesi sensör
unsigned long previousMillis = 0; // zamanlama 
const long interval = 500; // veri okuma aralığı

void setup() {
  lcd.init(); // LCD ekranı başlat
  lcd.backlight(); // LCD ekranın arka ışığını aç
  lcd.setCursor(0, 0); // LCD ekranın başlangıç konumuna ayarla
  lcd.print("Mesafe Olcumu"); // LCD ekranı için başlık
  pinMode(irSensorPin, INPUT); // kızılötesi sensör pin
}

void loop() {
  unsigned long currentMillis = millis(); // geçen süreyi oku

  if (currentMillis - previousMillis >= interval) { // veri 

    previousMillis = currentMillis; // zamanı güncelle

    int distance = getDistance(); // mesafeyi oku

    lcd.setCursor(0, 1); // LCD ekranın 2. satırına ayarla
    lcd.print("Mesafe: "); // LCD ekranı için başlık
    lcd.print(distance); // mesafeyi yazdır
    lcd.print(" cm"); // birim olarak santimetre yazdır
  }
}

int getDistance() {
  int duration, distance;

  // sensörden sinyal alınması için bir süre bekleyin
  digitalWrite(irSensorPin, LOW);
  delayMicroseconds(2);
  // 10 mikrosaniye boyunca sinyal gönderin
  digitalWrite(irSensorPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(irSensorPin, LOW);
  // sensörden sinyal alın
  duration = pulseIn(irSensorPin, HIGH);
  // sinyal süresini mesafeye çevirin
  distance = duration * 0.034 / 2; // 

  return distance; // mesafeyi döndür
}

Bu kodlar i2C LCD için kodlanmıştır. Eğer normal bir LCD varsa elinizde kütüphaneyi değiştirerek kodu kullanabilirsiniz.

Arduino PinleriLCD EkranıKızılötesi Sensör
GNDGNDGND
5VVCCVCC
A4 (SDA)SDA
A5 (SCL)SCL
2Sinyal(S) pini Arduino 2 numaralı dijital pine bağlanacaktır.
Bağlantı tablosu