Print this page
IR Kızılötesi Kumanda Seti ile Led Yakma, arduino ve mblock kodları (Arduino Dersleri, 17)

IR Kızılötesi Kumanda Seti ile Led Yakma, arduino ve mblock kodları (Arduino Dersleri, 17) Featured

Rate this item
(1 Vote)

Bu dersimizde Kızılötesi kumanda seti  kullanımıyla ilgili temel bir uygulama yapacağız.

Bu uygulamada
1 numaralı tuşa bastığımızda yeşil led yanacak, bir daha bastığımızda sönecek.
2 numaralı tuşa bastığımızda kırmızı ve mavi ledler yanacak, bir daha basınca sönecek.
3 numaralı tuş içinse tüm ledler sırayla yanıp sönecek.


Gerekli Malzemeler

1 adet Arduino Uno R3
1 adet breadboard
1 adet Kızılötesi kumanda seti (IR alıcı ve kumanda)
3 adet led ( kırmızı, yeşil, mavi)
3 adet direnç (220-330ohm)
7 adet jumper kablo  (EE)

IRremote kütüphanisini buraya tıklayarak indirebilirsiniz.


Kızılötesi Kumanda Seti nedir?

Kızılötesi alıcı verici parçalardan oluşan bir settir. Çalışma mantığı ise kumanda da bulunan kızılötesi (infrared, ir) led, belirli bir frekansta IR alıcıya bir kod gönderir. IR alıcı da gelen bu ışığı algılar ve bu şekilde çalışır.

Kızılötesi Kumanda Seti Kullanımı Devresi

IR Kızılötesi Set ile Led Yakma Arduino Kodları

Öncelikle IRremote.h kütüphanesini yüklüyoruz ve kodumuza ekliyoruz. Daha sonra IRrecv sensor_pinimiz(2); komutu ile kızılötesini bağladığımız sensörü tanımlıyoruz. Sonra alt kısıma ledlerimizi tanımlıyoruz.
Programımızı yazdıktan sonra çalıştırıyoruz ve kumandanın tuşlarını tanımlıyoruz bu alana. Tuşların değerlerini hex (16lık sayı sistemi) olarak istediğimiz için tanımla yaparken de başına 0x yazıyoruz ki arduino hex karakterler olduğunu anlasın. #define BUTON1 0x FF7A85  gibi. ffffff şeklinde bir değer okursanız serial ekrandan, son bastığınız tuşa basılı tutuyorsunuz anlamına gelmektedir.

Void Setup kısmında ledlerimizi çıkış birimi olarak tanımlıyoruz ve ilk durum bilgisi veriyoruz, yansın mı sönsün mü şeklinde. Çünkü kodumuzun loop kısmında durumu değiştir diyoruz, bu yüzden ilk durum bilgisi veriyoruz.

Voidloop kısmında sinyal gelip gelmediğini kontrol ediyoruz. Sonra gelen sinyali serial ekrana hex (16lık sayı sistemi) olarak yazdırıyoruz. Ve burada gördüğümüz sinyal değerlerini void setup kısmında tuş tanımlamalarında kullanıyoruz. Voidsetup kısmında tuş tanımlaması yaparken başına 0x yazıyoruz ki arduino gelen bu değerlerin hexadecimal sayılar olduğunu anlasın. Kullanmak istediğimiz tuşları tanımladıktan sonra, bu tuşlara basıldığında yapılmasını istediğimiz olaylar için kod yazıyoruz.

 

#include <IRremote.h>
IRrecv sensor_pinimiz(2); //sensörü bağladığımız pini tanımlıyoruz.
decode_results results;  // daha sonra tuş tanımlamaları için kodumuzu yazıyoruz.
//bu alanda kumandada yer alan tuşlar tanımlanmıştır.
//programı çaıştırdıktan sonra tuşa basarak, serial ekranan okuma yapıyoruz.
//karşımıza çıkan tuşun kodunu bu alana yapıştırıyoruz.
//hexadecimal yani 16lık sayı sistemi olduğu için başına 0x yazıyoruz.
#define BUTON1 0xFF30CF 
#define BUTON2 0xFF18E7
#define BUTON3 0xFF7A85
#define BUTON4 0xFD20DF

//ledlerimizi tanımlayalım
#define yesil 3
#define mavi 4
#define kirmizi 5


void setup() 
{
  Serial.begin(9600);
  sensor_pinimiz.enableIRIn();
  //alt satırlarda ledlerimizi çıkış olarak tanımlıyoruz.
  //ilk durum bilgisi veriyoruz, çünkü loop kısmında durumu değiştir diyoruz.
  //yanıyorsa söndür, sönmüşse yak gibi.
  pinMode(yesil, OUTPUT);
  digitalWrite(yesil,0);
  pinMode(mavi, OUTPUT);
  digitalWrite(mavi,0);
  pinMode(kirmizi, OUTPUT);
  digitalWrite(kirmizi,0);
}

void loop() 
{
  if (sensor_pinimiz.decode(&results)) 
  //Herhangi bir sinyal gelip gelmediğini kontrol ediyoruz.
  // herhangi bir sinyal geliyorsa kontrol ediyor.
  {
    Serial.println(results.value, HEX); // 16lık sayı sistemine göre tuş bilgisini serial ekrana yaz
   
   if(results.value == BUTON1)  // buton1 e basıldıysa
    {
      digitalWrite( yesil, !digitalRead(yesil));
    }


   if(results.value == BUTON2)  // buton2 e basıldıysa
    {

     digitalWrite( mavi, !digitalRead(mavi));
     digitalWrite( kirmizi, !digitalRead(kirmizi));
    }


   if(results.value == BUTON3)  // buton3 e basıldıysa
    {
      digitalWrite( yesil, 0);
      digitalWrite( mavi, 0);
      digitalWrite( kirmizi,0);
      digitalWrite( yesil, 1);
      delay(200);
      digitalWrite( mavi, 1);
      delay(200);
      digitalWrite( kirmizi,1);
      delay(400);
      digitalWrite( yesil, 0);
      delay(200);
      digitalWrite( mavi, 0);
      delay(200);
      digitalWrite( kirmizi,0);
      delay(200);
      digitalWrite( yesil, 1);
      digitalWrite( mavi, 1);
      digitalWrite( kirmizi,1);
    }


    
   sensor_pinimiz.resume();  
  }
  
}

IR Kızılötesi Set ile Led Yakma Mblock Kodları
Mblock kodları eklenecektir.

 

 Lezzetli Robot Tarifleri
https://lezzetlirobottarifleri.com/tv-kumandasi-ile-arduino-kontrolu/


Robotistan
https://www.youtube.com/watch?v=gc0PTqoPhsI

 

 

 

Share:

Latest from RAM