Arduino Projeleri
#29Orta

IR Kumanda ile Çoklu Cihaz Kontrolü

~1 saatYok

Proje Amacı

Standart bir IR TV kumandasının tuşlarını okuyup farklı tuşlarla farklı LED'leri kontrol eder — her kumandanın kod seti farklı olduğundan bu projede kendi kumandanızın hex kodlarını önce Seri Monitör'den okuyup koda girmeniz gerekir.

Gerekli Malzemeler

  • Arduino Uno
  • IR Alıcı Modülü (TSOP1738 veya benzeri)
  • IR Kumanda
  • 3x LED
  • 3x 220Ω direnç

Gerekli Kütüphaneler

IRremote (v4.x) — Kütüphane Yöneticisi'nden kurulmalı. ⚠ Bu kod IRremote v4'ün güncel API'sini (IrReceiver nesnesi, #include <IRremote.hpp>) kullanır; kütüphanenin v2.x/v3.x sürümleriyle uyumsuzdur, kurulumda güncel sürümü seçtiğinizden emin olun.

Pin Bağlantıları

Bileşen PiniBağlantı
IR Alıcı VCC
5V
IR Alıcı GND
GND
IR Alıcı OUT
D11
LED 1 Anot (220Ω üzerinden)
D9
LED 2 Anot (220Ω üzerinden)
D10
LED 3 Anot (220Ω üzerinden)
D8

Devre Şeması

Arduino Kodu

arduino-29-ir-kumanda-ile-coklu-cihaz-kontrolu.ino
1#include <IRremote.hpp>
2const int irPin=11;
3const int led1=9, led2=10, led3=8;
4
5void setup(){
6 IrReceiver.begin(irPin, ENABLE_LED_FEEDBACK);
7 pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT);
8 Serial.begin(9600);
9}
10
11void loop(){
12 if(IrReceiver.decode()){
13 unsigned long kod = IrReceiver.decodedIRData.decodedRawData;
14 Serial.println(kod, HEX);
15
16 if(kod == 0xF20DFFA25D) digitalWrite(led1, !digitalRead(led1)); // örnek kod, kumandanıza göre değişir
17 if(kod == 0xF20DFF629D) digitalWrite(led2, !digitalRead(led2));
18 if(kod == 0xF20DFFE21D) digitalWrite(led3, !digitalRead(led3));
19
20 IrReceiver.resume();
21 }
22}

Çalışma Açıklaması

Her kumandanın kendine özgü IR kodları vardır, kodda verilen örnek hex değerleri sadece şablon amaçlıdır — mutlaka kendi kumandanızla test edip gerçek kodları öğrenmelisiniz.

Test Bilgisi

IRremote kütüphanesini kurun. Devreyi kurun, kodu yükleyin, Seri Monitör'ü açın. Kumandanızdaki farklı tuşlara basıp her birinin hex kodunu not edin, kodda örnek kodları kendi kumandanızın kodlarıyla güncelleyin.

Olası Sorunlar ve Çözümleri

Kumanda kodları okunmuyorsa: IRremote kütüphanesinin sürümüne göre API'nin değişebileceğini unutmayın (bazı sürümlerde decode() farklı çağrılır), kütüphane dokümantasyonunu kontrol edin. Her tuş farklı/tutarsız kod veriyorsa: bazı kumandalar 'repeat code' gönderir, kodda bu durumu (0xFFFFFFFF gibi) ayrıca ele almanız gerekebilir. LED'ler tepki vermiyorsa: Seri Monitör'den okunan hex kodun kod içindeki değerle birebir eşleştiğinden emin olun.

Alternatif Çözümler

3 LED yerine röle eklenerek kumandayla gerçek ev aletleri kontrol edilebilir. Farklı marka kumandalarla (Sony, NEC, RC5 gibi farklı protokoller) uyumluluk için IRremote kütüphanesinin protokol desteğini genişletebilirsiniz. IR verici (LED) eklenerek Arduino'nun kendisi de bir 'evrensel kumanda' olarak diğer cihazları kontrol edebilir hale getirilebilir.

Bu projenin kodunu AI ile özelleştir

Farklı pin, ek özellik ya da başka bir sensör mü istiyorsun?