DOLAR

35,6530$% 0.09

EURO

37,2975% 0.38

STERLİN

44,1229£% 0.36

GRAM ALTIN

3.166,25%0,82

ONS

2.760,10%0,64

BİST100

10.007,06%0,08

a

Arduino ile Kızılötesi Kumanda Kullanımı

Gerekli malzemeler:

Kızılötesi kumandalar, günlük kullandığımız çoğu elektronik alette sık sık kullandığımız cihazlardır. Neden Arduino’da da kullanmayalım? 🙂 Çalışma prensibi şu şekildedir: kumanda üzerinde bir kızılötesi (infrared, ir) LED bulunur. Bu LED, kumanda üzerindeki herhangi bir tuşa bastığımızda önceden belirlenmiş bir kod verecek şekilde belirli bir frekansta yanıp söner. Çoğu kumanda için bu frekans 38 kHz’tir. 38 kHz’lik taşıyıcı sinyale her bir tuş için farklı bir kod oluşturacak şekilde modülasyon uygulanır. Her marka için farklı modülasyon ve kodlama teknikleri mevcuttur. Projede kullandığımız 38 kHz kızılötesi alıcı, aldığı sinyali demodüle ederek Arduino’ya doğrudan basılan buton ile ilgili kodu göndermektedir. Bu sayede farklı marka ve model kumandaları 38 kHz taşıyıcı sinyale sahip olduğu sürece bu alıcı ile kullanabilmekteyiz.

The_Phillips_RC5_Protocol_11

Bizim kullanacağımız setteki kumandanın tüm butonlarına ait kodlar Arduino’ya yükleyeceğimiz program kodunda tanımlanmıştır. Bu sayede kit ile beraber gelen kumandadaki tüm butonlara birer işlev atamamız mümkün olur. Devremizin bağlantı şeması şu şekildedir:

Devre şeması 17/01/2017 tarihinde güncellenmiştir.

Kızılötesi alıcıyı kullanabilmemiz için, Arduino yazılımına Arduino-IRremote kütüphanesini yüklememiz gereklidir. Bu kütüphaneyi indirdikten sonra C:Program Files (x86)Arduinolibraries veya C:Program FilesArduinolibraries klasörünün altına “IRremote” ismiyle kaydetmemiz gereklidir. Kütüphaneyi yükledikten sonra aşağıdaki kodu Arduino’muza yüklüyoruz:

#include <IRremote.h>int RECV_PIN = 2;IRrecv irrecv(RECV_PIN);decode_results results;#define CH1 0xFFA25D#define CH 0xFF629D#define CH2 0xFFE21D#define PREV 0xFF22DD#define NEXT 0xFF02FD#define PLAYPAUSE 0xFFC23D#define VOL1 0xFFE01F#define VOL2 0xFFA857#define EQ 0xFF906F#define BUTON0 0xFF6897#define BUTON100 0xFF9867#define BUTON200 0xFFB04F#define BUTON1 0xFF30CF#define BUTON2 0xFF18E7#define BUTON3 0xFF7A85#define BUTON4 0xFF10EF#define BUTON5 0xFF38C7#define BUTON6 0xFF5AA5#define BUTON7 0xFF42BD#define BUTON8 0xFF4AB5#define BUTON9 0xFF52ADint led1 = 7;int led2 = 6;int led3 = 5;int led4 = 4;void setup(){ pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); Serial.begin(9600); irrecv.enableIRIn();}void loop() { if (irrecv.decode(&results)) { if (results.value == BUTON1) { digitalWrite(led1, !digitalRead(led1)); if (digitalRead(led1) == HIGH) { Serial.println(“LED 1 yandi”); } else { Serial.println(“LED 1 sondu”); } } if (results.value == BUTON2) { digitalWrite(led2, !digitalRead(led2)); if (digitalRead(led2) == HIGH) { Serial.println(“LED 2 yandi”); } else { Serial.println(“LED 2 sondu”); } } if (results.value == BUTON3) { digitalWrite(led3, !digitalRead(led3)); if (digitalRead(led3) == HIGH) { Serial.println(“LED 3 yandi”); } else { Serial.println(“LED 3 sondu”); } } if (results.value == BUTON4) { digitalWrite(led4, !digitalRead(led4)); if (digitalRead(led4) == HIGH) { Serial.println(“LED 4 yandi”); } else { Serial.println(“LED 4 sondu”); } } if (results.value == BUTON0) { digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); Serial.println(“Tum LED’ler sondu”); } if (results.value == BUTON5) { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); Serial.println(“Tum LED’ler yandi”); } irrecv.resume(); }}

Bu koda göre, kumandamız üzerindeki 1, 2, 3 ve 4 numaralı butonlar sırasıyla 7, 6, 5 ve 4 numaralı dijital pinlere bağlı olan LED’leri yakıp söndürecektir. 0 tümünü söndürür ve 5 tümünü yakar. Ayrıca seri port ekranını açarsak, butona bastığımızda LED’in değişimini bu ekrandaki ifadelerden de görebiliriz. Sizler de kodun baş kısmındaki #define ile tanımlanan diğer buton kodlarını kullanarak farklı işlevler gerçekleştirecek şekilde programlama yapabilirsiniz.

Eğer kit dahilinde gelen kumanda yerine başka bir kumanda kullanmak istiyorsanız (veya sadece alıcıdan temin ettiyseniz), Arduino programından Dosya>Örnekler>IRremote>IRrecvDump örnek kodunu kullanarak mevcut kumandanızın tuşlarına ait hex kodları tespit edebilir ve bu kodları kullanabilirsiniz.

 

Kaynak: Bu yazı Kerem İZGÖL’ün  https://maker.robotistan.com/arduino-dersleri-16-kizilotesi-kumanda-kullanimi/ adresindeki yazısından alınmıştır. Kendisine teşekkür ederiz.

YORUMLAR

s

En az 10 karakter gerekli

Gönderdiğiniz yorum moderasyon ekibi tarafından incelendikten sonra yayınlanacaktır.

Sıradaki haber:

Arduino ile Step Motor Kontrolü

HIZLI YORUM YAP