Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 24 Park Sensörü Uygulaması – Buton ile Trafik Işığı Kontrolü için isterseniz sunu şeklinde alt taraftaki kutucuğu büyüterek takip edebilir, isterseniz de tüm sunu sayfalarının makale haline dönüştürülmüş versiyonu takip edebilirsiniz. İçerikler büyük oranda aynıdır. Sınıf ortamında kolaylık olması açısından sunu şeklinde de sunulmuştur.

Ders İçeriği:

Park Sensörü Uygulaması – Buton İle Trafik Işığı Kontrolü

 

Ders Kazanımları:

  1. Buton İle Trafik Işığı Kontrol programını yardım almadan başarılı bir şekilde tasarlar.
  2. Park Sensörü programını yardım almadan başarılı bir şekilde tasarlar.

Oluşabilecek Hatalar:

Aşağıdaki programları çalıştırırken bir takım hatalarla karşılaşabilirsiniz. Bu hataların kodların yazımında meydana gelen hatalar dışında başka sebeplerle ortaya çıkması muhtemeldir. Bu hatalardan sık karşılaşılanlara aşağıda değinilmiştir.

Kart Seçilmesinden Kaynaklı Hata:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru kartın seçilmesi gerekmektedir. Kart seçilmediğinde “Karta yüklenirken bir sorun oluştu.” benzeri bir hata alabilirsiniz.

USB Portun Seçilmesiyle İlgili Hatalar:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru portun seçilmesi gerekmektedir. Bu port Arduino Uno’nun bilgisayara bağlandığı usb porttur. Farklı şekilde bilgisayarınızda usb driver yüklenmemiş olabilir. Bu gibi hatalarda “Port bulunamadı.” gibi hatalar almanız muhtemeldir.


Uygulama 1: Buton İle Trafik Işığı Kontrolü

 

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

 

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise yine breadboard üzerinde “-” hatta bağlanır.
  2. LEDler breadboarda şekildeki gibi yerleştirilir.
  3. Kısa bacaklar şekildeki gibi birbirine bağlanır.
  4. Kırmızı LEDin uzun bacağı şekildeki gibi direnç yardımı ile 10 nolu pine bağlanır.
  5. Yeşil LEDin uzun bacağı şekildeki gibi direnç yardımı ile 8 nolu pine bağlanır.
  6. Sarı LEDin uzun bacağı şekildeki gibi direnç yardımı ile 9 nolu pine bağlanır.
  7. Buton şekildeki gibi yerleştirildikten sonra bir bacağı direnç yardımıyla “-” hatta, boşta kalan bacağı “+” hatta, direncin bağlı olduğu bacak ise 12 nolu pine bağlanır.

Kodlar:

Uygulamanın “.ino” dosyalarını (kod dosyalarını) buradan indirebilirsiniz.

