Arduino IR Uzaktan Kumanda Devresi

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazımızda, IR uzaktan kumanda ve bir alıcıdan oluşan, özelleştirilebilir bir Arduino tabanlı IR (kızılötesi) tabanlı kablosuz uzaktan kumanda anahtarı oluşturacağız, ihtiyaçlarınıza göre değişiklik yapabilirsiniz. Makalenin sonraki bölümünde, yalnızca benzersiz bir şekilde atanmış bir frekansa yanıt veren bir IR uzaktan kumandanın yükseltilmiş kusursuz bir sürümü hakkında bilgi edineceğiz.

Başlangıç ​​seviyesinin üzerindeyseniz, kolaylıkla başarabilirsiniz. Burada gösterilen önerilen devre, uzaktaki üç kontrole ve alıcı ucunda 3 röleye sahiptir. İhtiyaçlarınızı karşılamak için kodu ve devre şemasını değiştirebilirsiniz.



Uzaktan kumanda ve diğeri alıcı görevi gören iki Arduino kartına ihtiyacınız olacak. Bu proje için Arduino pro mini'yi tavsiye ederim, çünkü boyutları oldukça küçük ve uzaktan kumandanın genel boyutu küçültülebilir.

Uzaktan kumanda için 3.3V tabanlı Arduino pro mini kullanabilirsiniz, böylece ihtiyacınıza göre iki düğme pil veya iki AA boy pil ile güç sağlayabilirsiniz.



IR verici devresinde, alıcıya komut göndermek için 3 basmalı düğme ve bir IR LED bulunur. Her düğme benzersiz onaltılık kod ile programlanmıştır, aynı onaltılık kod alıcı tarafında da programlanmıştır.

Bir düğmeye basıldığında, IR LED onaltılık kodu alıcıya gönderir, alıcı hangi düğmeye basıldığını algılar ve ilgili röleyi AÇAR / KAPATIR.

Önerilen uzaktan kumanda, alıcıyla iletişim kurmak için RC5 protokolünü kullanır, kodu değiştirerek her şeyi değiştirebilirsiniz.

Arduino'da yeni başlıyorsanız, yine de bunu başarabilirsiniz, sadece şemayı takip edin ve değiştirmeden kodu yükleyin.

Devre ve program:

Arduino Uzaktan Verici:

Kusursuz IR Uzaktan Kumanda Devresi

Yukarıdaki devre, Arduino IR uzaktan vericisinin nasıl oluşturulacağını gösterir.

Üç 10K direnç, uzaktan kumandanın statik yük nedeniyle yanlışlıkla tetiklenmesini önleyen aşağı çekme dirençleridir ve IR LED için 220ohm akım sınırlama direnci kullanılır.

Uzaktan Verici Programı:

//---------Program developed by R.Girish--------//
#include
IRsend irsend
const int button1 = 4
const int button2 = 5
const int button3 = 6
void setup() {
pinMode(button1, INPUT)
pinMode(button2, INPUT)
pinMode(button3, INPUT)
}
void loop()
{
if (digitalRead(button1) == HIGH)
{
delay(50)
irsend.sendRC5(0x80C, 32)
delay(200)
}
if (digitalRead(button2) == HIGH)
{
delay(50)
irsend.sendRC5(0x821, 32)
delay(200)
}
if (digitalRead(button3) == HIGH)
{
delay(50)
irsend.sendRC5(0x820, 32)
delay(200)
}
}
//---------Program developed by R.Girish--------//

Arduino Alıcısı:

Yukarıda gösterildiği gibi IR Arduino alıcı devresi aşağıdakilerden oluşur: TSOP1738 sensörü az sayıda transistör, transistör için akım sınırlayıcı dirençler, röle bobinlerinden yüksek voltaj yükselmesini emmek için röleler ve diyotlar.

Devre şeması kendinden açıklamalıdır.

Arduino alıcısı için program:

//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x80C // code received from button A
#define output2 0x821 // code received from button B
#define output3 0x820 // code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

Yukarıdaki açıklamaları takip ederek üç kontrolü gerçekleştirebilirsiniz, daha fazla kontrol ve röle eklemek isterseniz kodu ve devre şemasını düzenlemeniz gerekir.

Programda alıcıda ve uzaktan kumandada kullanılmayan pinler için çıkış ve giriş atayabilir ve alıcıdaki ilgili pinler için transistör ve röle sayısını bağlayabilir ve benzer şekilde uzaktan kumandada anahtarları bağlayabilir ve direnci aşağı çekebilirsiniz.

Daha fazla sayıda düğme atamak için rastgele onaltılık kod kullanabilirsiniz.

Örneğin: 0xA235, 0xFFFF, 0xBA556 vb. Ayrıca aynı onaltılık değeri alıcı koduna da ekleyin. Örneğin: #define output4 0xA235, #define outout5 0xFFFF vb.

Eşsiz Frekanslı IR Uzaktan Kumanda Yapmak

