HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
IR Kumanda ile LED Kontrolü: Uzaktan Işıkları Yönetin!

IR Kumanda ile LED Kontrolü: Uzaktan Işıkları Yönetin!

Evdeki elektronik cihazlarınızı bir kumanda ile kontrol etmeye alışkınız, peki ya kendi yaptığınız Arduino projelerini bir kumanda ile yönetmeye ne dersiniz? Bu projede, basit bir IR (kızılötesi) alıcı modülü ve herhangi bir eski uzaktan kumandayı kullanarak LED'leri nasıl açıp kapatacağınızı veya farklı şekillerde kontrol edeceğinizi öğreneceksiniz. Bu sayede hem IR iletişiminin temellerini anlayacak hem de uzaktan kontrol imkanı sunan projelere ilk adımınızı atacaksınız!

Gerekli Malzemeler

Bu projeyi tamamlamak için ihtiyacınız olan temel malzemeler aşağıda listelenmiştir. Bu malzemeleri elektronik hobi setlerinde veya ayrı ayrı bulabilirsiniz.

  • Arduino Uno R3: Projemizin kalbi, IR sinyallerini işleyecek ve LED'leri kontrol edecek.
  • IR alıcı modülü (VS1838B veya benzeri): Uzaktan kumandadan gelen kızılötesi sinyalleri algılayacak sensör. Genellikle 3 pinli (VCC, GND, Sinyal) olur.
  • IR kumanda: Herhangi bir eski televizyon, DVD oynatıcı veya medya oynatıcı kumandası işinizi görecektir.
  • LED (istediğiniz renklerde) x 1-3 adet: Kontrol edeceğimiz ışık kaynakları. Başlangıç için bir adet LED yeterlidir.
  • 220Ω direnç x (LED sayısı): Her bir LED için akım sınırlayıcı direnç. LED'lerin zarar görmesini engeller.
  • Breadboard: Devre elemanlarını lehim yapmadan kolayca bağlamak için.
  • Jumper kablolar (erkek-erkek): Bileşenleri birbirine ve Arduino'ya bağlamak için.
  • USB kablosu: Arduino'yu bilgisayara bağlamak, kod yüklemek ve enerji vermek için.

Devre Bağlantı Şeması

Devre bağlantılarını doğru yapmak, projenin başarılı bir şekilde çalışmasını sağlar. Aşağıdaki adımları dikkatlice takip edin.

1. IR Alıcı Modülü Bağlantıları:

  • IR alıcı modülünün pin sıralaması farklılık gösterebilir (Genellikle Sinyal-GND-VCC veya VCC-GND-Sinyal). Elinizdeki modülün pin şemasını kontrol edin.
  • VCC pinini Arduino'nun 5V pinine bağlayın.
  • GND pinini Arduino'nun GND pinine bağlayın.
  • Sinyal pinini Arduino'nun D11 pinine bağlayın.

2. LED Bağlantıları (Örnek: Bir adet LED için):

  • LED'in uzun bacağını (anot) 220Ω direncin bir ucuna bağlayın.
  • Direncin diğer ucunu Arduino'nun D5 pinine bağlayın.
  • LED'in kısa bacağını (katot) Arduino'nun GND pinine bağlayın.

Eğer birden fazla LED kullanıyorsanız, her LED için bu bağlantıyı tekrarlayın ve her LED'i farklı bir dijital Arduino pinine (örneğin D6, D7) ve kendi 220Ω direncine bağlayın.

3. Genel Güç Bağlantısı:

  • Arduino'yu bilgisayarınıza USB kablosu ile bağlayın.

Arduino Kodları

Devre bağlantılarını tamamladıktan sonra sıra projenin beynini oluşturan koda geldi. Arduino IDE'yi açın ve aşağıdaki kodları kopyalayıp yapıştırın. Bu kod, IR kumandadan gelen sinyalleri okuyacak ve belirlenen tuşlara basıldığında LED'i kontrol edecektir.

Not: Bu kod, "IRremote" kütüphanesini gerektirir. Kütüphaneyi kurmak için Arduino IDE'de Taslak > Kütüphaneleri Dahil Et > Kütüphaneleri Yönet yolunu izleyip "IRremote" aratarak kurabilirsiniz.

Önce Kumanda Tuş Kodlarını Öğrenelim:

Her IR kumandanın her tuşu, benzersiz bir onaltılık (hex) kod gönderir. Kendi kumandanızın tuş kodlarını öğrenmek için önce aşağıdaki "IR Kumanda Kodu Öğrenme" kodunu yükleyin, Seri Monitör'ü açın ve kumandanızın tuşlarına basın. Gelen kodları not alın.

C++

#include <IRremote.h>

