Arduino - MQ3 Alcoholsensor

Deze handleiding demonstreert het aansluiten van een MQ3 alcoholsensor op Arduino om ethanol- en alcoholdampniveaus in uw omgeving te monitoren. De MQ3 sensor wordt veel gebruikt in doe-het-zelf blaastestapparaten, alcoholdetectie-alarmen en projecten voor het monitoren van luchtkwaliteit.

U ontdekt:

Arduino met MQ3 alcohol gas sensor module

Hardware Vereist

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×MQ3 Alcoholsensor
1×Jumperdraden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over MQ3 Alcoholsensor

De MQ3 is een chemiweerstand (chemiresistor), een Metal Oxide Semiconductor (MOS) apparaat dat alcohol detecteert door veranderingen in de weerstand van het sensor materiaal. Dit module blinkt uit in het detecteren van ethanoldamp met een hoge gevoeligheid over een brede concentratie-range.

In de kern bestaat de sensor uit een laag tinoxide (SnO2) die is aangebracht op een keramische basis van aluminiumoxide. Door verhitting wordt het SnO2 geactiveerd en wordt het gevoelig voor alcoholmoleculen. Een roestvrijstalen beschermend gaas (anti-explosie scherm) omsluit de sensor, beschermt het verwarmingselement en laat tegelijkertijd gasmoleculen door in de detectiekamer.

Deze sensor wordt veel gebruikt voor blaastestapparaten, detectieapparatuur tegen rijden onder invloed (DUI), waarschuwingssystemen voor alcohol en toepassingen voor het monitoren van alcohol in de omgeving.

Technische Specificaties

  • Bedrijfsspanning: 5V DC
  • Belastingweerstand: 200 KΩ
  • Verwarmingselement weerstand: 33Ω ± 5%
  • Verwarming verbruik: < 800mW
  • Detectie weerstand: 1 MΩ – 8 MΩ
  • Detectiebereik: 25 – 500 ppm (parts per million)
  • Voorverwarmtijd: 24-48 uur bij eerste gebruik

Betekenis van ppm: ppm staat voor parts-per-million, de verhouding tussen het aantal moleculen van het doelgas ten opzichte van het totaal aantal moleculen. Praktisch betekent een uitlezing van 500 ppm dat er 500 alcoholmoleculen zijn per 1.000.000 totale gasmoleculen, terwijl de overige 999.500 andere atmosferische gassen zijn.

Pinout

Op het MQ3 sensormodule zijn vier aansluitpennen beschikbaar:

  • VCC pin: Voed +5V spanning aan via deze aansluiting.
  • GND pin: Verbind met massa (0V).
  • DO pin: Digitale uitgang die LOW wordt bij detectie van alcohol boven de drempel, HIGH anders. De aan boord aanwezige potentiometer maakt instelling van deze drempel mogelijk.
  • AO pin: Analoog uitgangssignaal dat een variabele spanning levert die correspondeert met het alcoholniveau. Meer alcohol betekent een hogere uitgangsspanning.
MQ3 alcohol sensor module pinout diagram

Twee indicator-LEDs geven visuele feedback:

  • PWR-LED: Gaat branden zodra het module van stroom wordt voorzien.
  • DO-LED: Toont de status van de digitale uitgang – brandt bij alcoholdetectie en is uit als er geen detectie is.

Hoe Werkt Het

De detectiemechanisme van de MQ3 berust op weerstandswijzigingen binnen het tinoxide (SnO2) halfgeleidermateriaal:

Schoon lucht conditie: De verhitting veroorzaakt binding van zuurstof aan het oppervlak van het SnO2, waarbij elektronen worden gevangen en een depletielaag wordt gevormd. Deze laag functioneert als een barrière die elektrische geleidbaarheid beperkt, wat resulteert in een hoge weerstand.

Blootstelling aan alcohol: Alcoholmoleculen reageren met de gebonden zuurstof, verbreken deze bindingen en bevrijden zo de gevangen elektronen terug in het tinoxide. Dit verhoogt de geleiding aanzienlijk; hogere alcoholconcentraties verlagen de elektrische weerstand.

Er zijn twee uitvoermodi op dit module:

Digitale uitgang (DO pin):

  • Een instelbare potentiometer bepaalt het detectiedrempelniveau.
  • Bij detectie van alcohol boven deze drempel wordt de digitale uitgang LOW en gaat de LED aan.
  • Bij alcoholwaarden onder de drempel blijft de uitgang HIGH en LED uit.

Analoge uitgang (AO pin):

  • De uitgangsspanning correleert direct met het alcoholniveau.
  • Meer alcoholdamp = hogere spanning.
  • Minder alcoholdamp = lagere spanning.
  • Let op: de potentiometer beïnvloedt alleen de digitale uitgang, niet het analoge signaal.

Voorverwarming en Calibratie

Voorverwarmingsvereisten

Voor nauwkeurige metingen vereist de MQ3 sensor een juiste voorverwarming:

  • Eerste gebruik of langdurige opslag (30+ dagen): Laat de sensor 24-48 uur continu verwarmen om te stabiliseren en betrouwbare metingen te garanderen.
  • Regulier gebruik: Een korte voorverwarming van 5-10 minuten is voldoende. De eerste metingen kunnen hoger uitvallen maar normaliseren snel.

