Arduino UNO R4 - MQ3 Alkohol Sensor

Diese Anleitung zeigt Ihnen, wie Sie Arduino UNO R4 und MQ3 Alkohol Sensor verwenden, um Alkoholdämpfe und Ethanol in der Luft zu erkennen. Dieser Sensor wird häufig in Alkoholtester-Projekten und Alkoholerkennungssystemen verwendet.

Arduino UNO R4 with MQ3 alcohol gas sensor module

Über den MQ3 Alkohol Sensor

Der MQ3 Alkohol Sensor ist ein MOS (Metal Oxide Semiconductor) Sensor, auch bekannt als Chemiresistor, da er Alkohol basierend auf der Änderung des Widerstands des Sensormaterials erkennt, wenn es Alkoholdämpfen ausgesetzt wird. Er ist speziell dafür entwickelt, Alkoholdämpfe (Ethanol) in der Luft zu erkennen und ist hochempfindlich gegenüber Alkoholkonzentrationen.

Der Sensor verwendet eine Zinndioxid (SnO2) Beschichtung auf einem Aluminiumoxid-Keramiksubstrat als Sensorelement. Wenn erhitzt, wird das SnO2 empfindlich gegenüber Alkohol. Der Sensor ist mit einem Edelstahlnetz (Anti-Explosions-Netzwerk) bedeckt, das das interne Heizelement schützt und schwebende Partikel herausfiltert, während gasförmige Elemente zur Sensorkammer gelangen können.

Häufige Anwendungen umfassen Atemalkoholanalysegeräte, Alkoholerkennungssysteme für Fahrzeuge, Alkoholpräsenz-Alarme und Projekte, die eine Überwachung der Alkoholkonzentration in der Umgebung erfordern.

Technische Spezifikationen

  • Betriebsspannung: 5V DC
  • Lastwiderstand: 200 KΩ
  • Heizerwiderstand: 33Ω ± 5%
  • Heizverbrauch: < 800mW
  • Sensorwiderstand: 1 MΩ – 8 MΩ
  • Erkennungsbereich: 25 – 500 ppm (parts per million)
  • Aufwärmzeit: 24-48 Stunden bei Erstgebrauch

Was bedeutet ppm? Parts-per-million (ppm) ist die Einheit zur Messung der Gaskonzentration. Beispielsweise bedeuten 500 ppm Alkohol, dass von einer Million Gasmoleküle 500 Alkohol und 999.500 andere Gase sind.

Pinbelegung

Der MQ3 Alkohol Sensor hat vier Pins:

  • VCC Pin: Verbinden Sie diesen Pin mit VCC (5V).
  • GND Pin: Verbinden Sie diesen Pin mit GND (0V).
  • DO Pin: Dies ist ein digitaler Ausgabepin. Er zeigt LOW an, wenn Alkohol erkannt wird, und HIGH, wenn nicht. Sie können die Alkoholerkennungsschwelle mit dem Potentiometer auf der Platine einstellen.
  • AO Pin: Dies ist ein analoger Ausgabepin. Er erzeugt eine Spannung, die sich je nach Alkoholkonzentration ändert. Höhere Alkoholkonzentration lässt die Spannung steigen.
MQ3 alcohol sensor module pinout diagram

Er hat auch zwei LED-Lichter:

  • Ein PWR-LED Licht zeigt an, dass die Stromversorgung eingeschaltet ist.
  • Ein DO-LED Licht zeigt den Alkoholerkennungsstatus basierend auf dem DO Pin-Wert: es leuchtet auf, wenn Alkohol erkannt wird, und schaltet sich aus, wenn keiner vorhanden ist.

Wie es funktioniert

Der MQ3 Sensor funktioniert basierend auf Änderungen des elektrischen Widerstands des Zinndioxid (SnO2) Sensorelements:

