Karbonmonoksit (CO); bir karbon atomu ve bir oksijen atomundan oluşur. Renksiz, kokusuz, tatsız bir gazdır. Kanımızda bulunan hemoglobin, havadaki oksijeni akciğerlere ve dokulara taşır. Karbonmonoksitin hemoglobine bağlanma yeteneği oksijenden yaklaşık 300 kat fazladır. Eğer havada karbonmonoksit varsa, hemoglobin oksijen yerine karbonmonoksit ile bağlanır ve bu da organlara yetersiz oksijen gitmesine, sonuç olarak karbonmonoksit zehirlenmesi denen ölümcül duruma neden olur.
MQ-7 karbonmonoksit sensörü, 10 ile 10,000 ppm aralığındaki CO gazını ölçer. ppm; parts per million yani bir milyon parçacıktaki parçacık sayısını ifade eder. Örneğin CO sensörü 150 ppm gösteriyorsa havadaki CO miktarı 150/1,000,000 yoğunluktadır.
Arduino uygulamaları için genellikle MQ-7 sensör modülü kullanılmaktadır. Bu modül %3 hassasiyetle çalışır, çalışma aralığı -10 ile 50°C’ dir ve maksimum 150mA akım çekmektedir. MQ-7 CO sensöründe; AO(analog çıkış), DO(dijital çıkış), GND ve +5V olmak üzere 4 pin bulunur. Ölçülen CO miktarı arttıkça AO çıkışından ölçülen gerilim miktarı artmakta, CO miktarı azaldıkça azalmaktadır. Temiz varsayılan hava şartlarında analog çıkıştan yaklaşık 1,5V çıkış ölçülür. Bir eşik değerinden düşük CO miktarı ölçüldüğü sürece DO çıkışından HIGH (1) okunur. Eşik değeri aşıldığında DO çıkışından LOW (0) sinyali okunur. Eşik değeri, modül üzerindeki potansiyometre çevrilerek değiştirilebilir.
Sensör datasheet’ ini indirmek için tıklayınız.
Malzemeler
- 1 adet Arduino
- 1 adet MQ-7 CO sensör modülü
Bağlantı şeması
Kaynak kod
const int AOUTpin=A3; // Analog çıkış pini const int DOUTpin=7; // Dijital çıkış pini int esik; // Eşik değeri int ppm; // Ölçülen CO ppm değeri void setup() { Serial.begin(9600); // Seri port başlat pinMode(DOUTpin, INPUT); } void loop() { ppm= analogRead(AOUTpin); // ppm değerini Analog pinden oku esik= digitalRead(DOUTpin); // eşik değerinin aşılıp aşılmadığını oku Serial.print(" CO miktarı: "); Serial.print(ppm); //CO miktarını yaz Serial.print("ppm."); // Eşik değerinin aşılıp aşılmadığını kontrol et ve seri porta yaz if (esik == 1) { Serial.println("Eşik değerinin altında"); } else { Serial.println("Eşik değerinin üzerinde"); } delay(500); // Yarım saniye bekle }
Kaynak kod çalıştırıldığında seri port ekranında aşağıdaki gibi bir sonuç alınacaktır.