MQ Gaz Sensörü Kullanımı
Kısa cevap MQ gaz sensörü nasıl kullanılır?
MQ sensör modülü 5 V ile beslenir; AO analog çıkışı gaz yoğunluğuyla değişen bir gerilim, DO dijital çıkışı ise trimpotla ayarlanan eşik aşıldığında düşük seviye verir. Sensör kullanımdan önce birkaç dakika ısınmalı, ilk kullanımda 24 – 48 saat çalıştırılmalıdır. MQ sensörleri sertifikalı gaz dedektörlerinin yerini tutmaz.
MQ serisi sensörler, ısıtılan bir kalay dioksit (SnO₂) tabakanın direncinin ortamdaki gazlara göre değişmesi prensibiyle çalışır. Gaz kaçağı alarmı, hava kalitesi izleme ve eğitim projelerinde yaygındır. Bu rehberde MQ-2, MQ-5, MQ-6, MQ-7 ve MQ-135 modüllerinin hangi gazlara duyarlı olduğunu, bağlantılarını, ısınma süresini, analog ve dijital çıkışı, ppm hesabının mantığını ve bu sensörlerin sınırlarını anlatıyoruz.
Hangi sensör hangi gaz için?
| Sensör | Başlıca duyarlılık | Tipik kullanım |
|---|---|---|
| MQ-2 | LPG, propan, metan, hidrojen, duman | Genel yanıcı gaz ve duman algılama |
| MQ-5 | LPG, doğal gaz (metan), propan | Mutfak gaz kaçağı |
| MQ-6 | LPG, izobütan, propan | Tüp gaz kaçağı |
| MQ-7 | Karbonmonoksit (CO) | CO izleme (ısıtıcı döngüsü gerektirir) |
| MQ-135 | NH₃, NOx, alkol, benzen, CO₂ (dolaylı) | Hava kalitesi eğilimi |
Modül bağlantısı
Modüllerde 4 pin bulunur: VCC (5 V), GND, AO (analog çıkış) ve DO (dijital çıkış). AO, sensör direncine bağlı bir gerilim verir ve Arduino'nun analog girişine bağlanır. DO ise kart üzerindeki karşılaştırıcının çıkışıdır; eşik trimpotla ayarlanır ve gaz yoğunluğu eşiği aşınca düşük seviyeye iner. Isıtıcı yaklaşık 150 mA çektiği için modülü mikrodenetleyicinin 3,3 V pininden değil, 5 V kaynaktan besleyin.
const int AO_PIN = A0, DO_PIN = 7;
void setup() {
Serial.begin(9600);
pinMode(DO_PIN, INPUT);
}
void loop() {
int ham = analogRead(AO_PIN); // 0 – 1023
float v = ham * 5.0 / 1023.0;
bool alarm = digitalRead(DO_PIN) == LOW; // eşik aşıldı
Serial.print("AO: "); Serial.print(v, 2);
Serial.print(" V Alarm: "); Serial.println(alarm ? "VAR" : "yok");
delay(1000);
}ESP32 ile kullanırken AO çıkışı 5 V'a kadar çıkabileceği için gerilim bölücü ile 3,3 V'a indirin.
Isınma ve kalibrasyon
Yeni bir MQ sensörü ilk kullanımda en az 24 – 48 saat çalıştırılarak "yakılmalıdır" (burn-in); her açılışta da kararlı okuma için birkaç dakika ısınması beklenir. ppm hesabı için sensörün temiz havadaki direnci (R₀) ölçülür ve veri sayfasındaki Rs/R₀ – ppm eğrisi kullanılır: Rs = RL × (Vc − Vçıkış) / Vçıkış. Modüllerdeki yük direnci RL genellikle 1 kΩ veya 10 kΩ'dur. Eğriler logaritmiktir ve sıcaklık ile nemden etkilenir.
Sınırlar ve güvenlik uyarısı
- MQ sensörleri seçici değildir: MQ-2 hem LPG'ye hem alkole hem dumana tepki verir. "Ne kadar gaz" sorusuna yaklaşık bir cevap verir, "hangi gaz" sorusuna değil.
- Hobi modülleri sertifikalı gaz dedektörlerinin yerini tutmaz. Can güvenliği için EN 50194 / EN 50291 standartlarına uygun ticari dedektör kullanın.
- MQ-7 doğru CO ölçümü için ısıtıcıyı 5 V / 1,4 V arasında değiştiren bir döngü ister; modüllerin çoğu bunu yapmaz.
Bu yazıda kullanılan ürünler
Analog çıkıştan Rs ve oran hesabı
MQ modülünde sensör elemanının direnci (Rs) ile yük direnci (RL) bir gerilim bölücü oluşturur. Ölçülen Vout'tan: Rs = RL × (Vc − Vout) / Vout. RL = 10 kΩ, Vc = 5 V ve Vout = 1,2 V için Rs = 31,7 kΩ bulunur. Gaz yoğunluğu, Rs'nin temiz hava referansı R0'a oranından (Rs/R0) veri sayfasındaki eğriyle hesaplanır; R0 sensör temiz havada en az 24 – 48 saat ısıtıldıktan sonra ölçülür.
const float RL = 10000.0; // modül yük direnci (Ω)
float okuRs(int pin) {
float v = analogRead(pin) * 5.0 / 1023.0;
return RL * (5.0 - v) / v;
}
void setup() {
Serial.begin(9600);
delay(60000); // ilk ısınma (en az 1 dk; kalibrasyon için çok daha uzun)
}
void loop() {
Serial.println(okuRs(A0));
delay(1000);
}ADC çıktısı: Uno ve ESP32 farkı
| Modül AO çıkışı | Arduino Uno (10 bit, 5 V) okuması | ESP32 (12 bit, 3,3 V) okuması — 10 kΩ/20 kΩ bölücü ile |
|---|---|---|
| 1,0 V | 205 | 827 |
| 2,5 V | 512 | 2068 |
| 5,0 V | 1023 | 4136 |
ESP32 girişi 3,3 V'u aşmamalıdır; AO çıkışı 5 V'a çıkabilen modüllerde 10 kΩ + 20 kΩ gerilim bölücü kullanılır (orta nokta, 2/3 oranı).
Isıtıcı akımı ve güç
MQ serisi sensörlerde ısıtıcı elemanı sürekli güç çeker (tipik olarak 5 V'ta yaklaşık 130 – 180 mA, yani 0,6 – 0,9 W). 24 saat çalışan bir sensör bu nedenle günde yaklaşık 3,5 Ah çeker; pille çalışan uygulamalara uygun değildir. Düşük güçlü gaz ölçümü için elektrokimyasal veya MEMS sensörler tercih edilir.
Sık yapılan hatalar
- Isınmadan ölçüm almak: Sensör ilk açılışta yüksek, kararsız değer verir; en az birkaç dakika, kalibrasyon için 24 saat ısıtın.
- Tek sensörle farklı gazları ayırt etmeye çalışmak: MQ sensörleri çapraz duyarlıdır; sonucu yalnızca "gaz arttı/azaldı" göstergesi olarak yorumlayın.
- Güvenlik alarmı olarak kullanmak: Bu sensörler sertifikalı gaz dedektörünün yerini tutmaz; can güvenliği gerektiren yerlerde sertifikalı cihaz kullanın.
- ESP32'ye 5 V çıkışı doğrudan bağlamak: ADC girişleri 3,3 V ile sınırlıdır; gerilim bölücü kullanın.
Sıkça sorulan sorular
MQ sensörü neden ısınıyor?
İçinde algılama tabakasını yaklaşık 200 – 300 °C'de tutan bir ısıtıcı vardır. Sensörün sıcak olması normaldir; yanıcı malzemelere değmemesine dikkat edin.
DO çıkışı sürekli aktif, ne yapmalıyım?
Sensörün ısınmasını bekleyin, ardından temiz havada trimpotu, LED'in söndüğü noktanın biraz ötesine ayarlayın.
MQ-135 ile CO₂ ölçülebilir mi?
Yalnızca dolaylı bir tahmin yapılabilir. Gerçek CO₂ ölçümü için NDIR tipi sensörler (ör. MH-Z19, SCD30) gerekir.
MQ sensörünün R0 değeri neden her sensörde farklıdır?
Sensör elemanı üretimdeki toleranslar nedeniyle her parçada farklı temiz hava direncine sahiptir. Bu yüzden R0 her sensör için temiz havada ayrı ölçülür ve kalibrasyon bu değere göre yapılır.
Direnç, kondansatör ve diğer komponentler için ürünlerimize göz atın.
Gaz Sensörleri