In sauberer Luft: Wenn der SnO2 Halbleiter erhitzt wird, werden Sauerstoffmoleküle an der Oberfläche adsorbiert, wodurch eine Elektronenverarmungsschicht entsteht. Dies bildet eine Potentialbarriere, die das Material hochresistiv macht und den Stromfluss verhindert.

In Anwesenheit von Alkohol: Der Alkoholdampf reagiert mit dem adsorbierten Sauerstoff, reduziert die Oberflächensauerstoffdichte und senkt die Potentialbarriere. Dies setzt Elektronen in das Zinndioxid frei und ermöglicht es dem Strom, frei zu fließen. Je mehr Alkohol vorhanden ist, desto geringer der Widerstand.

Der Sensor bietet zwei Arten von Ausgängen:

Für den DO Pin (Digitaler Ausgang):

  • Das Modul enthält ein Potentiometer zur Einstellung der Empfindlichkeitsschwelle für die Alkoholerkennung.
  • Wenn die Alkoholkonzentration die eingestellte Schwelle überschreitet, schaltet der Ausgangspin des Sensors auf LOW und die DO-LED leuchtet auf.
  • Wenn die Alkoholkonzentration unter der Schwelle liegt, schaltet der Ausgangspin des Sensors auf HIGH und die DO-LED schaltet sich aus.

Für den AO Pin (Analoger Ausgang):

  • Die Ausgangsspannung ist proportional zur Alkoholkonzentration.
  • Höhere Alkohldampfkonzentration erzeugt höhere Spannung.
  • Niedrigere Alkohldampfkonzentration erzeugt niedrigere Spannung.
  • Das Potentiometer beeinflusst den AO Pin-Wert nicht.

MQ3 Sensor Aufwärmzeit und Kalibrierung

Aufwärmzeit

Der MQ3 Alkohol Sensor muss vor der Verwendung erhitzt werden, um genaue Messwerte zu erhalten:

  • Erstmalige Verwendung oder nach längerer Lagerung (über einen Monat): Wärmen Sie ihn 24-48 Stunden auf, um stabile und genaue Ergebnisse zu erhalten.
  • Kürzliche Verwendung: Es benötigt nur 5-10 Minuten zum Aufwärmen. Anfangs könnten die Messwerte hoch sein, aber sie werden sich nach kurzer Zeit stabilisieren.

Um den MQ3 Sensor zu erhitzen, verbinden Sie seine VCC und GND Pins mit einer Stromquelle oder mit VCC und GND am Arduino UNO R4 und lassen Sie ihn für die Aufwärmzeit verbunden.

Kalibrierung für Schwellenwerte

Da der MQ3 ein heizerbetriebener Sensor ist, kann die Kalibrierung abweichen, wenn er längere Zeit gelagert wird. Um den Sensor zu kalibrieren und Schwellenwerte für Ihr Alkoholtester-Projekt zu finden:

  1. Grundwerte aufzeichnen: Lassen Sie den Sensor in sauberer Luft laufen und zeichnen Sie die analogen Messwerte auf (normalerweise um 100-150).
  2. Mit Alkohol testen: Verwenden Sie Isopropylalkohol oder Händedesinfektionsmittel (bringen Sie keine Flüssigkeit auf den Sensor - nur Dämpfe). Drücken Sie die Flasche in der Nähe des Sensors zusammen, um Dämpfe freizusetzen und zeichnen Sie die Messwerte auf (normalerweise 400-900 je nach Konzentration).
  3. Schwellenwerte festlegen: Basierend auf Ihren Messwerten können Sie Schwellenwerte definieren:
  • Nüchtern: Unter Grundwert + 20 (z.B. < 120)
  • Innerhalb der gesetzlichen Grenzen: Zwischen Grundwert und mittlerem Level (z.B. 120-400)
  • Über den gesetzlichen Grenzen: Über mittlerem Level (z.B. > 400)

Hinweis: Diese Werte variieren je nach Ihrem spezifischen Sensor und der Umgebung. Kalibrieren Sie immer mit Ihrem eigenen Sensor vor der Verwendung.

