Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
ARDUİNO İLE İKLİMLENDİRME PROJESİ VE YÖNTEMLER
#1
ARDUİNO İLE İKLİMLENDİRME PROJESİ VE YÖNTEMLER

Laboratuvar ortamlarında sıcaklığın istenilen değerler arasında tutulması gerekmektedir. İstenilen değerler arasında tutulan sıcaklık ile yapılacak ölçümler daha hassas yapılacaktır. Gerçekleştirdiğim projede sıcaklığın belirtilen sıcaklık değerleri arasında tutulması amaçlanmıştır.
[img=731x0]http://i0.wp.com/mekatronizm.com/wp-content/uploads/2016/04/7.jpg?resize=819%2C460[/img]
Devrenin Fritzing dosyası için tıklayıp indirebilirsiniz.
PROJEDE KULLANILAN ELEMANLAR

  • Arduino Uno

  • 2 adet 9V DC Motor

  • 16×2 LCD Ekran

  • 3×470 Ω DİRENÇ

  • L293D Entegresi

  • 2 adet 10K’lık Potansiyometre ( biri LCD Ekranın parlaklığını ayarlamak için )

  • 2 adet Buzzer

  • 1 adet RGB LED ( Projedeki RGB LED ortak anotlu )

  • Breadboard
DC MOTOR
[img=262x0]http://i2.wp.com/mekatronizm.com/wp-content/uploads/2016/04/3.jpg?resize=262%2C192[/img]Robotikte en sık tercih edilen motor tipi DC motorlardır. DC motorlar ucuz, küçük ve etkilidir. Ayrıca boyut, şekil ve güç bakımından çok çeşitli olmaları da DC motorların sık kullanılmalarının bir diğer sebebidir.

  • Akımın yönüne bağlı olarak motorun dönüş yönü değişir.

  • Motor hızı voltaja ve yüke bağlıdır ve rpm ile ölçülür.

  • Küçük DC motorlar 1,5 V ile 48 V değişen voltaj değerlerine sahip olarak bulunabilirler.

  • DC motorun çekeceği akım yüke bağlıdır.
L293 MOTOR SÜRÜCÜ ENTEGRESİ
[img=504x0]http://i2.wp.com/mekatronizm.com/wp-content/uploads/2016/04/2-1.jpg?resize=504%2C388[/img]
L293D ve L293B motor sürücü entegreleri içlerinde iki adet H köprüsü barındıran 16 bacaklı motor sürücü entegrelerdir. Genellikle DC motor kontrolünde tercih edilen motor sürücü entegreler olan L293D ve L293B ile iki motor birbirinden bağımsız olarak çift yönlü kontrol edilebilmektedir. Ayrıca L293 motor sürücü entegrelerin enable bacaklarının kullanılmasıyla PWM kontrolü de yapılabilmektedir.
L293D motor sürücü entegresi 4,5 V ile 36 V aralığında maksimum 600 mA akım sınırına kadar kullanılabilir. L293B motor sürücü entegrenin ise aynı voltaj aralığında, maksimum 1 A akım sınırına kadar kullanılması mümkündür.
RGB LED
[img=300x0]http://i1.wp.com/mekatronizm.com/wp-content/uploads/2016/04/rgb.jpg?resize=300%2C108[/img]RGB LED’ler animasyon ve ışıklandırma sistemlerinde oldukça fazla kullanılmaktadır. Yapısında 3 tane farklı renk barındıran RGB LED 4 bacaklı olup Arduino ile kontrol edilebilmektedir. RGB LED’lerin ortak katot ve ortak anot olarak 2 çeşidi ardır. Kullandığımız LED’in tipi burada önem arz etmektedir. Çünkü ortak katot LED’ler PWM sinyalinin pozitif bölümüyle aktif olurken bu durum anot LED’lerde ise negatif bölümüyle aktif olur. Projemizde ortak anot RGB LED kullanılmıştır.
 
