Arduino

Arduino Ir Kumanda ile RGB Led Kontrolü

Aykut AKMAN 7 ay önce Yorumlar (0) 6 Dakika Okuma
Arduino Ir Kumanda ile RGB Led Kontrolü
E-Posta : 885 0

Bu proje, bir IR (kızılötesi) kumanda kullanarak RGB LED'in renklerini değiştirmeyi amaçlar. Kullanıcı, IR kumandadaki tuşlara basarak farklı renkler seçebilir. Proje, Arduino kartı, RGB LED, IR alıcı modülü ve IRremote kütüphanesini kullanır.

Gerekli Malzemeler

  1. Arduino Uno (veya uyumlu bir model)
  2. RGB LED
  3. 3 x 220Ω direnç (RGB LED için)
  4. IR alıcı modülü (ör. TSOP4838)
  5. IR kumanda
  6. Breadboard
  7. Bağlantı kabloları

Devre Bağlantıları

arduino-ir-kumanda-ile-rgb-led-kontrolü-devre-semasi

IR Alıcı Modülü

  • VCC → Arduino'nun 5V pinine
  • GND → Arduino'nun GND pinine
  • OUT → Arduino'nun dijital 11 numaralı pinine

RGB LED

  • Ortak bacak (katot) → GND
  • Kırmızı (R) bacak → 3 numaralı dijital pin (220Ω direnç üzerinden)
  • Yeşil (G) bacak → 5 numaralı dijital pin (220Ω direnç üzerinden)
  • Mavi (B) bacak → 6 numaralı dijital pin (220Ω direnç üzerinden)

Arduino Kodu


#include 

const int RECV_PIN = 11; // IR alıcı modülün bağlı olduğu pin
const int redPin = 3;    // Kırmızı LED pini
const int greenPin = 5;  // Yeşil LED pini
const int bluePin = 6;   // Mavi LED pini

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

  IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK); // IR alıcıyı başlat
  Serial.begin(9600);                              // Seri monitörü başlat
}

void loop() {
  if (IrReceiver.decode()) { // IR sinyali alındığında
    unsigned long kod = IrReceiver.decodedIRData.decodedRawData;
    Serial.print("Kod: 0x");
    Serial.println(kod, HEX); // Gelen veriyi HEX olarak yazdır
    IrReceiver.resume(); // IR alıcıyı yeniden başlat

    // Her tuşun HEX koduna göre işlem
    switch (kod) {
      case 0xF30CBF00: // "0" tuşu
        setColor(0, 0, 255); // Mavi
        break;
      case 0xEF10BF00: // "1" tuşu
        setColor(255, 0, 0); // Kırmızı
        break;
      case 0xEE11BF00: // "2" tuşu
        setColor(0, 255, 0); // Yeşil
        break;
      case 0xED12BF00: // "3" tuşu
        setColor(255, 255, 0); // Sarı
        break;
      case 0xEB14BF00: // "4" tuşu
        setColor(0, 255, 255); // Camgöbeği
        break;
      case 0xEA15BF00: // "5" tuşu
        setColor(255, 0, 255); // Mor
        break;
      case 0xE916BF00: // "6" tuşu
        setColor(255, 255, 255); // Beyaz
        break;
      case 0xE718BF00: // "7" tuşu
        setColor(128, 0, 255); // Pembe
        break;
      case 0xE619BF00: // "8" tuşu
        setColor(255, 128, 0); // Turuncu
        break;
      case 0xE51ABF00: // "9" tuşu
        setColor(64, 128, 255); // Açık Mavi
        break;
      default: // Tanımsız kod
        setColor(0, 0, 0); // LED'i kapat
        break;
    }
  }
}

// RGB LED renk kontrol fonksiyonu
void setColor(int red, int green, int blue) {
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}

Kod Açıklamaları

IRremote Kütüphanesi

  • #include : IR kumanda sinyallerini okumak için gerekli kütüphane.
  • IrReceiver.begin(RECV_PIN): IR alıcı modülünü belirtilen pin üzerinde başlatır.
  • IrReceiver.decode(): IR kumandadan gelen sinyali çözer.
  • IrReceiver.resume(): Yeni sinyaller için IR alıcıyı hazırlar.

HEX Kodları

  • IR kumanda tuşlarının her biri, belirli bir HEX kodu gönderir. Örneğin:
    • 0xF30CBF00: "0" tuşu.
    • 0xEF10BF00: "1" tuşu.

Renk Kontrolü

  • setColor(int red, int green, int blue): RGB LED'in her bir renginin parlaklığını PWM sinyali ile ayarlar.

Çalışma Prensibi

  1. Kullanıcı, IR kumanda ile bir tuşa basar.
  2. IR alıcı modül, gelen sinyali Arduino'ya iletir.
  3. Arduino, sinyali çözümler ve tuşa karşılık gelen renk değerlerini RGB LED'e uygular.
  4. Kullanıcı, farklı tuşlara basarak LED'in rengini değiştirebilir.