Anpassung der digitalen Ausgangsschwelle

Um die Schwelle für den DO Pin mit dem Potentiometer auf der Platine einzustellen:

  1. Setzen Sie den Sensor Alkohldämpfen aus.
  2. Drehen Sie das Potentiometer im Uhrzeigersinn, bis die Status-LED aufleuchtet.
  3. Drehen Sie das Potentiometer gegen den Uhrzeigersinn, bis die LED gerade ausgeht.
  4. Ihre Schwelle ist nun eingestellt.

Schaltplan

Das MQ3 Alkohol Sensor Modul hat zwei Ausgänge. Sie können einen oder beide verwenden, je nach Ihren Anforderungen.

MQ3 Alkohol SensorArduino UNO R4
VCC5V
GNDGND
DOPin 2
AOA0
Arduino UNO R4 and MQ3 alcohol sensor wiring diagram showing pin connections

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Uno R4 und andere Komponenten mit Strom zu versorgen.

Arduino UNO R4 Code - Wert vom DO Pin lesen

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-mq3-alcohol-sensor */ #define DO_PIN 2 // The Arduino UNO R4 pin connected to DO pin of the MQ3 sensor void setup() { // initialize serial communication Serial.begin(9600); // initialize the Arduino's pin as an input pinMode(DO_PIN, INPUT); Serial.println("Warming up the MQ3 sensor"); delay(20000); // wait for the MQ3 to warm up } void loop() { int alcoholState = digitalRead(DO_PIN); if (alcoholState == HIGH) Serial.println("Alcohol is NOT detected"); else Serial.println("Alcohol is detected"); }

Schnelle Schritte

Befolgen Sie diese Anweisungen Schritt für Schritt:

  • Falls Sie das Arduino Uno R4 WiFi/Minima zum ersten Mal verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für Arduino Uno R4 WiFi/Minima in der Arduino IDE.
  • Verbinden Sie das Arduino Uno R4 Board mit dem MQ3 Alkohol Sensor gemäß dem bereitgestellten Schaltplan.
  • Verbinden Sie das Arduino Uno R4 Board über ein USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das entsprechende Arduino Uno R4 Board (z.B. Arduino Uno R4 WiFi) und den COM-Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Upload-Schaltfläche in der Arduino IDE, um den Code auf den Arduino UNO R4 hochzuladen.
  • Setzen Sie den MQ3 Sensor Alkoholdämpfen aus (Sie können Händedesinfektionsmittel oder Isopropylalkohol auf einem Wattebausch in der Nähe des Sensors verwenden).
  • Überprüfen Sie das Ergebnis im Serial Monitor.
COM6
Send
Alcohol is NOT detected Alcohol is NOT detected Alcohol is NOT detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is detected Alcohol is NOT detected Alcohol is NOT detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Hinweis: Wenn die Sensorausgabe nicht die tatsächliche Alkoholpräsenz widerspiegelt (z.B. er erkennt Alkohol, wenn keiner vorhanden ist, oder erkennt nicht, wenn Alkohol vorhanden ist), müssen Sie die Auslöseschwelle durch Drehen des Potentiometers am Sensormodul einstellen. Drehen Sie es im Uhrzeigersinn, um die Empfindlichkeit zu erhöhen, oder gegen den Uhrzeigersinn, um die Empfindlichkeit zu verringern, bis die Erkennung der Realität entspricht.

