TSOP 1738 ve Arduino Kullanarak Kızılötesi kumandamız ile Ev aletlerinin kontrolü;
Günümüzde piyasada bulunan birçok Ev Otomasyon Sistemleri türü vardır. Bunların çoğu, DTMF kontrollü Ev Aletleri, GSM tabanlı Ev Aletleri Kontrol, RF tabanlı Ev Aletleri Kontrol gibi basit Ev Aletleri Kontrol Sistemleridir. Burada Arduino Board kullanarak TV veya DVD Uzaktan Kumanda LED Ev / Ofis Aletleri Kontrolü (Ev Otomasyon Sistemi) hakkında konuşacağız .
Bu projede TSOP (IR Receiver) Arduino ile bağlanmıştır. Arduino, IR Remote’tan gelen kodlanmış sinyali alır ve daha sonra internette kolayca bulunabilen IRremote.h kütüphanesini kullanarak kodunu çözer (Arduino için Google IR uzak kütüphanesine yazarak bu kütüphaneyi bulun). Sinyalin kodunu çözdükten sonra, kodu çözülen sinyali tanımlanan değerle karşılaştırın, eşleşme olursa ilgili işlevi gerçekleştirin veya dijital giriş/çıkış kullanarak ilgili röleyi açıp/kapatın . Burada AC yükü gösteri için kullanılır. Gösteri için üç Ev/Ofis Aleti kullanılır. İçinde 1 nolu ışık ile gösterilen bir sıfır watt ampul ve ikinci ışık 2 ile gösterilen 100 watt ampul ve üçüncü ve sonuncusu TV ile gösterilen TV/LCD. LCD ayrıca TV AÇIK, TV KAPALI, ışık 1 AÇIK, ışık 1 KAPALI, ışık 2 AÇIK, ışık 2 KAPALI, HEPSİ AÇIK, HEPSİ KAPALI vb. Cihazların mevcut durumunu görüntülemek için bu sistemde arduino ile arayüzlenmiştir.
Blok Şeması
Devre Açıklaması
Bu sistemin devresi Arduino’nun 38 KHz IR frekansını algılayan dijital pin 9’a bağlanan bu TSOP 1738’de çok basittir ve Arduino’nun dijital pin 10, 11, 12’ye sırasıyla ışık 1, ışık 2, TV’yi kontrol etmek için röleler bağlanır. ULN 2003 IC, yüksek voltajlı, yüksek akımlı Darlington transistör dizileridir. Her biri, ortak katot kıskaç diyotları ile yüksek voltaj çıkışlarına sahip yedi NPN Darlington çiftinden oluşur. burada endüktif yükleri değiştirmek için ve bu tür Projeler için en uygun olan 5 volt röleler kullanılır. Işık 1, röle 1’e, ışık 2, röle 2’ye ve TV, röle 3’e bağlanır.
DC beslemesi için Röle Bağlantı Devresi (Akü yerine AC beslemeyi, LED polaritesi yerine elektrikli cihazları bağlayın AC’de etkilenmez.)
Programa bazı fonksiyonlar ekleyerek bu sistem ile daha fazla Ev/Ofis Aletleri ekleyebilirsiniz. 16×2 LCD’nin komutları pinleri RS ve EN sırasıyla pin 7 ve 6 ile direkt olarak bağlanır ve Data pinleri d4, d5, d6, d7 Arduino’nun 5, 4, 3, 2 pinleri ile bağlanır.
Çalışma ve Kullanılan Bileşenler
Çalışma
- 1 tuşuna bastığımızda, bu, TV/LCD’yi ayarlamaktan sorumludur ve buna tekrar basarsak, artık TV’yi kapatmaktan sorumludur.
- Tuşa 2 bastığımızda bu, ışık 1’i ayarlamaktan sorumludur ve bu tuşa tekrar basarsak, şimdi ışık 1 kapalıdır.
- Tuşa 3 bastığımızda bu, ışık 2’nin ayarlanmasından sorumludur ve bu tuşa tekrar basarsak, şimdi ışık 2 kapalıdır.
Programlama
Bu projenin programlanması çok kolaydır. IR Remote kitaplığını ve LCD kitaplığını başlatın. Ardından, eşleştirme veya karşılaştırma için bazı dizeler tanımlayın. IR kodu çözülmüş sonucu saklayın ve bunu tanımlanmış dizelerle karşılaştırın. Herhangi bir eşleşme meydana gelirse, ilgili işlevi gerçekleştirin ve keyfini çıkarın.
Kullanılan Bileşenler
- Arduino Pro Mini
- TSOP 1738
- Bağlantı kabloları
- Güç kaynağı
- AC cihazları
- Dirençler
- Kapasitörler
- IR uzaktan kumanda
- Röleler
- ULN2003
Proje Kaynak Kodu
###
#include<LiquidCrystal.h>
#include <IRremote.h>
int RECV_PIN = 9; // Output pin of TSOP sensor
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(7,6,5,4,3,2);
#define light1 10
#define light2 11
#define TV 12
int temp=0,temp1;
void setup()
{
lcd.begin(16,2);
pinMode(light1,OUTPUT);
pinMode(light2,OUTPUT);
pinMode(TV,OUTPUT);
pinMode(13,OUTPUT);
lcd.setCursor(0,0);
lcd.print(" Home/Office ");
lcd.setCursor(0,1);
lcd.print(" Aplliances ctrl");
delay(2000);
lcd.setCursor(0,0);
lcd.print("Using IR Remote ");
lcd.setCursor(0,1);
lcd.print("By Saddam Khan ");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Engineers Garage");
delay(2000);
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
int i,j,k,l,m;
lcd.clear();
while(1)
{
lcd.setCursor(0,1);
lcd.print("System Ready ");
delay(100);
if (irrecv.decode(&results))
{
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
if((results.value)== 33441975) // on off red button
{
if(i%2==0)
{
digitalWrite(TV, LOW);
digitalWrite(light2, LOW);
digitalWrite(light1, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ALL OFF ");
delay(10);
}
else
{
digitalWrite(TV, HIGH);
digitalWrite(light2, HIGH);
digitalWrite(light1, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("ALL ON ");
delay(100);
}
i++;
}
if((results.value)== 33444015) // key 1
{
if(j%2==0)
{
digitalWrite(TV, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("TV ON");
delay(10);
}
else
{
digitalWrite(TV, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("TV OFF");
delay(10);
}
j++;
}
if((results.value)== 33478695) // key 2
{
if(k%2==0)
{
digitalWrite(light1, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("LIGHT 1 ON");
delay(10);
}
else
{
digitalWrite(light1, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("LIGHT 1 OFF");
delay(10);
}
k++;
}
if((results.value)== 33486855) // key 3
{
if(l%2==0)
{
digitalWrite(light2, HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("LIGHT 2 ON");
delay(10);
}
else
{
digitalWrite(light2, LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("LIGHT 2 OFF");
delay(10);
}
l++;
}
irrecv.resume(); // Receive the next value
}
}
}
###
Bu makale buradan çevrilmiştir.