PROJENİN ÇALIŞMA MANTIĞI
Proje için gerekli Arduino programı bilgisayarda yazıldıktan sonra Arduino Uno’ya yüklendi ve gerekli elektrik ve elektronik bağlantılar breadboard üzerinde gerçekleştirildi. Sisteme enerji verildiği anda eğer ki potansiyometre değerimiz desimal kod sisteminde 341 – 682 değerleri arasında ise RGB LED’in YEŞİL kısmı aktif olur. LCD ekranda “ SISTEM NORMAL “ yazısı yazar. Sistem normal iken buzzer ve motor devreye girmez.
[img=731x0]http://i0.wp.com/mekatronizm.com/wp-content/uploads/2016/04/4.jpg?resize=860%2C484[/img]
Potansiyometre değerimizi desimal kod sisteminde 682 – 1023 değerleri arasına getirdiğimizde ise RGB LED’in KIRMIZI kısmı aktif olur. LCD ekranda “ SOĞUTUCU DEVREDE “ yazısı yazar. Bu durumda iken Buzzer1 programda belirtilen şekilde çıkış verir ve Motor1 devreye girer.
[img=731x0]http://i1.wp.com/mekatronizm.com/wp-content/uploads/2016/04/5.jpg?resize=860%2C484[/img]
Potansiyometre değerimizi desimal kod sisteminde 0 – 341  değerleri arasına getirdiğimizde ise RGB LED’in MAVİ kısmı aktif olur. LCD ekranda “ ISITICI DEVREDE “ yazısı yazar. Bu durumda iken Buzzer2 programda belirtilen şekilde çıkış verir ve Motor2 devreye girer.


Kod:
#include <LiquidCrystal.h> // LCD Ekranın çalıştırılabilmesi için kütüphanesi eklendi
// RGB pinleri
int yesilPin = 1; // RGB LED'in yeşil kısmı 1 numaralı dijital pine atandı
int kirmiziPin = 0; // RGB LED'in kırmızı kısmı 0 numaralı dijital pine atandı
int maviPin = 6; // RGB LED'in mavi kısmı 6 numaralı dijital pine atandı
// Buzzer pinler
int buzzer1Pin = 7; // Sıcaklığın 26 dereceden yüksek olması durumunda ikaz verecek olan buzzer 7 numaralı dijital pine atandı
int buzzer2Pin = 8; // Sıcaklığın 24 dereceden düşük olması durumunda ikaz verecek olan buzzer 8 numaralı dijital pine atandı
// Motor pinleri
int motor1Pin = 9; // Sıcaklığın 26 dereceden yüksek olması durumunda sıcaklığı düşürecek olan soğutucu motor 9 numaralı dijital pine atandı
int motor2Pin = 10; // Sıcaklığın 24 dereceden düşük olması durumunda sıcaklığı yükseltecek olan ısıtıcı motor 10 numaralı dijital pine atandı
// Sıcaklık ayar potu
int isiPot = 2; // Sıcaklık aralıklarını ayarlamak için potansiyometre A2 numaralı analog pine atandı
int isi = 0;
int i = 0;
LiquidCrystal lcd(12, 11, 5, 4 ,3, 2);

void setup() {
lcd.begin(16, 2); // LCD ekranın 16x2 ekrana sahip bilgisi girildi
lcd.clear();
lcd.setCursor(0, 1); // LCD 1. sekmesine yazılması gerektiği belirtildi
pinMode(kirmiziPin, OUTPUT); // 0 numaralı dijital pin çıkış olarak belirtildi
pinMode(maviPin, OUTPUT); // 6 numaralı dijital pin çıkış olarak belirtildi
pinMode(yesilPin, OUTPUT); // 1 numaralı dijital pin çıkış olarak belirtildi
pinMode(buzzer1Pin, OUTPUT); // 7 numaralı dijital pin çıkış olarak belirtildi
pinMode(buzzer2Pin, OUTPUT); // 8 numaralı dijital pin çıkış olarak belirtildi
}

