kumanda

Herhangi kumanda ile LED(Herhangi bir cihaz) kontrolü

Arduino hayatın vazgeçilmezi olabilecek kapasitedir. Çünkü aklınıza gelebilecek herhangi bir düşünceyi projelendirebilirsiniz.  Bu yazımızda arduinoyu herhangi bir kumanda ile nasıl kontrol edebiliriz bunu öğreneceğiz.Arduino ile kumandalar arasında etkileşim için tabiki olmazsa olmaz olan kütüphaneye ihtiyacımız vardır.

 

 

Kütüphane ihtiyacınızı giderdikten sonra size kumandalar ile ilgili küçük bir bilgi vereyim. Herhangi bir cihazın kumandası eğer radyo frekans değilse dijitaldir. bunun anlamı her butonun bir kodunun olduğu ve kontrol ettiği cihazda bulunan elektronik devre bunu çözerek kontrolü sağlar.

Bu proje nerelerde kullanılabilir?

Ev otomasyonu düşünün oturduğunuz yerden herşeyi kontrol edebilirsiniz. Gerisi size kalmış hertürlü projelerinizde zevkle kullanabilirisiniz.

Kullanılacak kumandanın kodları nasıl tespit edillir?

Bu sorunun cevabını projemiz ile anlatacağım. Projemizde 3 adet LED var ve bunların kontrolünü herhangi bir kumanda ile yapacağız. Devre şemamız aşağıdaki gibidir.

IR

Bu devremizde gördüğünüz gibi bir adet FOTO TRANSİSTOR (herhangi bir fotoransistör işinizi görecektir 3bacaklı olmasına dikkat edin )  ve 3 adet LED mevcut. Kumandadan bastığımız butonu fototransistör algılayarak mevcut kütüphaneler yardımıyla kodunu çözmemiz gerekmekte daha sonra ise mevcut kodları kullanarak neler yapması gerektiğini programda belirteceğiz.

1. AŞAMA :

Yukarıdaki devremizi tasarladıktan sonra artık kumandamızın buton kodlarını öğrenebiliriz

Bu programı yükledikten sonra seri monitörünü açın ve butonlara basarak hangi butonun hangi  kodlar ürettiğini kayıt edin. Çünkü bu kodlara göre işlem yaptıracağız.

Kumanda buton kodları algılama programımız

#include <IRremote.h>
 
int RECV_PIN = 11;  //foto transistör bağlantısı
IRrecv irrecv(RECV_PIN);
decode_results kod;
 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // alma için hazırlandı
   
}
 
void loop()
{
  if (irrecv.decode(&kod))
    {
     Serial.println(kod.value, DEC); // Kodun Desimal Değere çevirerek göster
     irrecv.resume();} // Yeni kod alımına hazır
 
}

Bu kodları kayıt ettiğinizi düşünerek bendeki kodları paylaşıyorum

kumanda kodlari

2. Aşama :

Kodları altıktan sonra yukardaki devrede gördüğünüz üzere 3 LED mevcut bize 4 buton lazım olacak bunlar tek tek ledleri yakacak ve bir buton ise hepsini söndürecek

Not: Bazı kumandalarda aynı butonun iki farklı değeri olabilir bunu şu şekilde çözebilirsiniz

int kumanda(int k)
{
 
  if(k==5121)
    return 1;
  if(k==7170)
    return 2; 
  if(k==5146)
    return 3;
  if(k==6512)
    return 4;
////////////////////////////
// mesela birinci butonun ikinci değerlerini şu şekilde belirtebiliriz
if (k== ikincideger)
return 1 ;
return -1;   
 
}

her buton için yazılmalıdır.

Programımız.
#include <IRremote.h>
 
int RECV_PIN = 11;
 
IRrecv irrecv(RECV_PIN);
 
decode_results kod;
 
int kumanda(int k)
{
 
  if(k==5121)
    return 1;
  if(k==7170)
    return 2; 
  if(k==5146)
    return 3;
  if(k==6512)
    return 4;
 
 
return -1;   
 
}
 
void setup()
{
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
 
  Serial.begin(9600);
  irrecv.enableIRIn();
}
 
void loop() {
  if (irrecv.decode(&kod)) {
 
    Serial.println(kumanda(kod.value));
 
    if(kumanda(kod.value) == 1){
      digitalWrite(9,HIGH);
}
 
    if(kumanda(kod.value) == 2){
      digitalWrite(8,HIGH);
}
 
    if(kumanda(kod.value) == 3){
      digitalWrite(7,HIGH);
}
 
    if(kumanda(kod.value) == 4){
 
      digitalWrite(7,LOW);   
      digitalWrite(8,LOW); 
      digitalWrite(9,LOW); 
 }
 irrecv.resume();
  }
}
  1. ayhan öztürk 16 Haziran 2016 17:58

    merhaba aynı devreyi 2.4 ghz lik radyo sinyali veren bir kumanda içinde kod okuma yapa bilirmiyiz acaba

    Cevapla

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.