Arduino UNO R4 Code - Wert vom AO Pin lesen

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino UNO R4 pin connected to AO pin of the MQ3 sensor void setup() { // initialize serial communication Serial.begin(9600); Serial.println("Warming up the MQ3 sensor"); delay(20000); // wait for the MQ3 to warm up } void loop() { int alcoholValue = analogRead(AO_PIN); Serial.print("MQ3 sensor AO value: "); Serial.println(alcoholValue); delay(500); }

Schnelle Schritte

  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE
  • Klicken Sie auf die Upload-Schaltfläche in der Arduino IDE, um den Code auf den Arduino UNO R4 hochzuladen
  • Setzen Sie den MQ3 Sensor Alkoholdämpfen aus (Sie können Händedesinfektionsmittel oder Isopropylalkohol verwenden)
  • Überprüfen Sie das Ergebnis im Serial Monitor.
COM6
Send
MQ3 sensor AO value: 120 MQ3 sensor AO value: 125 MQ3 sensor AO value: 128 MQ3 sensor AO value: 450 MQ3 sensor AO value: 620 MQ3 sensor AO value: 850 MQ3 sensor AO value: 920 MQ3 sensor AO value: 980 MQ3 sensor AO value: 950 MQ3 sensor AO value: 680 MQ3 sensor AO value: 420
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Basierend auf den Werten von DO oder AO können Sie Schwellenwerte für die Alkoholerkennung festlegen und einen Alarm auslösen, eine Warn-LED aktivieren oder die Daten für Alkoholtester-Anwendungen protokollieren.

Arduino UNO R4 Code - Einfacher Alkohltester mit Schwellenwerten

Dieses erweiterte Beispiel verwendet den analogen Ausgang, um den Alkoholintoxikationsgrad basierend auf kalibrierten Schwellenwerten zu schätzen.

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-r4/arduino-uno-r4-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino UNO R4 pin connected to AO pin of the MQ3 sensor // Threshold values - REPLACE THESE with your calibrated values! // Run calibration first to find these values for your sensor #define SOBER_THRESHOLD 120 // Below this = sober #define DRUNK_THRESHOLD 400 // Above this = drunk, between = drinking but within limits void setup() { // Initialize serial communication Serial.begin(9600); // Warm-up message Serial.println("MQ3 Alcohol Sensor - Breathalyzer"); Serial.println("Warming up sensor..."); delay(20000); // 20 second warm-up for recently used sensor Serial.println("Sensor ready!"); Serial.println(); } void loop() { int gasLevel = analogRead(AO_PIN); // Read the analog value from sensor // Print sensor value Serial.print("Sensor Value: "); Serial.print(gasLevel); Serial.print(" | Status: "); // Determine status based on thresholds if (gasLevel < SOBER_THRESHOLD) { Serial.println("Stone Cold Sober"); } else if (gasLevel >= SOBER_THRESHOLD && gasLevel < DRUNK_THRESHOLD) { Serial.println("Drinking but within limits"); } else { Serial.println("DRUNK"); } delay(1000); // Wait 1 second between readings }

Schnelle Schritte

  • Wichtig: Bevor Sie diesen Code verwenden, führen Sie den obigen Kalibrierungssketch aus, um die Schwellenwerte Ihres Sensors in sauberer Luft und bei Alkoholpräsenz zu ermitteln.
  • Ersetzen Sie die Schwellenwerte im Code (SOBER_THRESHOLD und DRUNK_THRESHOLD) durch Ihre kalibrierten Werte.
  • Laden Sie den Code auf den Arduino UNO R4 hoch.
  • Testen Sie, indem Sie den Sensor Alkohldämpfen aussetzen (Händedesinfektionsmittel oder Isopropylalkohol).
  • Überprüfen Sie das Ergebnis im Serial Monitor.
COM6
Send
Sensor Value: 115 | Status: Stone Cold Sober Sensor Value: 118 | Status: Stone Cold Sober Sensor Value: 350 | Status: Drinking but within limits Sensor Value: 480 | Status: DRUNK Sensor Value: 520 | Status: DRUNK Sensor Value: 290 | Status: Drinking but within limits Sensor Value: 125 | Status: Stone Cold Sober
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Hinweis: Dies dient nur Bildungszwecken. Verwenden Sie dies nicht als rechtsgültigen Alkohltester oder zur Bestimmung der Fahrtüchtigkeit.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!