const int RECV_PIN = 11; // IR alıcı sinyal pini

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // IR alıcıyı başlat
  Serial.println("IR Kumanda Kodu Öğrenme Modu Basın Tuşlara!");
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.print("IR Kodu: ");
    Serial.print(results.value, HEX); // Kodu HEX formatında yazdır
    Serial.print(" (");
    Serial.print(results.bits);
    Serial.println(" bit)");
    irrecv.resume(); // Bir sonraki değeri beklemeye devam et
  }
  delay(100);
}

Kumandanızdan "Açma/Kapama" tuşuna ve "Başka bir tuşa" basarak Seri Monitör'den çıkan HEX kodlarını bir yere not alın. Örneğin, "Açma/Kapama" tuşu için FFC23D ve başka bir tuş için FFA25D gibi kodlar görebilirsiniz.

LED Kontrol Kodu:

Kumanda kodlarını öğrendikten sonra, aşağıdaki LED kontrol kodunu yükleyin ve not aldığınız kodları IR_BUTTON_ON_OFF ve IR_BUTTON_BRIGHTNESS (veya başka bir kontrol tuşu için) değişkenlerine girin.

C++

#include <IRremote.h>

const int RECV_PIN = 11; // IR alıcı sinyal pini
const int LED_PIN = 5;   // LED bağlı olduğu pin

IRrecv irrecv(RECV_PIN);
decode_results results;

// Kendi kumandanızın tuş kodlarını buraya girin (ÖĞRENME KODU İLE BULDUĞUNUZ DEĞERLERİ)
#define IR_BUTTON_ON_OFF  0xFFC23D // Örnek: Kumandadaki "Güç" tuşu
#define IR_BUTTON_TOGGLE_RED_LED 0xFF4AB5 // Örnek: Kumandadaki "1" tuşu
// Eğer birden fazla LED'iniz varsa, diğer tuşlar ve LED'ler için de tanımlama yapabilirsiniz.

bool ledState = false; // LED'in mevcut durumu (kapalı)

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn(); // IR alıcıyı başlat
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(LED_PIN, LOW); // Başlangıçta LED kapalı
  Serial.println("IR LED Kontrol Projesi Hazır!");
  Serial.println("Kullanacağınız kumandanızın tuşlarına basarak LED'i kontrol edin.");
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.print("Algılanan IR Kodu: ");
    Serial.println(results.value, HEX); // Algılanan kodu Seri Monitöre yazdır

    // Eğer "Açma/Kapama" tuşuna basıldıysa
    if (results.value == IR_BUTTON_ON_OFF || results.value == IR_BUTTON_TOGGLE_RED_LED) {
      ledState = !ledState; // LED'in durumunu tersine çevir
      digitalWrite(LED_PIN, ledState); // LED'i yeni duruma göre aç/kapat

      if (ledState) {
        Serial.println("LED Açık");
      } else {
        Serial.println("LED Kapalı");
      }
    }
    
    // Diğer tuşlar için de benzer if blokları ekleyebilirsiniz.
    // Örneğin, farklı bir LED'i açıp kapatmak için:
    /*
    if (results.value == 0xFF8877) { // Örnek bir tuş kodu
      // Başka bir LED'i kontrol et
    }
    */

    irrecv.resume(); // Bir sonraki değeri beklemeye devam et
  }
}

Projenin Çalışma Mantığı ve Geliştirme Fikirleri

Bu projede, IR alıcı modülü uzaktan kumandadan gelen kızılötesi sinyalleri yakalar. Arduino, "IRremote" kütüphanesi sayesinde bu sinyalleri çözerek hangi tuşa basıldığını temsil eden HEX kodunu alır. Kodumuz, algılanan bu HEX kodu önceden belirlediğimiz tuş kodlarıyla karşılaştırır ve eşleşme durumunda LED'in durumunu değiştirir.

Bu projeyi daha da geliştirmek isterseniz:

  • Birden Fazla LED Kontrolü: Farklı kumanda tuşlarına farklı renklerdeki LED'leri atayarak birden fazla ışığı kontrol edebilirsiniz.
  • Parlaklık Ayarı (PWM): Kumanda tuşları ile LED'in parlaklığını (PWM destekli pinler kullanarak) artırıp azaltabilirsiniz.
  • Mod Seçimi: Farklı tuşlarla LED'lerin yanıp sönme modlarını (sürekli açık, yanıp sönme, nefes efekti vb.) değiştirebilirsiniz.
  • Diğer Cihazları Kontrol: Sadece LED değil, IR sinyallerini başka bir IR verici (LED) ile yayınlayarak diğer IR kontrollü cihazları (örn. TV) da kontrol etmeyi deneyebilirsiniz (ancak bu daha karmaşık bir konudur).

Bu proje, Arduino ile uzaktan kontrol kavramını anlamak için harika bir adımdır. Kendi kumandanızın tuşlarını keşfedin ve LED'lerinizle dilediğiniz gibi etkileşime geçin!