Arduino Nano - MQ3 Alkoholsensor

Diese Anleitung führt Sie durch die Integration des MQ3 Alkoholsensors mit Arduino Nano zur Erkennung und Messung von Alkoholdampf und Ethanolkonzentration. Der MQ3 Sensor wird häufig in Atemalkohol-Messgerät Projekten, Alkohol-Alarmsystemen und Luftqualitätsbewertungsanwendungen eingesetzt.

In diesem Tutorial lernen Sie:

Arduino Nano mit MQ3 Alkohol-Gassensormodul

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB A zu Mini-B USB Kabel
1×MQ3 Alkoholsensor
1×Jumper Kabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den MQ3 Alkoholsensor

Der MQ3 funktioniert als Metalloxid-Halbleiter (MOS) Chemiresistor, der Alkohol durch Messung von Widerstandsänderungen in seinem empfindlichen Material identifiziert. Entwickelt für die Ethanol-Dampferkennung, liefert dieser Sensor zuverlässige Leistung über verschiedene Konzentrationsbereiche hinweg.

Das Detektionselement des Sensors besteht aus Zinndioxid (SnO2) Material, das auf ein keramisches Substrat aus Aluminiumoxid aufgetragen ist. Beim Erhitzen wird die SnO2-Schicht chemisch reaktiv gegenüber Alkoholmolekülen in der umgebenden Luft. Ein schützendes Edelstahlgitter bewacht die inneren Komponenten und ermöglicht gleichzeitig Gasmolekülen den Zugang zur Sensorkammer.

Häufige Anwendungen umfassen DIY-Alkoholtester-Geräte, Alkohol am Steuer Erkennungssysteme, Alkohldampf-Alarme und atmosphärische Alkoholpegel-Überwachung.

Technische Spezifikationen

  • Betriebsspannung: 5V DC
  • Lastwiderstand: 200 KΩ
  • Heizwiderstand: 33Ω ± 5%
  • Heizverbrauch: < 800mW
  • Sensorwiderstand: 1 MΩ – 8 MΩ
  • Erkennungsbereich: 25 – 500 ppm (parts per million)
  • Vorheizzeit: 24-48 Stunden für erste Verwendung

Was ist ppm? Parts-per-million (ppm) beschreibt das Verhältnis von Zielgasmolekülen zu den gesamten Gasmolekülen. Zum Beispiel bedeuten 500 ppm, dass es 500 Alkoholmoleküle innerhalb von je 1.000.000 Gasmolekülen gibt, während die anderen 999.500 Moleküle Umgebungsluftkomponenten sind.

Pinout

Das MQ3 Sensormodul verfügt über vier Pin-Anschlüsse:

  • VCC Pin: Mit +5V Netzteil verbinden.
  • GND Pin: Mit Masse (0V) verbinden.
  • DO Pin: Digitaler Ausgang geht auf LOW, wenn Alkohol den Schwellenwert überschreitet, HIGH wenn unter dem Schwellenwert. Schwellenwert mit dem Potentiometer auf der Platine einstellen.
  • AO Pin: Analoger Ausgang liefert Spannung proportional zur Alkoholkonzentration. Höhere Alkoholwerte erzeugen höhere Spannungen.
MQ3 Alkoholsensor Modul Pinout-Diagramm

Visuelle Rückmeldung wird durch zwei LEDs auf der Platine bereitgestellt:

  • PWR-LED: Leuchtet auf, wenn das Modul Strom erhält.
  • DO-LED: Spiegelt den digitalen Ausgangszustand wider—leuchtet bei Alkoholerkennung, bleibt sonst dunkel.

Funktionsweise

Der MQ3 arbeitet durch Widerstandsänderungen in seinem Zinndioxid (SnO2) Halbleitermaterial:

In sauberer Luft: Die erhitzte SnO2-Oberfläche zieht atmosphärische Sauerstoffmoleküle an, die Elektronen einfangen und eine Verarmungsschicht bilden. Diese Elektroneneinfangung schafft eine Leitungsbarriere und erhält einen hohen elektrischen Widerstand.