Projenin çalışan örneğini görmek için tıklayınız.

IR Kumanda Üzerinde HEX Kodlarının Bulunabileceği Örnek Kod Yapısı

Kullandığınız Ir kumanda farklı HEX kodları içerebilir. Aşağıdaki kod, IR kumandanızın her tuşunun HEX kodlarını kolayca bulmanızı sağlar. Arduino ile IR alıcı modülünü bağladıktan sonra bu kodu kullanarak, kumandanızın tuş kodlarını seri monitörde görebilirsiniz.

Nasıl Çalışır?

Bağlantılar

  • IR Alıcı Modülü:VCC: Arduino'nun 5V pinine.
  • GND: Arduino'nun GND pinine.
  • DATA (OUT): Arduino'nun D11 pinine.

Kodun Çalıştırılması

  • Bu kodu Arduino'ya yükleyin.
  • Arduino'nun seri monitörünü açın (9600 baud hızıyla).
  • IR kumandanın herhangi bir tuşuna bastığınızda, seri monitörde ilgili HEX kod görüntülenecektir.

HEX Kodlarının Kullanımı

  • Seri monitörde görünen HEX kodları not alın.
  • Her bir tuşa karşılık gelen HEX kodunu projelerinizde kullanabilirsiniz.

Örnek Kod

#include 

const int RECV_PIN = 11; // IR alıcı modülün bağlı olduğu pin

void setup() {
  Serial.begin(9600); // Seri monitörü başlat
  IrReceiver.begin(RECV_PIN, ENABLE_LED_FEEDBACK); // IR alıcıyı başlat
  Serial.println("IR Kumanda HEX Kodları:");
}

void loop() {
  if (IrReceiver.decode()) { // IR sinyali alındığında
    unsigned long kod = IrReceiver.decodedIRData.decodedRawData; // Gelen kodu al
    Serial.print("Kod: 0x"); 
    Serial.println(kod, HEX); // HEX formatında kodu yazdır
    IrReceiver.resume(); // IR alıcıyı yeniden başlat
  }
}

Projeyi Geliştirme Fikirleri

  • Parlaklık Kontrolü: IR kumanda üzerindeki "+" ve "-" tuşları ile LED parlaklığını artırabilir veya azaltabilirsiniz.
  • Animasyonlar: Kumanda tuşlarıyla renk geçiş efektleri veya yanıp sönme animasyonları ekleyebilirsiniz.
  • Sesli Uyarı: Belirli tuşlara basıldığında bir buzzer ile sesli uyarı verebilirsiniz.

Bu proje, hem IR kumanda kullanımını hem de RGB LED kontrolünü öğrenmek için mükemmel bir başlangıçtır.

Sıkça Sorulan Sorular

Arduino ile IR kumanda kullanmak için IRremote kütüphanesi kullanılır. IR alıcı modülünden gelen sinyaller okunarak, HEX kodlarına göre komutlar atanır.

IR kumandadan gelen sinyaller Arduino tarafından işlenir. Her tuşa bir renk atanarak RGB LED'in renkleri değiştirilir. Örneğin, "1" tuşu kırmızı, "2" tuşu yeşil yapabilir.

IRremote kütüphanesini kullanarak gelen sinyalleri okuyabilirsiniz. IrReceiver.decode() ile sinyaller alınır ve decodedIRData.decodedRawData ile HEX kodları seri monitörde gösterilir.

IR kumandanın HEX kodlarına göre switch-case yapısı kullanılarak farklı RGB değerleri atanır. Örneğin:

case 0xF30CBF00: setColor(255, 0, 0); break; // Kırmızı

RGB LED'in kırmızı, yeşil ve mavi pinleri Arduino'nun PWM destekleyen pinlerine bağlanır (örneğin, D3, D5, D6).

Arduino'da IR kumanda projeleri için IRremote kütüphanesi kullanılır. Kütüphaneyi Arduino IDE'den ekleyebilir ve projelerinizde kullanabilirsiniz.

IR alıcı modülünün:

  • VCC pini Arduino 5V'a,
  • GND pini Arduino GND'ye,
  • DATA pini ise bir dijital pine (örneğin, D11) bağlanır.

Arduino'yu IRremote kütüphanesi ile kurun, gelen sinyalleri Serial.print ile seri monitörde HEX formatında görüntüleyin.

RGB LED'in kırmızı, yeşil ve mavi pinlerine analogWrite fonksiyonu ile değer göndererek renkleri değiştirebilirsiniz.

IR kumanda ile RGB LED kontrolü, cihaz açma/kapama, motor kontrolü ve akıllı ev projeleri gibi birçok uygulama yapabilirsiniz.

Aykut AKMAN

Aykut AKMAN

Bilişim Öğretmeni

Bu Gönderiye Yorum Yapılmamış

Yorum Yap

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlendi.

Diğer Yazılar