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
- Arduino Uno (veya uyumlu bir model)
- RGB LED
- 3 x 220Ω direnç (RGB LED için)
- IR alıcı modülü (ör. TSOP4838)
- IR kumanda
- Breadboard
- Bağlantı kabloları
Devre Bağlantıları

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
- Kullanıcı, IR kumanda ile bir tuşa basar.
- IR alıcı modül, gelen sinyali Arduino'ya iletir.
- Arduino, sinyali çözümler ve tuşa karşılık gelen renk değerlerini RGB LED'e uygular.
- 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.
Bu Gönderiye Yorum Yapılmamış