Bei Alkoholkontakt: Alkoholmoleküle reagieren mit dem Oberflächensauerstoff und setzen die eingefangenen Elektronen zurück in das Zinndioxid-Gitter frei. Diese Elektronenfreisetzung erhöht die Leitfähigkeit erheblich—höhere Alkoholkonzentrationen führen zu niedrigeren Widerstandswerten.

Der Sensor bietet zwei verschiedene Ausgangsmodi:

Digitaler Ausgang (DO Pin):

  • Schwellenwertpegel ist über das Trimmpotentiometer auf der Platine einstellbar.
  • Erkennung über dem Schwellenwert steuert DO auf LOW und schaltet die Anzeige-LED ein.
  • Messwerte unter dem Schwellenwert halten DO auf HIGH mit ausgeschalteter LED.

Analoger Ausgang (AO Pin):

  • Ausgangsspannung ändert sich proportional zur Alkoholkonzentration.
  • Höherer Alkoholdampf = erhöhte Ausgangsspannung.
  • Niedrigerer Alkoholdampf = verringerte Ausgangsspannung.
  • Hinweis: Das Trimmpotentiometer beeinflusst nur den digitalen Schwellenwert, nicht das Analogsignal.

Aufwärmen und Kalibrierung

Vorheizanforderungen

Für genauen Betrieb benötigt der MQ3 Sensor ausreichende Erwärmung:

  • Erstverwendung oder nach langer Lagerung (30+ Tage): Lassen Sie die Heizung kontinuierlich 24-48 Stunden laufen, um den Sensor zu stabilisieren und konsistente Messwerte zu erreichen.
  • Routinebetrieb: Eine kurze 5-10 Minuten Aufwärmphase ist ausreichend. Frühe Messwerte können erhöhte Werte zeigen, werden sich aber innerhalb von Minuten normalisieren.

Erwärmen Sie den Sensor, indem Sie seine VCC- und GND-Pins mit 5V bzw. Masse verbinden—entweder über ein Netzteil oder direkt über die Stromversorgungspins Ihres Arduino Nano.

Ihre Schwellenwerte finden

Heizungsbasierte Gassensoren wie der MQ3 können nach Lagerungszeiten driften. Für Alkoholtester-Implementierungen bestimmen Sie geeignete Schwellenwerte durch diesen Kalibrierungsprozess:

  1. Grundwert in sauberer Luft aufzeichnen: Betreiben Sie den Sensor in frischer Luft ohne vorhandenen Alkohol. Notieren Sie den analogen Messwert (typischerweise 100-150).
  2. Mit Alkoholdampf testen: Bringen Sie Isopropylalkohol oder Handdesinfektionsmittel nahe zum Sensor (keinen Kontakt herstellen), sodass Dampf den Detektor erreichen kann. Notieren Sie die erhöhten Werte (normalerweise 400-900 je nach Dampfstärke).
  3. Erkennungsbereiche festlegen: Basierend auf Ihren Messungen erstellen Sie Schwellenwert-Zonen:
  • Nüchterner Zustand: Werte unter Grundwert + 20 (zum Beispiel: < 120)
  • Moderater Pegel: Werte im mittleren Bereich (zum Beispiel: 120-400)
  • Hoher Pegel: Werte über moderater Grenze (zum Beispiel: > 400)

Hinweis: Jede Sensoreinheit und Betriebsumgebung erzeugt unterschiedliche Werte. Kalibrieren Sie mit Ihrer tatsächlichen Hardware, bevor Sie sie in einer Anwendung verwenden.

Den digitalen Schwellenwert einstellen

Justieren Sie den DO Pin Auslösepunkt mit dem Potentiometer des Moduls:

  1. Setzen Sie den Sensor Alkohldampf aus.
  2. Drehen Sie das Potentiometer im Uhrzeigersinn, bis die LED aufleuchtet.
  3. Drehen Sie langsam gegen den Uhrzeigersinn, bis die LED gerade erlischt.
  4. Ihr digitaler Schwellenwert ist nun kalibriert.

Schaltplan

Das MQ3 Modul bietet sowohl digitale als auch analoge Ausgänge. Verwenden Sie je nach Projektanforderungen entweder einen Ausgang einzeln oder beide zusammen.

