Kumanda Kodları Referansı
Bu sayfada kit ile birlikte gelen IR (kızılötesi) kumandasının buton kodları listelenmiştir. Bu kodları Arduino projelerinde IR alıcı modülü ile kullanabilirsiniz.
Buton Kodları Tablosu
| Buton |
Hex Kod (0x) |
| CH- |
45 |
| CH |
46 |
| CH+ |
47 |
| << |
44 |
| >> |
40 |
| PLAY/PAUSE |
43 |
| - |
7 |
| + |
15 |
| EQ |
9 |
| 0 |
16 |
| 100+ |
19 |
| 200+ |
D |
| 1 |
C |
| 2 |
18 |
| 3 |
5E |
| 4 |
8 |
| 5 |
1C |
| 6 |
5A |
| 7 |
42 |
| 8 |
52 |
| 9 |
4A |
Arduino Kullanımı
Bu kodları Arduino projelerinizde kullanmak için IR alıcı kütüphanesi (örneğin IRremote) ile karşılaştırabilirsiniz:
| if (results.value == 0x45) {
// CH- butonu basıldı
}
|
Tam Arduino Örneği
İşte IR kumanda butonlarını okuyarak LED kontrolü yapan eksiksiz bir örnek:
Donanım Bağlantıları
- IR alıcı modülü → Pin 2
- LED → Pin 10 (dahili LED)
Arduino Kodu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 | #include <IRremote.hpp>
#include "kumanda_kodlari.h"
/*
IR Kumanda ile LED Kontrolü
Bu proje, IR kumandanın butonlarını okuyarak LED'i kontrol eder.
Header dosyasındaki sabit değerleri kullanır.
*/
// Pin tanımlamaları
const int IR_RECV_PIN = 2;
const int LED_PIN = 10;
// LED durumu
bool ledDurumu = false;
void setup() {
/*
Serial haberleşmeyi başlat ve IR alıcısını etkinleştir.
LED pinini çıkış olarak ayarla.
*/
Serial.begin(115200);
IrReceiver.begin(IR_RECV_PIN, ENABLE_LED_FEEDBACK);
pinMode(LED_PIN, OUTPUT);
Serial.println("=== IR Kumanda LED Kontrolü ===");
Serial.println("Buton işlevleri:");
Serial.println("CH+ - LED'i aç");
Serial.println("CH- - LED'i kapat");
Serial.println("PLAY/PAUSE - LED'i aç/kapat");
Serial.println(">> - LED'i yanıp söndür");
Serial.println("==============================");
}
void loop() {
/*
IR sinyali geldiğinde butona göre farklı işlemler yap
*/
if (IrReceiver.decode()) {
// Gelen sinyal kodunu hex formatında al
uint32_t butonKodu = IrReceiver.decodedIRData.decodedRawData;
// Serial Monitor'e hangi butonun basıldığını yazdır
Serial.print("Basılan buton kodu: 0x");
Serial.println(butonKodu, HEX);
// Buton kodlarına göre işlem yap
switch(butonKodu) {
case BUTTON_CH_PLUS: // CH+ butonu
digitalWrite(LED_PIN, HIGH);
ledDurumu = true;
Serial.println("LED açıldı (CH+)");
break;
case BUTTON_CH_MINUS: // CH- butonu
digitalWrite(LED_PIN, LOW);
ledDurumu = false;
Serial.println("LED kapatıldı (CH-)");
break;
case BUTTON_PLAY_PAUSE: // PLAY/PAUSE butonu
ledDurumu = !ledDurumu; // Durumu tersine çevir
digitalWrite(LED_PIN, ledDurumu);
Serial.print("LED durumu değiştirildi: ");
Serial.println(ledDurumu ? "AÇIK" : "KAPALI");
break;
case BUTTON_NEXT: // >> butonu
// LED'i yanıp söndür
for(int i = 0; i < 3; i++) {
digitalWrite(LED_PIN, HIGH);
delay(200);
digitalWrite(LED_PIN, LOW);
delay(200);
}
Serial.println("LED yanıp söndü (>>)");
break;
default:
Serial.println("Bu buton için işlem tanımlanmamış");
break;
}
// Bir sonraki sinyali almaya hazırlan
IrReceiver.resume();
// Kısa bir gecikme ekle (buton bounce'unu önlemek için)
delay(250);
}
}
|
Kullanım İpuçları
Kütüphane Kurulumu
Arduino IDE'de IRremote kütüphanesini kurmak için:
1. Araçlar → Kütüphane Yöneticisi'ni açın
2. "IRremote" araması yapın
3. "IRremote by shirriff" kütüphanesini kurun
Buton Kodlarını Öğrenme
Eğer farklı bir kumanda kullanıyorsanız, buton kodlarını öğrenmek için:
| // Sadece buton kodlarını görmek için basit kod
void loop() {
if (IrReceiver.decode()) {
Serial.print("Buton kodu: 0x");
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX);
IrReceiver.resume();
}
}
|
Sorun Giderme
- Sinyal gelmiyor: IR alıcının doğru pine bağlandığını kontrol edin
- Yanlış kodlar: Serial Monitor'ün 115200 baud'a ayarlı olduğundan emin olun
- Tekrar eden sinyaller:
delay() ekleyerek buton bounce'unu engelleyin
Header Dosyası (kumanda_kodlari.h)
Aşağıdaki header dosyasını projelerinizde kullanabilirsiniz:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 | /*
* IR Kumanda Kodları - Arduino Header Dosyası
* Kit ile birlikte gelen IR kumandasının buton kodları
*/
#ifndef KUMANDA_KODLARI_H
#define KUMANDA_KODLARI_H
// Kanal kontrol butonları
#define BUTTON_CH_MINUS 0x45 // CH-
#define BUTTON_CH 0x46 // CH
#define BUTTON_CH_PLUS 0x47 // CH+
// Medya kontrol butonları
#define BUTTON_PREV 0x44 // <<
#define BUTTON_NEXT 0x40 // >>
#define BUTTON_PLAY_PAUSE 0x43 // PLAY/PAUSE
// Ses kontrol butonları
#define BUTTON_VOL_MINUS 0x07 // -
#define BUTTON_VOL_PLUS 0x15 // +
#define BUTTON_EQ 0x09 // EQ
// Sayı butonları
#define BUTTON_0 0x16
#define BUTTON_1 0x0C
#define BUTTON_2 0x18
#define BUTTON_3 0x5E
#define BUTTON_4 0x08
#define BUTTON_5 0x1C
#define BUTTON_6 0x5A
#define BUTTON_7 0x42
#define BUTTON_8 0x52
#define BUTTON_9 0x4A
// Özel butonlar
#define BUTTON_100_PLUS 0x19 // 100+
#define BUTTON_200_PLUS 0x0D // 200+
#endif // KUMANDA_KODLARI_H
|
Bu header dosyasını Arduino sketch'inizin yanına koyarak #include "kumanda_kodlari.h" ile dahil edebilirsiniz.