Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 23 Hava Kalitesi Ölçümü – Mesafe Bilgisini LCD Ekranda Yazma 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:

Hava Kalitesi Ölçümü – Mesafe Bilgisini LCD’ye Aktarma.

Ders Kazanımları:

  • Hava kalitesi ölçüm aracı programını yardım almadan başarılı bir şekilde tasarlar.
  • Mesafe ölçüm aracı ile mesafe ölçme 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: Hava Kalitesi Ölçüm Aracı

Kullanılacak Malzemeler:

Bağlantı Şeması:

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

Resim119

  1. LCD ekranın 4 pini aşağıdan yukarı doğru sırasıyla, breadboard üzerinde “-” hatta, breadboard üzerinde “+” hatta, A4 pinine ve A5 pinine bağlanır.
  2. Gaz sensörünün ise VCC pini breadboard üzerinde “+” hatta, GND pini breadboard üzerinde “-” hatta, A0 pini Ardino üzerinde A0 pinine, D0 pini Ardino üzerinde 8 nolu pine bağlanır.
  3. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise yine breadboard üzerinde “-” hatta bağlanır.

Kodlar:

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

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
#define sensor_pin A0
#define sensor_pin 8
int buzzer=9;
#define preheat_time 5000
void setup() {
lcd.begin();
pinMode(2,OUTPUT);
pinMode(9,OUTPUT);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Hava Kontrol");
lcd.setCursor(0,1);
lcd.print("Ediliyor");
delay(5000);
int sensorValue = analogRead(sensor_pin);
digitalWrite(9,LOW);
digitalWrite(2,LOW);
if (sensorValue >= 400)
{ digitalWrite(2,HIGH);
digitalWrite(9,HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Zararlı gaz");
lcd.setCursor(0,1);
lcd.print("tespit edildi");
delay(3000);
lcd.clear();
}
else
{ digitalWrite(2,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Hava Temiz");
delay(4000);
lcd.clear();
}
}
  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada Hava Kalitesi Ölçüm Aracı ortamdaki havanın kalitesini kontrol edecektir.
  • Eğer ölçülen değer 300’den büyükse LCD Ekranda “Zararlı Gaz Tespit Edildi” yazacaktır.
  • Ölçülen değer 300’den küçükse LCD Ekrana “Hava Temiz” yazacaktır.

 

Uyarı:

Aşağıdaki programı tasarlayıp çalıştırdığınızda LCD ekranda sadece parlaklık varsa ve bilgi alamıyorsanız bunun sebebi LCD ekranın görünürlük ayarının düşük olması olabilir.

Bu ayar LCD ekranın arka kısmında (LCD ekranı yıldız tornavida ile sökmeniz gerekecek)  I2C modülünün üzerindeki potansiyometre ile yapılabilir. Tornavida yardımı ile potansiyometreyi çevirerek görünürlüğü ayarlayabilirsiniz.

Ayrıca kodları yazarken I2C modülün adresini kendi modülünüzün adresine göre düzeltmeyi unutmayın!

(I2C modülünüzün adresini bilmiyorsanız 15. derste tarif edildiği şekilde bulabilirsiniz.)


Uygulama 2: Mesafe Sensörü ile Mesafe Ölçme ve LCD Ekranda Yazma

Kullanılacak Malzemeler:

Bağlantı Şeması:

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

Resim120

  1. Arduino üzerindeki 5V pini breadboard üzerinde “+” hatta, GND pini ise yine breadboard üzerinde “-” hatta bağlanır.
  2. LCD ekranın 4 pini aşağıdan yukarı doğru sırasıyla, breadboard üzerinde “-” hatta, breadboard üzerinde “+” hatta, A4 pinine ve A5 pinine bağlanır.
  3. Mesafe sensörünün VCC pini breadboard üzeride “+” hatta, GND pini “-” hatta, Trig pini 13 nolu pine, Echo pini 12 nolu pine bağlanır.

Kodlar:

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

#include <Wire.h>
#include <LiquidCrystal_I2C.h> // LCD ekran için Kod Kütüphanesi
#include <NewPing.h> // HC-SR04 için Kod Kütüphanesi
LiquidCrystal_I2C lcd(0x3F,16,2);
#define TRIGGER_PIN 13 // Ultrasonik Sensör’ün Trig pininin bağlı olduğu Arduino pini.
#define ECHO_PIN 12 // Ultrasonik Sensör’ün Echo pininin bağlı olduğu Arduino pini.
#define MAX_DISTANCE 400 // Ölçmek istediğimiz maksimum mesafe.
//(Maksimum 400-500cm civarı ölçülebilir. Ölçüm alanı dışında ise “0” değeri döndürür.)
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Pinler ve maksimum mesafe ile
// NewPing nesnesi oluşturma.HC-SR04 kütüphanesi kullanıldığı için bu tanımlama yapıldı.
void setup() {
lcd.begin(); // LCD ekranın genişlik ve yükseklik ölçülerini derleyiciye bildirme.
lcd.setCursor(0,0); // İmleci ilk satırın ilk sütununa yerleştirme.
lcd.print("Uzaklik:"); // İmlecin olduğu yere “Uzaklik:” yazdırma.
}
void loop() {
delay(50); // Gönderilen dalgalar arası 50 ms bekle.
//(Minimum bekleme süresi 29ms olmalı.)
lcd.setCursor(0,1); // İmleci ikinci satırın ilk sutünuna yerleştirme.
lcd.print(sonar.ping_cm() ); // İmlecin olduğu yere ölçülen uzaklığı santimetre
//cinsinden yazma.
lcd.print(" cm"); // Uzaklık birimi olan “cm” yazma.
}
  • 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 ölçülen bir nesneye olan uzaklık değeri sürekli bir şekilde LCD Ekranda gösterilecektir.

CEVAP VER

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