MQ3 AlkoholsensorArduino Nano
VCC5V
GNDGND
DOD2
AOA0
Arduino Nano und MQ3 Alkoholsensor Schaltplan mit Pin-Verbindungen

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

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

Arduino Nano Code - Digitaler Ausgang Lesen

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-mq3-alcohol-sensor */ #define PIN_DO 2 // The Arduino Nano pin connected to the DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the Arduino Nano pin as an input pinMode(PIN_DO, INPUT); // Warm-up message Serial.println("Warming up the MQ3 sensor"); delay(20000); // 20 seconds warm-up time for recently used sensor } void loop() { int gasState = digitalRead(PIN_DO); if (gasState == HIGH) { Serial.println("Alcohol is NOT detected"); } else { Serial.println("Alcohol is detected"); } delay(1000); }

Schnelle Schritte

  • Kopieren Sie den Code in die Arduino IDE
  • Klicken Sie auf die Upload Schaltfläche, um den Code auf Arduino Nano zu übertragen
  • Platzieren Sie eine Alkohldampfquelle nahe dem Sensor (verwenden Sie Handdesinfektionsmittel oder Isopropylalkohol auf einem Wattestäbchen)
  • Überprüfen Sie die Ergebnisse im Seriellen 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  

Tipp: Falls die Erkennungsergebnisse nicht mit der Realität übereinstimmen (falsche Auslösungen oder verpasste Erkennungen), justieren Sie das Potentiometer am Modul. Drehen Sie im Uhrzeigersinn für erhöhte Empfindlichkeit oder gegen den Uhrzeigersinn zum Verringern, bis die Erkennung genau wird.

Arduino Nano Code - Analoger Ausgang Lesen

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-mq3-alcohol-sensor */ #define PIN_AO A0 // The Arduino Nano pin connected to the AO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Warm-up message Serial.println("Warming up the MQ3 sensor"); delay(20000); // 20 seconds warm-up time for recently used sensor } void loop() { int gasValue = analogRead(PIN_AO); Serial.print("MQ3 sensor AO value: "); Serial.println(gasValue); delay(1000); }

Schnelle Schritte

  • Fügen Sie den Code in die Arduino IDE ein
  • Klicken Sie auf die Upload Schaltfläche, um Arduino Nano zu programmieren
  • Setzen Sie den Sensor Alkohldampf aus (Handdesinfektionsmittel oder Isopropylalkoholdämpfe)
  • Überwachen Sie die sich ändernden Werte im Seriellen 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  

Mit sowohl digitalen als auch analogen Ausgängen verfügbar, können Sie schwellenwertbasierte Logik implementieren, um Alarme auszulösen, visuelle Indikatoren zu aktivieren oder Daten für Alkohltester-Anwendungen zu protokollieren.

Arduino Nano Code - Alkohltester mit Schwellenwert-Erkennung

Dieses Beispiel zeigt, wie analoge Messwerte mit kalibrierten Schwellenwerten interpretiert werden, um Alkoholkonsum-Pegel zu schätzen.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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-nano/arduino-nano-mq3-alcohol-sensor */ #define PIN_AO A0 // The Arduino Nano pin connected to the 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(PIN_AO); // 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: Kalibrieren Sie zuerst Ihren Sensor mit dem analogen Messwert-Beispiel, um geeignete Schwellenwerte für Ihren spezifischen Sensor zu bestimmen.
  • Ändern Sie die SOBER_THRESHOLD und DRUNK_THRESHOLD Konstanten im Code mit Ihren kalibrierten Werten.
  • Laden Sie den aktualisierten Code auf Arduino Nano hoch
  • Testen Sie durch Einführung von Alkohldampf (Isopropylalkohol oder Handdesinfektionsmittel-Dampf)
  • Beobachten Sie die Status-Updates im Seriellen 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  

Haftungsausschluss: Dies ist nur ein Bildungsprojekt. Verwenden Sie dieses Gerät nicht als offiziellen Alkohltester oder zur Bestimmung der Fahrtauglichkeit.

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.

Funktionsreferenzen

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!