Yukarıdaki bölümlerde, herhangi bir IR uzaktan kumanda vericisi ile çalışacak basit bir IR uzaktan kumanda hakkında bilgi sahibi olduk.
Aşağıdaki makalede, benzersiz bir frekansla çalışacak ve asla ortak IR ahizesi ile çalışmayacak olan arduino mikrodenetleyiciyi kullanarak ev aletlerinin kusursuz kontrolü için yukarıdaki konseptin yükseltilmiş bir versiyonunun nasıl yapılacağını öğreneceğiz.

Kusursuz IR Uzaktan Kumanda

Bu devre, TV uzaktan kumandasının kullanılmayan düğmelerini veya önemsiz kutunuzda uzun süredir bulunabilecek diğer kullanılmayan uzaktan kumandaları kullanarak aygıtlarınızı açabilir / kapatabilir.

Bu projenin sloganı, fiziksel engelli kişilere yardımcı olmak ve fanlar veya ışıklar gibi temel ev aletlerinin AÇIK / KAPALI anahtarına bağımsız olarak erişmelerine yardımcı olmaktır.

İkinci amaç, kullanıcının mevcut konumundan hareket etmek zorunda kalmadan cihazları 'bir patron gibi' kontrol etmesini sağlamaktır.

Devre, verici ve alıcı arasındaki geleneksel IR tabanlı iletişimi kullanır.

Bu devre, diğer IR uzaktan kumandalarına ve diğer IR kaynaklarına karşı yüzde yüz hatasızdır ve hatalara karşı daha az hassastır.

Mikrodenetleyici tabanlı olmayan en büyük sorun IR uzaktan kumanda devresi İnternette bulunan, herhangi bir IR tabanlı uzaktan kumanda ile AÇILABİLMESİ / KAPATILABİLMESİ ve bir anda yalnızca bir cihazı kontrol edebilmesi ve ayrıca hatalara daha duyarlı olmasıdır.

Bu devre yukarıda belirtilen sorunların üstesinden gelir ve biz tek bir uzaktan kumandada birkaç aygıtı kontrol edin ve belirli gadget'lar için anahtarlar atayın.

Bu projeye devam etmeden önce, bu bağlantıdan arduino için kütüphane dosyalarını indirmeniz ve aşağıda verilen talimatları izlemeniz gerekir: github.com/z3t0/Arduino-IRremote

Talimatlar:

1) Verilen bağlantıdan 'klonla veya indir' düğmesini tıklayın ve 'ZIP İndir' e tıklayın.

2) Dosyayı çıkarın ve “IRremote” klasörünü Arduino'nun kütüphane klasörüne taşıyın.

3) Arduino kütüphanenizden “RobotIRremote” klasörünü silin. 'RobotIRremote', çakışan ve kodu Arduino'ya yükleyemeyen benzer 'IRremote' kitaplığına sahiptir, bu nedenle silme / kaldırma zorunludur.

Yukarıdaki talimatı kopyalayarak Arduino IDE yazılımınız IR tabanlı projelerin herhangi biri / çoğu için hazırdır.

Uzaktan kumanda için anahtar atayın:

TV uzaktan kumandamızda her tuşun, bir işlem için hangi tuşa basıldığını tanımak için kullanılan benzersiz onaltılık kodu vardır. Nihai kodu Arduino'ya yüklemeden önce, anahtarlarınız için onaltılık kodların ne olduğunu bulmanız gerekir.

Bunu yapmak için, devre tahtasında aşağıdaki devreyi oluşturun ve talimatları izleyin.

1) Arduino IDE'yi açın ve örnek kodu 'IRrecv Demo' yükleyin

2) Seri monitörü açın ve kullanmak istediğiniz uzaktan kumanda üzerindeki tuşuna basın.

Tuşa basar basmaz onaltılık kodun açıldığını göreceksiniz. Bu, söz konusu anahtar için onaltılık koddur.

3) Diğer iki tuş için de aynısını yapın (bu projede 3 cihazı kontrol etmek için 3 tuş verilmiştir)

· Bu hexadecimal kodları ana programda kullanacağız ve arduino'ya yükleyeceğiz.

Program:
//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x111 // place your code received from button A
#define output2 0x112 // place your code received from button B
#define output3 0x113 // place your code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

NOT:

Programda:

#define output1 0x111 // kodunuzu A düğmesinden aldığınız yeri yerleştirin

#define output2 0x111 // B düğmesinden aldığınız kodu yerleştirin

#define output3 0x111 // C düğmesinden aldığınız kodu yerleştirin

· Uzaktan kumandanızdan 3 benzersiz kodunuzu 111, 112 ve 113'ün bu yerine yerleştirin ve kodu yükleyin. Onaltılık kodlar 0 - 9 ve A - F arasında olacaktır, örneğin: 20156, 26FE789, FFFFFF.

· Kodunuzu '0x' (sıfır x) ile yerleştirin.

Devre şeması:

· Tuşuna basılması röleyi AÇIK duruma getirir ve tekrar basıldığında röleyi kapatır.




Bir çift: Yüksek Watt Direnci Kullanan Doğal Sivrisinek Kovucu Sonraki: Derin Toprak Metal Dedektörü Devresi - Zemin Tarayıcı