void loop() {
isi = analogRead(isiPot); // A2 numaralı analog girişteki potansiyometre değeri isi işlemine yazdırıldı

if(isi > 341 && isi < 682) { // Sıcaklık 24-26 derece arasında ise

 lcd.setCursor(0, 1); // LCD 1. sekmesine yazılması gerektiği belirtildi
 lcd.print("SISTEM NORMAL "); // LCD ekranda " SISTEM NORMAL " yazıyor
 digitalWrite(yesilPin, LOW); // Sistem istenilen sıcaklık aralığında olduğunda YEŞİL LED yanıyor
 digitalWrite(maviPin, HIGH); // MAVİ LED sönük duruma getirildi
 digitalWrite(kirmiziPin, HIGH); // KIRMIZI LED sönük duruma getirildi
 analogWrite(motor1Pin, 0); // Soğutucu motoro devre dışı
 analogWrite(motor2Pin, 0); // Isıtıcı motoro devre dışı
 digitalWrite(buzzer1Pin, LOW); // Soğutucu motora bağlı ikaz devre dışı
 digitalWrite(buzzer2Pin, LOW); // Isıtıcı motora bağlı ikaz devre dışı
}
if(isi >= 682) { // Sıcaklık 26 dereceden yüksek ise

 lcd.setCursor(0, 1); // LCD 1. sekmesine yazılması gerektiği belirtildi
 lcd.print("SOGUTUCU DEVREDE"); // LCD ekranda " SOGUTUCU DEVREDE " yazıyor
digitalWrite(kirmiziPin, LOW); // Sistem 26 dereceden yüksek olduğunda KIRMIZI LED yanıyor
 digitalWrite(yesilPin, HIGH); // YEŞİL LED sönük duruma getirildi
 digitalWrite(maviPin, HIGH); // MAVİ LED sönük duruma getirildi
 analogWrite(motor1Pin, 100); // Soğutucu motoru devreye giriyor
 analogWrite(motor2Pin, 0); // Isıtıcı motoro devre dışı

for (i=0; i=100000; i++){
 digitalWrite(buzzer1Pin, HIGH); // Soğutucu motora bağlı buzzer ikaz veriliyor
 digitalWrite(buzzer2Pin, LOW); // Isıtıcı motora bağlı ikaz devre dışı
 delay(25); // 7 numaralı dijital pindeki buzzer 25 ms ötüyor
 digitalWrite(buzzer1Pin, LOW); // Soğutucu motora bağlı buzzer ikaz vermiyor
 delay(50); // 7 numaralı dijital pindeki buzzer 50 ms susuyor
if(isi >= 682){ // isiPot değeri 682 değerinden büyük olduğunda buzzer belirtilen süreler ile işlemi gerçekleştirmeye devam ediyor
break;
}
}
}
delay(10);

if(isi <= 341) { // Sıcaklık 24 dereceden düşük ise

lcd.setCursor(0, 1); // LCD 1. sekmesine yazılması gerektiği belirtildi
lcd.print("ISITICI DEVREDE"); // LCD ekranda " ISITICI DEVREDE " yazıyor
digitalWrite(maviPin, LOW); // Sistem 24 dereceden düşük olduğunda MAVİ LED yanıyor
digitalWrite(kirmiziPin, HIGH); // KIRMIZI LED sönük duruma getirildi
digitalWrite(yesilPin, HIGH); // YEŞİL LED sönük duruma getirildi
analogWrite(motor2Pin, 100); // Isıtıcı motoru devreye giriyor
analogWrite(motor1Pin, 0); // Soğutucu motoru devre dışı

for (i=0; i=100000; i++){
 digitalWrite(buzzer2Pin, HIGH); // Isıtıcı motoro bağlı ikaz veriliyor
 digitalWrite(buzzer1Pin, LOW); // Soğutucu motora bağlı ikaz devre dışı
 delay(50); // 8 numaralı dijital pindeki buzzer 50 ms ötüyor
 digitalWrite(buzzer2Pin, LOW); // Isıtıcı motora bağlı buzzer ikaz vermiyor
 delay(200); // 8 numaralı dijital pindeki buzzer 200 ms susuyor
if(isi <= 341){ // isiPot değeri 341 değerinden küçük olduğunda buzzer belirtilen süreler ile işlemi gerçekleştirmeye devam ediyor
break;
}
}
 delay(10);
}
}

Proje Sahibi :Mehmet Kaplan
Bul
Alıntı


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  ARDUİNO VE MATLAB İLE MPU6050 KULLANIMI VE YÖNTEMLER Ken 0 205 19-05-2016, Saat: 09:57
Son Mesaj: Ken
  MIT APP INVERTOR & ARDUİNO İLE LED KONTROL ETME YÖNTEMİ Ken 0 122 19-05-2016, Saat: 09:55
Son Mesaj: Ken
  MIT APP INVERTOR VE ARDUİNO İLE SERVO MOTOR KONTROL ETME YÖNTEMİ Ken 0 128 19-05-2016, Saat: 09:53
Son Mesaj: Ken
  ARDUİNO İLE NOKİA 5110(PCD8544) GRAFİK LCD KULLANIMI VE GEREKLİ YÖNTEMLER Ken 0 194 19-05-2016, Saat: 09:52
Son Mesaj: Ken
  ARDUİNO KONTROLLÜ ÇİM SULAMA SİSTEMİ PROJESİ VE YÖNTEMLER Ken 0 141 19-05-2016, Saat: 09:51
Son Mesaj: Ken

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi
loading...