A05|02 Sensor für natürliche Gase MQ-5
MQ-5 Gas Sensor


Sensorwerte / Gassensoren

https://osoyoo.com/2018/11/15/arduino-lesson-mq-5-gas-sensor/

https://seeeddoc.github.io/Grove-Gas_Sensor-MQ5/

Der analoge MQ5 Alkohol-Sensor ist einer der am häufigsten verwendeten Sensoren in der MQ-Sensorreihe. Dieser analoge Gassensor eignet sich zum Nachweis von natürlichen Gase in der Luft und ist nützlich für die Erkennung von Gaslecks z.B. im Haushalt oder in der Industrie. Er wird für die Detektierung von Flüssiggasen wie Propan oder Butan (LPG), Kohlenmonoxid (CO), Methan (CH4), Wasserstoff (H2) und Alkohol eingesetzt.

Aufgrund seiner hohen Empfindlichkeit und schnellen Reaktionszeit können Messungen schnell durchgeführt werden. Die Empfindlichkeit des MQ5 für Propan, Propan und Methan ist recht hoch. Auf Alkohol und Kohlenmonoxid reagiert der Sensor fast garnicht. Für diese beiden Gase existieren entsprechende Sensoren.

 

Spezifikationen
- Signalart: digital
- Spannung: 3,3V – 5V
- Pinabstand: 2,54mm
- Heizspannung (VH):
AC oder DC 5±0,5V
- Lastwiderstand (RL): 2KΩ
- Widerstand in Reinigungsluft
(Ra): ≤4000KΩ
- Empfindlichkeit (S=Ra/Rdg):
≥4(in 1000ppmC4H10)
- Ansprechzeit (tres): ≤ 10S
- Erholungszeit (TREC): ≤ 30S
- Detektionsbereich:
200-10000ppm

Das Modul verfügt über zwei Ausgänge - einen analogen Ausgang (AO=Analog Output) und einen digitalen Ausgang (DO=Digital Output). Der analoge Ausgang kann zur Erkennung von Gaslecks und zur Messung des Gasvolumens durch entsprechende Berechnung des Sensorausgangs im Programm in bestimmten Einheiten (z. B. ppm) verwendet werden.

Der digitale Ausgang kann zur Erkennung von Gaslecks und damit zur Auslösung eines Alarmsystems verwendet werden. Der Digitalausgang bietet nur zwei mögliche Ausgänge: HIGH oder LOW. Aus disem Grund eignet er sich eher zur Erkennung von Gaslecks als zur Messung des Gasvolumens.

Bei dem MQ5 handelt es sich um einen Metall-Oxid-Halbleiter-Sensor. Metalloxid-Sensoren werden auch als Chemiresistoren bezeichnet, da die Messung auf der Änderung des Widerstands des Sensormaterials bei Einwirkung von Gasen beruht.

Zusätzlich verfügt die Platine über eine Betriebs-LED: Sobald es mit Strom versorgt wird leuchtet eine grüne LED auf. Der MQ3-Alkoholsensor arbeitet mit 5V und verbraucht etwa 800mW. Der Sensor misst eine Gaskonzentration von 200ppm bis 10.000ppm. Was bedeutet ppm? Bei der Messung von Gasen wird der Begriff Konzentration verwendet, um die Menge des Gases im Verhältnis zum Volumen in der Luft zu beschreiben. Die beiden gebräuchlichsten Maßeinheiten sind Teile pro Million und die prozentuale Konzentration. Parts-per-million (abgekürzt ppm) ist das Verhältnis eines Gases zu einem anderen. Ein Beispiel: 500ppm LPG bedeutet, dass, wenn man eine Million Gasmoleküle zählen könnte, 500 davon aus LPG und 999500 Moleküle aus anderen Gasen bestehen würden.

 

Interner Aufbau des MQ5-Gassensors

Der MQ5 ist ein heizungsbetriebener Sensor, der von zwei Lagen feinen Edelstahlnetzes eingeschlossen ist. Es handelt sich um ein Anti-Explosionsnetz und stellt sicher, dass das Heizelement im Inneren des Sensors keine Explosion verursacht. Schließlich handelt es sich bei LPG um ein brennbares Gas. Zu dem bietet es Schutz und filtert störende Schwebeteilchen heraus. So gelangen nur gasförmige Elemente in die Kammer.

Die untere Darstellung zeigt das Innenleben des Sensors, wenn das äußere Netz entfernt ist. Die sternförmige Struktur besteht aus dem Sensorelement und sechs Anschlussbeinen, die über das Bakelite-Element (thermisch resistenter Kunststoff) hinausragen. Von den sechs Anschlüssen sind zwei (H) für die Beheizung des Sensorelements zuständig und über eine Nickel-Chrom-Spule verbunden. Die übrigen vier Leitungen (A und B), die für die Ausgangssignale zuständig sind, werden über Platin-Drähte angeschlossen. Diese Drähte sind mit dem Körper des Sensorelements verbunden und übertragen kleine Änderungen des Stroms, der durch das Sensorelement fließt.

Im inneren des Bakelit-Elements ist das röhrenförmige Sensorelement platziert, welches aus einer Aluminiumoxid-Keramik (AL2O3) besteht und eine Beschichtung aus Zinndioxid (SnO2) hat. Das Zinndioxid ist das wichtigste Material, da es gegenüber natürlichen Gasen empfindlich ist. Das Keramiksubstrat stellt es die Heizeffizienz sicher, so dass der Sensorbereich kontinuierlich auf die Arbeitstemperatur erhitzt wird.

Das im MQ-5 verwendete gasempfindliche Zinndioxid weist bei normalen Luftverhältnissen eine geringe elektrische Leitfähigkeit auf. Sobald sich in der Umgebungsluft brennbares Gas befindet, steigt die elektrische Leitfähigkeit des Sensors mit dem Anstieg der Konzentration des Gases. Wird bei normalen Luftverhältnissen das Zinndioxid bei hoher Temperatur erhitzt, bindet es an seiner Oberfläche Sauerstoff. Die Luft heftet sich an die Oberfläche des Zinndioxids und zieht dabei die Elektronen im Zinndioxid-Leiter an. Dadurch erhöht sich der elektrische Widerstand und der Elektronenfluss wird gebremst. Die Änderung der elektrischen Leitfähigkeit kann mit Hilfe einer einfachen Schaltung in ein Ausgangssignal umgewandelt werden, das der Gaskonzentration entspricht.

Das Gegenteil ist der Fall, wenn natürliches Gas die Sauerstoffmoleküle von der Zinndioxid-Oberfläche verdrängen. In diesem Fall werden Elektronen an das Zinndioxid abgegeben und der Strom kann frei durch den Sensor fließen.

Die vom Sensor gelieferte analoge Ausgangsspannung (AO=Analog Output) variiert proportional zur Gaszentration. Je höher die Gaskonzentration in der Luft ist, desto höher ist die Ausgangsspannung. Eine niedrigere Konzentration ergibt eine niedrigere Ausgangsspannung.

Dasselbe Analogsignal wird mit Hilfe eines LM393-Hochpräzisionskomparator digitalisiert und am Digitalausgang (DO=Digital Output) zur Verfügung gestellt. Dadurch haben wir die Möglichkeit dieses Signal mit dem Arduino einzulesen. Bei Gaskonzentrationen, die den Schwellenwert überschreiten, gibt das Modul LOW aus, andernfalls HIGH.

Der MQ5-Sensor kann auch ohne Programmierung (ohne Arduino-Board) betrieben werden. Mit Hilfe des integrierten Potentiometers kann der Schwellwert für die Gaskonzentration verschoben werden. Dreh den Knopf im Uhrzeigersinn, um die Empfindlichkeit zu erhöhen, und gegen den Uhrzeigersinn, um sie zu verringern. Sobald der Schwellwert überschritten wird leuchtet die rote LED auf dem Board. Für diese Funktion ist es ausreichend den VCC-Pin (positiv) und den GND-Pin (negativ) mit einer 5V-Versorgungsspannung zu verbinden.

 

Der Aufbau

Wie du bereits weißt, bietet das Modul sowohl einen analogen als auch einen digitalen Ausgang. Für unser erstes Experiment werden wir die Alkoholkonzentration messen, indem wir den analogen Ausgang ablesen.

 
 

Der Analog-Sketch

Je nach Einsatz des Sensors müssen wir die Schwellenwerte anpassen. Anstatt eines Alkohol-Atemtests richten wir den Aufbau daraus aus Alkoholdämpfe in der Umgebung zu messen. Nehmen wir an, dass wir eine Alarmanlage für einen Raum entwickeln, in dem große Mengen Brennspiritus oder Händedesinfektionmittel (Ethanol) gelagert werden. Du könntest z.B. einen Alarm auslösen lassen, wenn bestimmte Konzentrationen in der Luft erreicht werden. Mit einem Temperatur-Sensor könntest du das Ergebnis verbessern und z.B. den Flammpunkt von Ethanol bestimmen. Der Flammpunkt eines Stoffes ist die niedrigste Temperatur, bei der sich über einem Stoff ein zündfähiges Dampf-Luft-Gemisch bilden kann.

