Kızılötesi (Infrared) Haberleşme

Kızılötesi (Infrared) Haberleşme

Giriş

Ev otomasyonundan uzaktan kumandalara kadar birçok alanda kullanılan kızılötesi (IR) iletişim, basit uygulamalarla da öğrenilebilecek oldukça kullanışlı bir teknolojidir. Bu yazıda, bir IR verici ve bir IR alıcı kullanarak bir LED’in uzaktan kontrol edilmesini sağlayan temel bir Arduino uygulamasını ele alacağız.

Projenin Amacı

Bu projede bir butona basıldığında, IR verici belirli bir kod gönderir. IR alıcı bu kodu algıladığında, bağlı olduğu LED’in durumunu değiştirir (yanıyorsa söner, sönükse yanar). Böylece uzaktan bir LED kontrolü gerçekleştirilmiş olur.


Kullanılan Malzemeler

  • 2 adet Arduino
  • IR LED
  • Buton
  • 330 ohm direnç (LED için)
  • Bağlantı kabloları
  • LED

IR Verici Kodu

#define IR_SEND_PIN 3
#define buton 8
#include <IRremote.h>

void setup() {
  pinMode(buton, INPUT);
}

uint32_t sAddress = 0x1A;
uint32_t sCommand = 32;

void loop() {
  if (digitalRead(buton))
  {
  IrSender.sendNEC(sAddress, sCommand);
  delay(300);
  }
}

Açıklamalar:

  • IR_SEND_PIN 3: IR LED’in bağlı olduğu pin.
  • buton 8: Buton pini. Basıldığında IR kodu gönderilir.
  • IrSender.sendNEC(sAddress, sCommand); fonksiyonu ile NEC protokolü kullanılarak belirli bir adres ve komut gönderilir.

IR Alıcı Kodu

#include <IRremote.h>
#define RECV_PIN 6
#define LED 12
IRrecv irrecv(RECV_PIN);
uint32_t gelen;
uint32_t kod = 0x1A;
decode_results results;

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  irrecv.enableIRIn();
}

void loop() {
  if (irrecv.decode(&results)) {
    gelen=results.value,HEX;
     if (gelen==kod) 
        {
          digitalWrite(LED, (!digitalRead(LED)));
          Serial.println(gelen);
        }
    irrecv.resume();
  }
  delay(300);
}

Açıklamalar:

  • RECV_PIN 6: IR alıcının bağlı olduğu pin.
  • LED 12: Kontrol edilen LED pini.
  • kod = 0x1A: Gelen sinyalin eşleşeceği adres kodu.
  • IR alıcıdan gelen kod, results.value ile okunur ve eğer kod ile eşleşirse LED’in durumu değiştirilir.

Dikkat Edilmesi Gereken Noktalar

  • Hem alıcı hem verici Arduino’ya IRremote kütüphanesi eklenmiş olmalıdır.
  • IR verici kodu sendNEC(adres, komut) kullanırken, alıcı doğrudan value değeriyle işlem yapar. Bu nedenle karşılaştırma değerleri uyumlu olmalıdır.
  • Verici tarafında sadece adres gönderildiği için, alıcı da yalnızca adresle karşılaştırma yapmaktadır. Daha güvenli sistemler için hem adres hem de komut kontrolü yapılabilir.

Sonuç

Bu basit uygulama sayesinde, IR ile iletişimin temel prensiplerini öğrenmiş oldunuz. Daha karmaşık uygulamalarda farklı adres ve komutlar kullanarak çeşitli cihazları veya işlemleri kontrol edebilirsiniz. Bu sistem uzaktan kontrol, basit uzaktan kumandalar veya giriş sistemleri gibi birçok projede temel yapı taşı olarak kullanılabilir.

Yorumlar kapalı.

nurullahozkan@outlook.com.tr