Elektrik elektronik temrinleri

Ders Notlarý => Arduino Öðreniyorum => Projeler => Konuyu balatan: Hasan ERTÜRK - 07 Kasm 2015, 23:56:27

Balk: 13. Gaz alarmý
Gnderen: Hasan ERTÜRK - 07 Kasm 2015, 23:56:27
Bu dersimizde Trabzon Mesleki ve Teknik Anadolu Lisesi öðrencilerinin Elektronik Öðretmeni Leyla KOLOT danýþmanlýðýnda arduino ve MQ-6 gaz modülü kullanarak geliþtirmekte olduklarý bir gaz alarmý devresinin tasarým ve yapým aþamalarýný birlikte inceleyeceðiz.

http://www.youtube.com/watch?v=poBIqdAofxYÖncelikle arduinoyu yeni tanýyacak olanlar için meraklý maymun (http://meraklimaymun.net/)dan Çaðan Bey'in gayet güzel hazýrladýðý videoyu izleyelim.

Gaz alarmý devremizin özelliklerini maddeler halinde sýralayalým:
1. Ortamda gaz yokken devremiz pasif halde olup, ortamda her hangi bir gaz sýzýntýsý olmadýðýna dair lcd ekranda yazýlan bilgilendirme yazýsý haricinde çýktý vermemektedir.
2. Ortamda bir gaz sýzýntýsý varsa devremiz siren çalma, ortamdaki durumu lcd ekranda izleyebilme, pencereyi açma, havalandýrma fanýný açma ve önceden belirlediðimiz bir telefon numarasýný arayarak sýzýntý ihbarýnda bulunmak üzere toplamda 5 fonksiyonu yerine getirecek.