Voorverwarming doet u door VCC en GND met een 5V voeding of direct met de Arduino voedingspinnen te verbinden en deze verbinding tijdens de voorverwarming intact te houden.

Het vinden van uw drempelwaarden

Langdurige opslag kan kalibratieverschuiving veroorzaken bij verwarming gebaseerde sensoren zoals de MQ3. Bepaal nauwkeurige drempelwaarden voor blaastesttoepassingen via deze procedure:

  1. Baseline in schone lucht vaststellen: Plaats de sensor in schone lucht en noteer de analoge waarde (verwacht tussen 100-150).
  2. Introductie van alcoholdamp: Houd isopropylalcohol of handdesinfectiemiddel in de buurt (niet direct op) de sensor zodat alleen damp het module bereikt. Noteer de verhoogde uitlezingen (meestal 400-900 afhankelijk van damppichtheid).
  3. Detectiezones definiëren: Gebruik de gemeten waarden om volgende grenswaarden te bepalen:
  • Geen intoxicatie: Waarden onder baseline + 20 (bijv. < 120)
  • Matig gebruik: Middelwaarden (bijv. 120-400)
  • Hoge intoxicatie: Waarden boven de matige drempel (bijv. > 400)

Belangrijk: Sensor eigenschappen variëren per exemplaar en omgeving. Kalibreer altijd uw specifieke hardware voor inzet.

Het instellen van de digitale drempel

Stel het triggerpunt van de DO pin in met de aan boord aanwezige trim potentiometer:

  1. Breng alcoholdamp bij de sensor.
  2. Draai de potentiometer met de klok mee totdat de LED gaat branden.
  3. Draai langzaam tegen de klok in totdat de LED net uitgaat.
  4. De triggerdrempel is nu correct afgesteld.

Aansluitschema

Beide uitgangspinnen zijn beschikbaar op het MQ3 module. U kunt er één kiezen of beide gelijktijdig gebruiken afhankelijk van uw projectwensen.

MQ3 AlcoholsensorArduino
VCC5V
GNDGND
DOPin 2
AOA0
Arduino en MQ3 alcoholsensor aansluitingsschema met pinverbindingen

This image is created using Fritzing. Click to enlarge image

Arduino Code - Digitale Uitgang Uitlezen

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-mq3-alcohol-sensor */ #define DO_PIN 2 // The Arduino pin connected to DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the Arduino pin as an input pinMode(DO_PIN, 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(DO_PIN); if (gasState == HIGH) { Serial.println("Alcohol is NOT detected"); } else { Serial.println("Alcohol is detected"); } delay(1000); }

Snelle stappen

  • Open bovenstaande code in de Arduino IDE
  • Upload deze naar uw Arduino board via de Upload knop
  • Breng een alcoholdampbron bij de MQ3 sensor (handdesinfectie of ontsmettingsalcohol op watje werkt goed)
  • Volg de output in de Seriële 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  

Opmerking: Als de metingen niet overeenkomen met de werkelijke situatie (vals positieven of gemiste detecties), stem dan de detectiedrempel af met de potentiometer op het module. Rechtsom draaien verhoogt de gevoeligheid; linksom verlaagt die. Pas aan tot de detectie nauwkeuriger wordt.

Arduino Code - Analoge Uitgang Uitlezen

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino pin connected to 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(AO_PIN); Serial.print("MQ3 sensor AO value: "); Serial.println(gasValue); delay(1000); }

Snelle stappen

  • Laad de code in Arduino IDE
  • Upload via de Upload knop
  • Breng alcoholdamp bij de sensor (handdesinfectie of isopropylalcohol)
  • Bekijk de metingen in de Seriële 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  

Met zowel digitale als analoge output kunt u op drempel gebaseerde beslissingen implementeren om alarmen te activeren, waarschuwingsindicatoren te sturen of gegevens op te slaan voor blaastest-functionaliteit.

Arduino Code - Blaastest met Drempeldetectie

Dit voorbeeld toont interpretatie van analoge output via gekalibreerde drempelwaarden om het intoxicatieniveau in te schatten.

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-mq3-alcohol-sensor */ #define AO_PIN A0 // The Arduino 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 }

Snelle stappen

  • Kritisch: Kalibreer eerst uw sensor met het analoge uitleesvoorbeeld om geschikte drempelwaarden voor uw omgeving te bepalen.
  • Werk de constanten SOBER_THRESHOLD en DRUNK_THRESHOLD in de code bij met uw gekalibreerde waarden.
  • Laad en upload de aangepaste code naar Arduino
  • Test met alcoholdamp (isopropylalcohol of handdesinfectiedamp)
  • Bekijk de statusberichten in de Seriële 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  

Disclaimer: Dit project is uitsluitend bedoeld voor educatieve doeleinden. Vertrouw nooit op dit apparaat voor wettelijke blaastestfuncties of verkeersveiligheidsevaluaties.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en praktische demonstraties.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!