Arduino Kullanara Kızılötesi İle Uzaktan Kontrollü Araba Devresi Yapımı

3 2.545

Arduino ve kızılötesi (IR) sensörünü kullanarak uzaktan kontrollü araba nasıl yapımını anlatıyoruz. Daha önce arduino ile iki DC motorunu nasıl kullanabileceğinize ve yine arduino ile kızılötesi sensörünün kullanımına dair örnek paylaşmıştık. Bu dersimizde bu iki örneği birleştirerek kızılötesi sensörü ve kızılötesi kumandası kullanarak uzaktan kontrollü bir arabanın nasıl yapılacağını anlatıyoruz.

Kızılötesi Kontrollü Arduino Araba Yapımı

öncelikle gerekli malzemeleri toplamakla işe başlayalım.

Kızılötesi Kontrollü Arduino Araba Malzemeleri:

1 adet Arduino Uno Kartı

1 adet kızılötesi sensörü (IR Sensörü)

1 adet kızılötesi kumanda

2 adet DC motor (6 V 250 RPM Motor ve Tekerlek Seti) kullanabilirsiniz.

1 Adet Motor Sürücü kartı (L293D veya  L298N Voltaj Regulatörlü Çift Motor Sürücü Kartı(Kırmızı PCB) kullanabilirsiniz.)

 

Kızılötesi Kontrollü Arduino Araba Devre Şeması:

kızılötesi ile uzaktan kontrollü arduino araba devresi

Burada dikkat etmemiz gereken en önemli husus motorlara ayrıca bir güç kaynağı bağlamamız gerekmektedir. Motorlara sağladığımız güç kaynağının bu pil olabilir (biz projemizde 4 yataklı pil kullandık) toprak (ground) hattı ile arduino toprak hattı aynı yere bağlanmalıdır.

 

Kızılötesi Kontrollü Arduino Araba Devre Simülasyonu:

Kumandadan 2 tuşuna basınca motorlar ileriye, 8 tuşu ile geriye, 4 sola, 6 sağa doğru hareket ettiğini görebilirsiniz. 5 tuşuna basılınca da motorlar durmaktadır.

kızılötesi ile uzaktan kontrollü arduino araba devresi

 

 

Kızılötesi Kontrollü Arduino Araba Devre Kodları:

Arabamızı kontrol edecek arduino kodlarımı ise aşağıdaki gibidir.

#include <IRremote.h>

int ALICI_PIN=8;
IRrecv irrecv(ALICI_PIN);

decode_results sonuclar;

# define m1 2
# define m2 3
# define m3 12
# define m4 13


void setup()
{
  pinMode(m1, OUTPUT);
  pinMode(m2, OUTPUT);
  pinMode(m3, OUTPUT);
  pinMode(m4, OUTPUT);
  
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop()
{
if(irrecv.decode(&sonuclar))
{
 	Serial.print("Okunan Deger: ");
  Serial.println(sonuclar.value,HEX);
  if( sonuclar.value == 0XFD8877)
    {
    	ileriGit();
    }
    if( sonuclar.value == 0XFD28D7)
    {
    	solaGit();
    }
      if( sonuclar.value == 0XFD9867)
    {
    	geriGit();
    }
        if( sonuclar.value == 0XFD6897)
    {
    	sagaGit();
    }
          if( sonuclar.value == 0XFDA857)
    {
    	dur();
    }
  
      irrecv.resume();
}
}



void ileriGit()
{
  digitalWrite(m1, HIGH);
  	digitalWrite(m3, HIGH);
  	digitalWrite(m2, LOW);
  	digitalWrite(m4, LOW);
}
void geriGit()
{
  digitalWrite(m1, LOW);
  	digitalWrite(m3, LOW);
  	digitalWrite(m2, HIGH);
  	digitalWrite(m4, HIGH);
}
void sagaGit()
{
  digitalWrite(m1, HIGH);
  	digitalWrite(m3, LOW);
  	digitalWrite(m2, LOW);
  	digitalWrite(m4, HIGH);
}
void solaGit()
{
  digitalWrite(m1, LOW);
  	digitalWrite(m3, HIGH);
  	digitalWrite(m2, HIGH);
  	digitalWrite(m4, LOW);
}
void dur()
{
  digitalWrite(m1, LOW);
  	digitalWrite(m3, LOW);
  	digitalWrite(m2, LOW);
  	digitalWrite(m4, LOW);
}

Kodlarda “sonuclar.value == 0XFD9867” olan yerlere sizler sizin kumandanızdan okuduğunuz değerleri yazabilirsiniz. Kızılötesi (IR) kumandadan hangi tuşun hangi sayısal değeri gönderdiğini Seri Monitör üzerinden görebilirsiniz.

3 Yorumlar
  1. Ali diyor

    Merhaba bu projeyi yaptım ama çalışmadı nedeni nedir ben L298n kullandım kodları kendi kumandama göre hazırladım ve doğru şekilde bağladım ama çalışmadı nedeni nedir? ÇOK ACİL

    1. Halil İbrahim K. diyor

      devreni görmek gerek. kodların tam ve doğru olması lazım.

    2. Halil İbrahim K. diyor

      birde seri monitörde tuşlara bastıktan sonra rakamlar yazması lazım. örneğin ileri tuşuna basınca
      if( sonuclar.value == 0XFD8877) senin kumandandaki yazan numaraya göre değiştirmen gerek.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku