Mit dem Sensor MQ-3* kannst du messen, wie viel Ethanol sich in der Luft – z.B. in der Atemluft – befindet. Allerdings: du kannst so nicht feststellen, wie viele “Promille” ein Proband intus hat und ob er noch fahrtüchtig ist. Ebenso erhältst du keine absoluten Werte, sondern immer nur einen relativen Wert in Bezug auf die “Frischluft”, die du vorab kalibrieren musst.
Das alles klingt komplizierter als es ist! Fangen wir mit einem einfachen Test an.
Verbinde zunächst den Sensor MQ-3 wie folgt mit deinem Arduino:
MQ-3 | Arduino |
VCC | 5V |
GND | GND |
DO | Digitalpin 2 |
AO | Analogpin 0 |
Den Analogpin des MQ-3 auslesen
Um die Analogdaten des Sensors auszulesen und im Seriellen Monitor anzuzeigen, benötigst du nur sehr wenig Code. Kopiere dir den folgenden Sketch und lade ihn auf deinen Arduino. Achte darauf, dass die Baudrate des Sketchs und deines Seriellen Monitors übereinstimmen.
int analogValue = 0;
void setup() {
Serial.begin(115200);
pinMode(analogValue, INPUT);
}
void loop() {
Serial.println(analogRead(analogValue));
delay(200);
}
Wenn du jetzt deinen Seriellen Monitor öffnest, wirst du einen Haufen stetig fallender Zahlen sehen. Wie eingangs erwähnt, kannst du anhand dieser Zahlen noch keine Aussage über den Ethanolgehalt in der Luft treffen.
Stattdessen musst den Sensor einige Minuten in “frischer” Luft stehen lassen und warten, bis sich die Zahlen auf einen Wert einpendeln. Dieser Wert zeigt dir dann an, dass der Sensor gerade kein Ethanol misst. Ist das jedoch der Fall, springt der Wert hoch – der Abstand zum Referenzwert ermöglicht dir dann eine vage Aussage über die Menge an Alkohol in der Luft.
Bei unserem Test hat sich der “Frischluft-Wert” des MQ-3 nach einigen Minuten auf circa 100 eingependelt. Dieser Wert kann jedoch bei dir anders sein.
Wenn du jetzt z.B. eine offene Flasche Gin an den Sensor hältst, wirst du sehen, wie der Wert in deinem Seriellen Monitor steigt. Bei uns ging er hoch bis auf knapp 300.
Über den Analogpin des MQ-3 erhältst du also den relativen Wert des Alkoholgehalts in der Umgebungsluft. In deinem Sketch kannst du einen Schwellenwert festlegen, bei dessen Überschreiten etwas passieren soll – z.B. eine LED aufleuchtet.
Du kannst diesen Schwellenwert jedoch auch direkt am Sensor einstellen und seine Überschreitung vom Digitalpin des MQ-3 auslesen.
So verwendest du den Digitalpin des MQ-3
Für einen ersten Test reicht wieder ein ganz simpler Sketch aus. Lade den folgenden Code auf deinen Arduino:
int digitalValue = 2;
void setup() {
Serial.begin(115200);
pinMode(digitalValue, INPUT);
}
void loop() {
Serial.println(digitalRead(digitalValue));
delay(200);
}
In deinem Seriellen Monitor solltest du statt den Analogwerten vom ersten Test jetzt entweder eine 0 oder eine 1 sehen. Auch beim Verwenden des Digitalpins musst du den Sensor zunächst ein paar Minuten in Betrieb nehmen und ruhen lassen, bis er “weiß”, was Frischluft bedeutet.
Wenn du das getan hast, widmest du dich der Rückseite des MQ-3: Hier findest du ein Potentiometer, das du mit einem Schraubendreher einstellen kannst. Drehe die Schraube so weit, bis die Zahl in deinem Seriellen Monitor gerade auf die 1 springt und so bleibt.
Wiederhole jetzt den Test mit einer Flasche Alkohol und du wirst sehen, dass die Anzeige auf 0 springt.
Wie geht es weiter?
Wie zu Beginn gesagt, eignet sich der Sensor MQ-3 auf keinen Fall, um einzuschätzen, wie viel Alkohol jemand getrunken hat und welche Konsequenzen daraus zu ziehen sind.
Aber für ein paar Spielereien eignet er sich sehr wohl. Du könntest den Analogpin auslesen und dir eine Art Ampelsystem bauen, das je nach Abstand zum Frischluftwert verschieden viele LEDs auf einem NeoPixel-Ring aufleuchten lässt.