Arduino ile MQ-2 Gaz Sensörü Kullanımı

Merhaba arkadaşlar!

Bu yazıda MQ-2 gaz sensörünü kullanarak ortamda duman veya yanıcı gazların olup olmadığını ölçmeyi göstereceğiz. Geliştirdiğimiz örnek uygulama ile ortamda bulunan duman veya zararlı gazlar belirli bir seviyeye ulaştığında kırmızı led yakmayı sağlayacağız. Eğer zararlı gazlar tespit edilmez ise bu durumda yeşil ledimiz yanacaktır. Uygulamaya geçmeden önce bu sensör hakkında bazı bilgiler vermek istiyorum.

MQ-2 gaz sensörü, MQ sensör serisinde yaygın olarak kullanılan gaz sensörlerinden bir tanesidir. MQ2 Gaz sensörü 5V DC ile çalışır ve 800mW civarında bir değere sahiptir dumana ve aşağıda listelenen zararlı gazlara karşı duyarlıdır:

  • Hidrojen
  • LPG
  • Metan
  • Propan
  • Bütan
  • Alkol
  • Karbonmonoksit

Sensörün direnci gazın türüne bağlı olarak değişmektedir. Bu sensörün görüntüsü aşağıdaki gibidir:

MQ-2 Gaz Sensörü

Atmosferde mevcut olan gaz seviyesine göre sensör bir voltaj üretir. Üretilen bu voltajı alarak ortamda bulunan zararlı gazların yoğunluğunu öğrenebiliriz. Ortamda gaz yoğunluğu artar ise voltaj yükselir, aksi durumda voltaj düşer. Yani ikisi arasında doğru orantı bulunmaktadır.

Şimdi bu sensörün pinlerini ve ne işe yaradıklarını ele alalım:

MQ-2 Gaz Sensörü Pinleri

Resimde görüleceği üzere bu sensör 4 adet pin ile gelmektedir. Şimdi bu pinleri inceleyelim.

aA0/AOUT : Arduino’da bulunan analog pinlerden herhangi birine bağlanır. Analog çıkış üretir.

aD0/DOUT : Arduino’da bulunan dijital pinlerden herhangi birine bağlanır. Dijital çıkış üretir.

aVCC : +5V

aGND : Ground yani topraklama

Sensörden gelen veri iki şekilde alınabilir: analog ve dijital. Bu konuda tercih size kalmıştır. Biz örnek uygulamada analog çıkış ile ortamdaki zararlı gazların yoğunluğunu ölçmeyi sağlayacağız.

Bu bilgileri verdikten sonra şimdi MQ-2 sensörünü kullanarak ortamdaki gaz yoğunluğunu ölçmeyi sağlayabiliriz. Uygulama için ihtiyacımız olan devre elemanları aşağıdaki gibidir:

  • MQ-2 Sensörü x 1
  • 220 ohm x 2
  • Red Led x 1
  • Green Led x 1
  • Yeterince erkek-erkek bağlantı kablosu

Elemanları temin etikten sonra devremizi aşağıdaki gibi oluşturalım.

MQ-2 ve Arduino Devre Şeması

Yukarıda görülen devrede bağlantı işlemi aşağıdaki gibi yapılmıştır.

  • Sensörün VCC pini, 5V çıkışına bağlandı.
  • Sensörün GND pini, GND pinine bağlandı.
  • Sensörün A0 pini, Arduino’daki analog A5 pinine bağlandı.
  • Red yani kırmızı ledimizin (+) ucu 5 nolu pine bağlandı.
  • Green yani yeşil ledimizin (+) ucu 6nolu pine bağlandı.

Bu bilgilerden sonra devremiz aşağıdaki gibi olur.

MQ-2 ve Arduino Devresi. Başlangıç Durumu

Yukarıdaki resimde kodu yükleyip devreyi çalıştırdıktan hemen sonra projemizin nasıl çalıştığını göstermektedir. Atmosferde zararlı gazlar yoksa başlangıçta yeşil led yanık, kırmızı led ise sönük olacaktır. Eğer aşağıdaki gibi bir çakmak yardımıyla ortama zararlı gaz salınımı yapılırsa yeşil led sönük, kırmızı led ise yanık olacaktır.

MQ-2 ve Arduino Devresi. Zararlı gazlar algılandığı zaman

Şimdi de projemizin kodlarını sizlere gösterelim. Devremizin kodu aşağıdaki gibidir.



int red = 5;
int green = 6;
int gasA5 = A5;

int thres = 300;

void setup() {
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(gasA5, INPUT);
  Serial.begin(9600);
}

void loop() {
  int value = analogRead(gasA5);

  Serial.print("Pin A5: ");
  Serial.println(value);
  
  if (value > thres)
  {
    digitalWrite(red, HIGH);
    digitalWrite(green, LOW);
  }
  else
  {
    digitalWrite(red, LOW);
    digitalWrite(green, HIGH);
  }
  delay(1000);
}

Kodların açıklaması aşağıdaki gibidir:


int red = 5;
int green = 6;
int gasA5 = A5;

Daha iyi bir kod deneyimi için uygulamanın hayat döngüsü boyunca sürekli olarak kullanacağımız pinleri değişkenlere atadık. Kırmızı led 5, yeşil led 6 ve sensörün A0 pini A5 pinlerine bağlanmıştır.


int thres = 300;

thres değişkenine varsayılan olarak 300 değerini verdik. Bu değer ortamdaki kritik gaz seviyesinin eşik değeridir. Yani bu değeri aşan bir gaz yoğunluğunda kırmızı ledin yanması aksi durumda yeşil ledin yanması sağlanacaktır. İsterseniz farklı bir değer verebilirsiniz.


pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(gasA5, INPUT);
Serial.begin(9600);

pinMode metodu ile pinlerin giriş veya çıkış olması sağlanır. 5 ve 6 nolu pinler çıkış, A5 pini ise giriş olarak set edilir. Serial.begin() ile saniyede 9600 bit gönderilmesi sağlanır. Seri iletişim için veri hızını belirlemeyi sağlar.


int value = analogRead(gasA5);

analogRead() komutu A5 analog giriş pininden analog veri okumayı sağlar. MQ-2 gaz sensöründen okunan analog veri bu şekilde alınır.


Serial.print("Pin A5: ");
Serial.println(value);


Ölçülen gaz yoğunluğu serial port ekranına yazılır ve 1 saniye kadar ölçme işleminin beklemesi sağlanır.

 
if (value > thres)
{
    digitalWrite(red, HIGH);
    digitalWrite(green, LOW);
}
else
{
    digitalWrite(red, LOW);
    digitalWrite(green, HIGH);
}
delay(1000);

Son olarak sensörden okunan değer eşik yani kritik değerin üzerinde ise kırmızı led yanık ve yeşil led sönük olarak ayarlanır. Aksi durumda kırmızı led sönük, yeşil led yanık olarak ayarlanır. Tüm bu işlemlerden sonra 1 saniye kadar bekleme yapılır.

Uygulamayı bu haliyle çalıştırıp yükledikten sonra seri port ekranında aşağıdaki sonuçları görmemiz gerekiyor

MQ-2 ve Serial Port iletişimi

Bu sensörü kullanarak evinizde, LPG’li aracınızda kaçak gaz olup olmadığını veya kapalı bir ortamda sigara içilip içilmediğini rahatlıkla tespit edebilirsiniz. Hatta bir sürücünün alkol alıp almadığını bu sensör ile kolaylıkla öğrenebilirsiniz.

**Bana en büyük desteğiniz yazılarıma yorum yapmanız ve paylaşmanızdır.