Für den Test kannst du ein paar Tropfen Spiritus oder Händedesinfektionmittel in eine kleine Tasse geben - gerade genug damit Alkoholdampf entsteht. Halte den Sensor mit dem Metallnetz in den Behälter und beobachte die Werte auf dem Seriellen Monitor. Bestimme die Schwellenwerte selber für deine Anwendung.

/* Change these values based on your calibration values */
#define Sober 120   // Define max value that we consider sober
#define Drunk 400   // Define min value that we consider drunk

#define MQ3pin 0

float sensorValue;  //variable to store sensor value

void setup() {
	Serial.begin(9600); // sets the serial port to 9600
	Serial.println("MQ3 warming up!");
	delay(20000); // allow the MQ3 to warm up
}

void loop() {
	sensorValue = analogRead(MQ3pin); // read analog input pin 0

	Serial.print("Sensor Value: ");
	Serial.print(sensorValue);
	
	// Determine the status
	if (sensorValue < Sober) {
		Serial.println("  |  Status: Stone Cold Sober");
	} else if (sensorValue >= Sober && sensorValue < Drunk) {
		Serial.println("  |  Status: Drinking but within legal limits");
	} else {
		Serial.println("  |  Status: DRUNK");
	}
	
	delay(2000); // wait 2s for next reading
}

Wie bereits erwähnt handelt es sich bei dem MQ3 um einen beheizten Sensor. Für eine genaue Messung muss der Sensor vollständig aufgewärmt werden. Im oberen Beispielcode haben wir eine Aufwärmzeit von 20 Sekunden veranschlagt, aber für maximale Genauigkeit sollte das Erreichen der optimalen Betriebstemperatur 24 bis 48 Stunden betragen.

 

Der Digital-Sketch

Im zweiten Aufbau werden wir Alkohol-Konzentration mit Hilfe eines digitalen Pins detektieren. Hierzu müssen wir die Schaltung etwas umbauen. Entferne die Verbindung zum analogen Pin (AO)und verbinde stattdessen den digital Pin (DO) des Moduls mit dem digitalen Pin 8 des Arduinos. Schließe deine Schaltung wie unten abgebildet an:

 

Die Kalibrierung

Mit dem eingebauten Potentiometer auf dem Modul wird der digitale Ausgang DO kalibriert. Durch Drehen des Potentiometers kannst du einen Schwellenwert einstellen. Wenn die Alkohol-Konzentration den Schwellenwert überschreitet, leuchtet die Status-LED rot und das Modul gibt HIGH aus.

Um den Sensor zu kalibrieren, halte den Sensor mit dem Metalgitter in die Tasse mit dem Alkohol und drehe den Potentiometer im Uhrzeigersinn solange bis die rote Status-LED aufleuchtet. Dann stellst du den Potentiometer gegen den Uhrzeigersinn, bis die LED wieder erlischt. Das war's. Ihr Sensor ist jetzt kalibriert und einsatzbereit. Sobald die Schaltung aufgebaut ist, lade die folgende Skizze auf dein Arduino.

#define MQ3pin 8

int sensorValue;  //variable to store sensor value

void setup() {
	Serial.begin(9600); // sets the serial port to 9600
	Serial.println("MQ3 warming up!");
	delay(20000); // allow the MQ3 to warm up
}

void loop() {
	sensorValue = digitalRead(MQ3pin); // read digital output pin
	Serial.print("Digital Output: ");
	Serial.print(sensorValue);
	
	// Determine the status
	if (sensorValue) {
		Serial.println("  |  Alcohol: -");
	} else {
		Serial.println("  |  Alcohol: Detected!");
	}
	
	delay(2000); // wait 2s for next reading
}

Auf dem seriellen Monitor sollten Sie die folgende Ausgabe zu sehen sein.

Eines solltest du zum Schluss unbedigt beachten: Der MQ5 spiegelt nur den ungefähren Trend der Gaskonzentration in einem zulässigen Fehlerbereich wider. Genaue Gaskonzentration nicht nicht möglich. Der Nachweis bestimmter Komponenten in der Luft erfordert in der Regel ein präziseres und teureres Instrument als es dieser Sensor leisten kann. Wenn dein Projekt darauf abzielt, Gaskonzentrationen auf einem sehr präzisen Niveau zu messen, dann ist dieser Gassensor nicht zu empfehlen.

 
 

Falls du die hier beschriebenen Elektronik-Module nicht hast kannst du sie in meiner Einkaufsliste finden. Warum ich selber hauptsächlich mit Modulen der Marke Keyestudio arbeite erläutere ich unter diesem Blog-Artikel.

In dieser Übersicht äußere ich Empfehlungen aller Art.

Hier kommst du wieder zur Übersicht aller Module.