(http://temrinlerim.org/images/gaz_modulu.jpg)Ýþe MQ-6 gaz modülünü tanýmak ile baþlayalým:
MQ-6, LPG, izobütan, propan gazý algýlama sensör kartýdýr. 300ppm ve 10000ppm arasýnda propan tespit eder. Projelerinizde rahatlýkla kullanabilirsiniz.

Çalýþma Gerilimi: DC 5V
Çalýþma Sýcaklýðý: -10 / -50 °C
Analog ve dijital olmak üzere 2 çýkýþý vardýr.
Analog çýkýþ 0 - 5 Volt aralýðýndadýr.
Ýsteðe baðlý olarak analog çýkýþ yerine dijital çýkýþý da kullanabilirsiniz. TTL çýkýþ vermektedir.
http://www.youtube.com/watch?v=A0JxLHRLgmMGaz sensörüne ait dijital çýkýþýn test edilmesi:
Sensöre ait Vcc ve GND uçlarýna dc 5Volt uygulanýr.
D0 çýkýþý ile GND uçlarý arasýna avometre baðlanýr.
Ortamda gaz yokken yeþil ledin sönük olduðu ve avometreden 5 Volt okunduðu (lojik 1) gözlenir.
Ortamda gaz varken yeþil ledin yandýðý ve avometreden 0Volt okunduðu (lojik 0) gözlenir.
http://www.youtube.com/watch?v=9RQjvR8-geoGaz sensörüne ait analog çýkýþýn test edilmesi:
Sensöre ait Vcc ve GND uçlarýna dc 5Volt uygulanýr.
DA çýkýþý ile GND uçlarý arasýna avometre baðlanýr.
Ortamda gaz yokken yeþil ledin sönük olduðu ve avometreden 0 Volt okunduðu gözlenir.
Ortamda gaz varken yeþil ledin yandýðý ve avometreden 5 Volt okunduðu,ortamdaki gaz azaldýkça okunan deðerin sýfýra doðru düþtüðü gözlenir.

Bu bilgilendirmelerden sonra konuyu hazmederek öðrenme bakýmýndan devremizin tasarým ve yapým aþamalarýný sýrayla açýklayalým:

Þimdi gaz sensörümüz gaz algýlayýp, analog çýkýþý aktif olduðunda arduinomuzun d0 pinindeki fan ve sirenin 1 dakika süre ile çalýþmasýný isteyelim. Bu iþ için arduino programýmýz ve devre þemamýz aþaðýdaki gibi olacaktýr. Bu aþamayý geçtikten sonra devremizin diðer özelliklerini tasarlayýp uygulayacaðýz.

Arduino kodlarýmýz:
// TASARIM: LEYLA KOLOT TRABZON MESLEKI VE TEKNIK ANADOLU LISESI 2015 KASIM
int gaz_sensoru=A5;   // A5 GÝRÝÞÝNE GAZ SENSÖRÜ ÝSMÝ VERÝLDÝ. BU GÝRÝÞE GAZ SENSÖRÜNÜN ÇIKIÞI BAÐLANACAK
int fan_rolesi=0;     // D0 ÇIKIÞINA FAN RÖLESÝ ADI VERÝLDÝ. BU ÇIKIÞA FAN VE SÝRENÝ KONTROL EDEN RÖLE BAÐLANACAK.
void setup() 
{
  pinMode(gaz_sensoru, INPUT);        // A5 PÝNÝ GÝRÝÞ YAPILDI
  pinMode(fan_rolesi, OUTPUT);        // D0 PÝNÝ ÇIKIÞ YAPILDI
}
void loop() 
{
// GAZ ALGILANDI ÝSE ÞUNLARI YAP BAÞLADI
if (digitalRead(gaz_sensoru) == HIGH) // GAZ SENSÖRÜNDEKÝ VOLTAJ SEVÝYESÝ LOJÝK 1 ÝSE
    {
      digitalWrite(0, HIGH);   // FAN VE SÝREN ÇALIÞTIRILDI
      delay(60000);   // 1 DAKÝKA BEKLE
      digitalWrite(0, LOW);   // FAN VE SÝREN DURDURULDU
      delay(3000);  // 3 SANÝYE BEKLE
    }
}


Devre þemamýz:
(http://temrinlerim.org/images/gaztel1.PNG)

Bu þemaya ait hex kodu arduino_fan_ve_led.cpp ismiyle konu ekinde mevcuttur.

Buraya kadar anlatýlanlara ait çalýþma videosu ve resim aþaðýda mevcuttur. Elimde siren olmadýðý için deneme devresinde siren yerine bir adet led kullandým.
http://www.youtube.com/watch?v=0nTQj7y9pls

(http://temrinlerim.org/images/gaztel2.png)

Þimdi sisteme pencereyi açmak için gerekli servo motorumuzu entegre edelim.
(http://temrinlerim.org/images/gaztel4.jpg)Kullanacaðýmýz servo teknik özellikleri:
Marka: PowerHD 1501HG
Çalýþma gerilimi: 4,8 - 6 Volt DC
Çalýþma akýmý (yüksüz): 4,8 Volt altýnda 400 mA,6 Volt altýnda 500 mA
Çalýþma akýmý (yükte): 4,8 Volt altýnda 2,3A, 6 Volt altýnda 2,5A
Tork: 4,8 Volt altýnda 15,5kg, 6 Volt altýnda 17 kg
Çalýþma tepkime süresi: 4,8 Volt altýnda 0.16 saniye/60 derece, 6 Volt altýnda 0.14 saniye/60 derece
Kýrmýzý ve kahverengi kablolar besleme uçlarýdýr. (kýrmýzý pozitif, kahverengi negatif)
Turuncu kablo veri kablosudur.


(http://temrinlerim.org/images/gaztel3.PNG)
Servo entegre edilmiþ devre þemasý

http://www.youtube.com/watch?v=_6gGuoGHVE4
Elimde fan motoru olmadýðýndan video için temsili bir motor kullandým.
Video boyutunun küçük olmasý amacýyla da alarm süresi demo devrede 10 sn ile sýnýrlandýrýldý.
(http://temrinlerim.org/images/gaztel5.jpg)

Servo entegre edilmiþarduino kodlarý:
// TASARIM: LEYLA KOLOT TRABZON MESLEKI VE TEKNIK ANADOLU LISESI 2015 KASIM
int gaz_sensoru=A5;   // A5 GÝRÝÞÝNE GAZ SENSÖRÜ ÝSMÝ VERÝLDÝ. BU GÝRÝÞE GAZ SENSÖRÜNÜN ÇIKIÞI BAÐLANACAK
int fan_rolesi=0;     // D0 ÇIKIÞINA FAN RÖLESÝ ADI VERÝLDÝ. BU ÇIKIÞA FAN VE SÝRENÝ KONTROL EDEN RÖLE BAÐLANACAK.
#include <Servo.h>
Servo pencere_motoru; // SERVOYA PENCERE MOTORU ADI VERÝLDÝ
void setup() 
{
  pinMode(gaz_sensoru, INPUT);        // A5 PÝNÝ GÝRÝÞ YAPILDI
  pinMode(fan_rolesi, OUTPUT);        // D0 PÝNÝ ÇIKIÞ YAPILDI
  pencere_motoru.attach(1);         // PENCERE MOTORUNU DÝJÝTAL 1. PÝN KONTROL EDECEK
}
void loop() 
{
  pencere_motoru.write(0);  // PENCERE KAPATILDI
// GAZ ALGILANDI ÝSE ÞUNLARI YAP BAÞLADI
if (digitalRead(gaz_sensoru) == HIGH) // GAZ SENSÖRÜNDEKÝ VOLTAJ SEVÝYESÝ LOJÝK 1 ÝSE
    {
      digitalWrite(0, HIGH);   // FAN VE SÝREN ÇALIÞTIRILDI
      pencere_motoru.write(180);  // PENCERE AÇILDI
      delay(60000);   // 1 DAKÝKA BEKLE
      digitalWrite(0, LOW);   // FAN VE SÝREN DURDURULDU
      pencere_motoru.write(0);  // PENCERE KAPATILDI
      delay(3000);  // 3 SANÝYE BEKLE
    }
}


Þimdi de alarm devreye girdiðinde istediðimiz bir telefon numarasýný arduinomuza çevirtip bildirimde bulunacaðýz.
Kadranlý ya da tuþlu DP (Dial Pulsing) telefonlar eski tip telefonlar olup yavaþ yavaþ terk edilmektedir. Ancak bu yöntemle arduino ile numara gönderme iþi kolay olduðundan bu prensipten yararlanarak arduinoyu telefon olarak kullanacaðýz. Ayrýca bir telefona gerek yok.

Tasarýma geçmeden önce telefon makinesi ve santral arasýndaki iletiþimden bahsedelim ki konu anlaþýlabilir olsun:
Açma kapama (on hook ve off hook)

Telefon makinesi kapalý konumda iken, çatal altý mandalý devreyi açýk tutar. Zil devresi üzerinde bulunan kapasitör ise telefon hattýndan doðru akým akmasýný engeller. Ahize kaldýrýldýðýnda çatal altý mandalý yukarý doðru kalkar. Bu konumda telefon hatta karþý bir empedans gösterir (ahize kaldýrýlmadýðý vakit, bu empedans çok yüksektir). Bu anda telefon makinesi ve santraldeki röle sargýsý üzerinden bir akým akmaya baþlar. Bu akýmý
oluþturan, santral ofisindeki bataryadýr. Santral, herhangi bir hattan akým çekildiðini tespit edince o abone çevir sesi jeneratörüne baðlanýr. Bu aþamada abone, numara tuþlayabilir. Herhangi bir rakam algýlandýðý zaman çevir sesi kesilir. Ýki türlü numara (adres) bilgisi gönderilebilir.

Numara gönderme
Hat devresi kýsa aralýklarla açýlýp kapatýlarak numara bilgisi aktarýlýr. 4 rakamýný göndermek için hat 4 defa, 2 rakamý için 2 defa, 0 içinse 10 defa açýlýp kapanýr. Her açma kapama toplam 100ms sürer. 2 numara gönderme arasýnda 1/2 saniye bekleme yapýlýr.

Telefon çevirme fonksiyonu da eklenmiþ devre þemamýz ve arduino kodlarýmýz:
(http://temrinlerim.org/images/gaztel6.PNG)

Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.
Ses kayýt modülünün kullanýmý:
Kayýt modülüne besleme gerilimi uygulandýktan sonra REC butonu basýlýr ve telefon açýldýðýnda açýldýðýnda dinletilmek istenen ses kayýt edilir. Modül maksimum 10 saniyelik bir ses kaydýný alabilmektedir. REC butonu býrakýldýðýnda kayýt iþlemi tamamlanmýþ olur. Ses kaydýnýndevamlý dinlenebilmesi için kayýt modülü üzerindeki kýsa devre elemaný aþaðýdaki resimde görüldüðü þekilde P-E konumunda olmalýdýr.

(http://temrinlerim.org/images/arduino103.jpg)

Þimdi de ses kayýt modülünün de eklenmiþ olduðu devre þemasýný ve arduino kodlarýný oluþturalým:


(http://temrinlerim.org/images/gaztel1912.bmp)

(http://temrinlerim.org/images/aresbaskigaz.PNG)

Devrenin arduinonun üzerine geçme (shild) olarak eklenmesini isteyenler aþaðýdaki baský devreyi kullanabilir.


(http://temrinlerim.org/images/gazares2.PNG)

Arduino kodlarý:
Kod:
Kodlari sadece uyeler gorebilir. Lutfen Uye Olun ya da Giris Yapin.