Arduino İle Kızılötesi Alıcı-Kumanda Kontrolü
Kızılötesi ışınlar insan gözünün algılayabileceği dalga boyu aralığı dışında çalışan elektromanyetik dalgalardır. Kızılötesi ışınların yoğun olarak kullanıldığı 2 alan vardır. Askeri olarak gece görüşünün sağlanması için kullanılırlar. İnsan da vücut sıcaklığından ötürü belirli bir kızılötesi ışın yayar. En yaygın ikinci uygulama ise kısa mesafe haberleşmedir. Uzaktan kumandalar da kızılötesi ışın kullanılır.
Bu yazımızda Kızılötesi kumanda ve VS1838B kızılötesi alıcıyı kullanarak, arduino aracılığı ile iki adet ledin yanıp sönme durumunu kontrol edeceğiz.
Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Devresi
Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Akış Diagramı
Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Örnek Kodu
IR-remote kütüphanesini
buradan indiriniz.
İndirdiğiniz kütüphaneyi, arduino’nun diğer kütüphanelerinin olduğu klasöre kaydediniz. (…\arduino-1.0.6\libraries)
Burada taslak olarak kullanacağımız örnek “IRrcvDemo” örneği olacak.
/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
#include
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
delay(100);
}
IRremote kütüphanesinin içerisinde bulunan IRrcvDemo örneğinde basılan butonun sinyaline göre bir hex sayısının döndüğünü “Serial Monitor” üzerinde göreceğiz.
Yapacağımız örnekte yukarıda bulunan sayılar sırası ile CH-,CH,CH+….” hex” karşılığıdır.
Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Kodu
#include // Kütüphane Eklendi
int RECV_PIN = 11; // 11 pin VS1838B IN pini
IRrecv irrecv(RECV_PIN); // Alıcı Tanımlandı
decode_results results; // alıcıya gelen sinyalin
// dijital karşılığı
void setup()
{
Serial.begin(9600); // Ekrana yazmak için
// Seri haberleşme başlatıldı
irrecv.enableIRIn(); // IR haberleşme başlatıldı.
pinMode(2,OUTPUT); // 2. ve 3. pindeki Led ayarlandı
pinMode(3,OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) { // sinyal algılanırsa
Serial.println(results.value, HEX); // ekrana hex karşılığını yaz
if(results.value==0xFFA25D) // CH- ise 2. Led yansın
digitalWrite(2,HIGH);
else if(results.value==0xFF629D) // CH ise 3. Led yansın
digitalWrite(3,HIGH);
else if(results.value==0xFFE21D){ // CH ise 2. ve 3. Led yansın
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
}
else { //Diğer butonlar ise Ledler sönsün
digitalWrite(2,LOW);
digitalWrite(3,LOW);
}
irrecv.resume(); // Yeni bir değer yeniden veri alınacak
}
delay(100); // Gelen sinyaller arasında karışıklık olmaması
// icin 100ms bekleniyor
}
Arduino ile Kızılötesi Alıcı Kumanda Kontrolü Kodunu upload ederken aşşağıdaki hatayı alıyorum?
YanıtlaSilThis report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows 7), Board: "Arduino Uno"
sketch_feb23a.ino:1:42: error: #include expects "FILENAME" or
sketch_feb23a:5: error: 'IRrecv' does not name a type
sketch_feb23a:7: error: 'decode_results' does not name a type
sketch_feb23a.ino: In function 'void setup()':
sketch_feb23a:13: error: 'irrecv' was not declared in this scope
sketch_feb23a.ino: In function 'void loop()':
sketch_feb23a:20: error: 'irrecv' was not declared in this scope
sketch_feb23a:20: error: 'results' was not declared in this scope
IRremote kütüphanesini yüklemelisin
YanıtlaSilIRremote kütüphanesini yüklemelisin
YanıtlaSil5V le gnd yeri değişik yaktım sizin yüzünüzden alıcıyı
YanıtlaSilBu yorum yazar tarafından silindi.
YanıtlaSil#include " ????????.h " kütüphaneyi yükledikde , bu kısım eksik ....
YanıtlaSilFILENAME hatasını oyüzden veriyor ....