int kirmizi = 10;//ledlerin bağlandığı pinler
int sari = 9;
int yesil = 8;
int button = 12; // butonun bağlandığı pin 12
void setup() {
pinMode(kirmizi, OUTPUT);//pinlere çıkış sinyalinin verilmesi
pinMode(sari, OUTPUT);
pinMode(yesil, OUTPUT);
pinMode(button, INPUT);//butona giriş sinyali verilmesi
}
void loop() {
if (digitalRead(button) == HIGH)
{
digitalWrite(yesil, LOW);//butona basılınca yeşil ledi söndür
delay(15); // 15 ms bekleme
changeLights(); //ChangeLights fonksiyonunu çağır.
}
}
void changeLights(){
// sarı ledi söndür, kırmızı ledi yak
digitalWrite(sari, LOW);
digitalWrite(kirmizi, HIGH);
delay(2000);
// 2 saniye sonra sarı ledi yak
digitalWrite(sari, HIGH);
delay(2000);
// 2 saniye sonra sari ve kırmızı ledi söndür yeşil ledi yak
digitalWrite(sari, LOW);
digitalWrite(kirmizi , LOW);
digitalWrite(yesil, HIGH);
delay(3000);
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada butona basıldığında trafik ışığı şeklinde yanan ledler aktif olacaktır.

Uygulama 2: Park Sensörü Uygulaması

 

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

 

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise yine breadboard üzerinde “-” hatta bağlanır.
  2. Buzzer breadboarda yerleştirildikten sonra kısa bacağı “-” hatta, uzun bacağı ise Arduino üzerinde 2 nolu pine bağlanır.
  3. Mesafe sensörünün VCC pini “+” hatta, GND pini “-” hatta, Trig pini 13 nolu pine, Echo pini ise “12” nolu pine bağlanır.
  4. LEDler şekildeki gibi yerleştirildikten sonra kısa bacaklar “-” hatta bağlanır. Uzun bacaklar ise dirençlere bağlanır. Yeşil LEDin bağlı olduğu direnç 4 nolu pine, sarı LEDin bağlı olduğu direnç 5 nolu pine, kırmızı LEDin bağlı olduğu direnç 6 nolu pine, mavi LEDin bağlı olduğu direnç 3 nolu pine bağlanır.

Kodlar:

Uygulamanın “.ino” dosyalarını (kod dosyalarını) buradan indirebilirsiniz.

const int trigger_pin = 13;//trig pini bağlantısı
const int echo_pin = 12;//echo pini bağlantısı
const int buzzer = 2;//buzzer bağlantısı
const int mled = 3;//ledlerin bağlantısı
const int yled = 4;
const int sled = 5;
const int kled = 6;
int mesafe ;//mesafe ve süre adında iki değişkenin tanımlanması
int sure ;
void setup() {
pinMode ( kled , OUTPUT);//ledlere çıkış sinyali gönderilmesi
pinMode ( sled , OUTPUT);
pinMode ( yled , OUTPUT);
pinMode ( mled , OUTPUT);
pinMode ( buzzer , OUTPUT);
pinMode ( trigger_pin , OUTPUT);
pinMode ( echo_pin , INPUT);//trigden gelen sinyalin algılanması için giriş olarak tanımladık.
Serial.begin(9600);
}
void loop() {
digitalWrite(trigger_pin , HIGH);//uzaklığın hesaplanması için trig pininden sinyal gönderdik.
delayMicroseconds(1000);
digitalWrite(trigger_pin , LOW);//trig pinini durdurduk
sure = pulseIn(echo_pin ,HIGH);//echo pininden dönen sinyali aldık
mesafe = (sure/2) / 29.1;//sinyalin dönme süresine göre mesafeyi hesaplamak için kullanılan formül
Serial.println(mesafe);//serial ekrana mesafenin yazdırılması
if (mesafe <= 10)//eğer mesafe 10 cm küçükse
{
digitalWrite( kled , HIGH);//kırmızı ked ve buzzer çalışacak
digitalWrite( buzzer , HIGH);
delay(50);
digitalWrite( kled , LOW);//50 milisaniye sonra duracak
digitalWrite( buzzer , LOW);
delay(200);
}
else if(mesafe > 10 and mesafe <25)//eer mesafe 10 cm den büyük 25 cmden küçükse
{
digitalWrite( sled ,HIGH);// sarı led ve buzzer çalışacak
digitalWrite( buzzer , HIGH);
delay(50);
digitalWrite( sled , LOW);//50 milisaniye sonra duracak
digitalWrite( buzzer , LOW);
delay(400);
}
else if(mesafe >25 and mesafe <50)//eğer 25 cmden büyükse ve 50 cmden küçükse
{
digitalWrite( yled ,HIGH);//yeşil led ve buzzer çalışacak
digitalWrite( buzzer , HIGH);
delay(50);
digitalWrite( yled , LOW);//ikisi birden duracak
digitalWrite( buzzer , LOW);
delay(600);
}
else
{
digitalWrite( mled ,HIGH);//hiçbir durum geçerli değilse mavi led yanıp sönecek.
delay(50);
digitalWrite( mled , LOW);
delay(1000);
}
}

  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada mesafe sensörü ile engel arasındaki mesafe uzun ise yeşil led yanacak ve buzzerdan aralıklı ses ötecektir.
  • Mesafe azaldıkça sırasıyla sarı ve kırmızı ledler yanacaktır. Eşzamanlı olarak buzzerda hızlı ötecektir.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz