Arduino Nano - MQ3 Alcoholsensor

Deze handleiding begeleidt u stap voor stap bij het integreren van de MQ3 alcoholsensor met de Arduino Nano voor het detecteren en meten van alcoholdamp en ethanolconcentratie. De MQ3 sensor wordt veelal ingezet in ademanalysatorprojecten, alcoholalarmsystemen en toepassingen voor luchtkwaliteitsbeoordeling.

In deze tutorial leert u:

Arduino Nano met MQ3 alcoholgas sensor module

Hardware Vereist

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB-kabel
1×MQ3 Alcoholsensor
1×Jumperdraden
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

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 functioneert als een Metal Oxide Semiconductor (MOS) Chemiresistor die alcohol detecteert door weerstandvariaties in het sensitieve materiaal te meten. Ontworpen voor detectie van ethanol-damp, levert deze sensor betrouwbare prestaties over verschillende concentratieniveaus.

Het detectie-element van de sensor bestaat uit een Tin Dioxide (SnO2) laag die is aangebracht op een keramische basis van Aluminiumoxide. Bij verwarming wordt de SnO2 laag chemisch reactief voor alcoholmoleculen in de omgevingslucht. Een beschermend roestvrijstalen gaas beschermt de interne componenten, terwijl het toch gasmoleculen toelaat in de detectiekamer.

Veelvoorkomende toepassingen zijn doe-het-zelf ademanalysatoren, detectiesystemen voor dronkenrijden, alcoholalarmsystemen en monitoring van atmosferische alcoholniveaus.

Technische specificaties

  • Voedingsspanning: 5V DC
  • Belastingsweerstand: 200 KΩ
  • Verwarmingsweerstand: 33Ω ± 5%
  • Verwarmingsverbruik: < 800mW
  • Detectieweerstand: 1 MΩ – 8 MΩ
  • Detectiebereik: 25 – 500 ppm (parts per million)
  • Voorverwarmtijd: 24-48 uur bij eerste gebruik

Wat is ppm? Parts-per-million (ppm) beschrijft het aandeel doelgasmoleculen ten opzichte van het totaal aantal gasmoleculen. Bijvoorbeeld, 500 ppm betekent dat er 500 alcoholmoleculen zijn binnen elke 1.000.000 gasmoleculen, terwijl de overige 999.500 moleculen uit omgevingslucht bestaan.

Pinout

De MQ3 sensormodule heeft vier pinnetjes:

  • VCC pin: Sluit aan op +5V voeding.
  • GND pin: Sluit aan op aarde (0V).
  • DO pin: Digitale uitgang die LOW wordt wanneer alcohol de drempel overschrijdt, HIGH wanneer daaronder. Pas de drempel aan met de onboard potentiometer.
  • AO pin: Analoge uitgang die een spanning levert die evenredig is aan de alcoholconcentratie. Hogere alcoholniveaus geven hogere spanningen.
MQ3 alcoholsensor module pinout diagram

Visuele feedback wordt gegeven door twee onboard LED's:

  • PWR-LED: Gaat aan wanneer de module stroom ontvangt.
  • DO-LED: Volgt de toestand van de digitale uitgang—brandt bij detectie van alcohol, anders uit.

Hoe werkt het

De MQ3 werkt via weerstandveranderingen in het Tin Dioxide (SnO2) halfgeleidermateriaal:

In schone lucht: De verhitte SnO2-oppervlakte trekt atmosfeerzuurstofmoleculen aan, die elektronen vangen en een depletielaag vormen. Dit electronenvangen creëert een geleidingsbarrière, wat een hoge elektrische weerstand behoudt.

Bij blootstelling aan alcohol: Alcoholmoleculen reageren met het oppervlakteluchtzuurstof en geven de gevangen elektronen terug aan het tin dioxide rooster. Deze elektronen vrijgave verhoogt de geleidbaarheid sterk; hogere alcoholconcentraties leiden tot lagere weerstandswaarden.

De sensor levert twee aparte uitvoermodi:

Digitale uitgang (DO pin):

  • Drempelniveau is instelbaar via de onboard trim potentiometer.
  • Detectie boven drempel leidt ertoe dat DO LOW wordt en de indicator LED oplicht.
  • Waarden onder drempel houden DO op HIGH en de LED uit.

Analoge uitgang (AO pin):

  • Uitgangsspanning varieert evenredig met alcoholconcentratie.
  • Hogere alcoholdamp = hogere uitgangsspanning.
  • Lagere alcoholdamp = lagere uitgangsspanning.
  • Let op: De trim potentiometer beïnvloedt alleen de digitale drempel, niet het analoge signaal.

Opwarmen en Kalibreren

Voorverwarmvereisten

Voor nauwkeurige werking moet de MQ3 sensor voldoende worden verwarmd:

  • Eerste gebruik of na lange opslag (30+ dagen): Laat de verwarming 24-48 uur continu aanstaan om de sensor te stabiliseren en consistente metingen te garanderen.
  • Reguliere werking: Een korte opwarmtijd van 5-10 minuten is voldoende. Vroege waarden kunnen iets hoger zijn maar stabiliseren binnen enkele minuten.

Verwarm de sensor door VCC en GND aan te sluiten op respectievelijk 5V en aarde, via een voeding of rechtstreeks vanaf de Arduino Nano.

Uw drempelwaarden bepalen

Gas sensoren op basis van verwarming zoals de MQ3 kunnen na opslag gaan driften. Voor ademanalysator toepassingen bepaalt u de juiste drempelwaarden via deze kalibratie:

  1. Bepaal de basislijn in schone lucht: Laat de sensor werken in frisse lucht zonder alcohol. Noteer de analoge waarde (gewoonlijk 100-150).
  2. Test met alcoholdamp: Breng isopropyl alcohol of handdesinfectiemiddel bij de sensor (geef geen direct contact), zodat damp het detectiegebied bereikt. Noteer de verhoogde waarden (gewoonlijk 400-900 afhankelijk van dampsterkte).
  3. Stel detectiezones in: Maak op basis van metingen drempelwaarden:
  • Nuchtere toestand: Waarden lager dan basislijn + 20 bijvoorbeeld <120
  • Gemiddeld niveau: Waarden in het middenbereik, bijvoorbeeld 120-400
  • Hoog niveau: Waarden boven het gemiddelde, bijvoorbeeld >400

Let op: Elke sensor en meetomgeving geeft andere waarden. Kalibreer daarom met uw eigen hardware vóór gebruik in toepassingen.

Digitale drempel instellen

Pas het triggerpunt van de DO pin aan met de potentiometer op de module:

  1. Stel de sensor bloot aan alcoholdamp.
  2. Draai de potentiometer met de klok mee totdat de LED aangaat.
  3. Draai langzaam tegen de klok in totdat de LED net uitgaat.
  4. De digitale drempel is nu gekalibreerd.

Bedradingsschema

De MQ3 module biedt zowel digitale als analoge uitgangen. Gebruik een van beide outputs of beide samen, afhankelijk van uw projectvereisten.

MQ3 Alcohol SensorArduino Nano
VCC5V
GNDGND
DOD2
AOA0
Arduino Nano en MQ3 alcoholsensor bedradingsschema met pinverbindingen

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Nano en andere componenten van stroom te voorzien.

Arduino Nano Code - Digitale uitgang uitlezen

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Snelle stappen

  • Kopieer de code naar de Arduino IDE
  • Klik op de Upload knop om de code naar de Arduino Nano te sturen
  • Plaats een alcoholdampbron nabij de sensor (gebruik handdesinfectiemiddel of ontsmettingsalcohol op een wattenstaafje)
  • Controleer de Serial Monitor op resultaten
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  

Tip: Als de detectieresultaten niet kloppen met de werkelijkheid (valse meldingen of missers), stel dan de potentiometer op de module bij. Draai met de klok mee voor meer gevoeligheid of tegen de klok in voor minder, totdat de detectie accuraat wordt.

Arduino Nano Code - Analoge uitgang uitlezen

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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); }

Snelle stappen

  • Plak de code in de Arduino IDE
  • Klik op de Upload knop om de Arduino Nano te programmeren
  • Stel de sensor bloot aan alcoholdamp (zoals handdesinfectiemiddel of isopropylalcohol)
  • Volg de wisselende waarden in de 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  

Met digitale en analoge outputs beschikbaar kunt u drempelgebaseerde logica implementeren om bijvoorbeeld alarmsignalen te activeren, visuele indicatoren te bedienen, of data te loggen voor ademanalysator toepassingen.

Arduino Nano Code - Ademanalysator met drempeldetectie

Dit voorbeeld laat zien hoe analoge waarden worden geïnterpreteerd met gekalibreerde drempels om alcoholconsumptieniveaus te schatten.

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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 }

Snelle stappen

  • Belangrijk: Kalibreer eerst uw sensor met het analoge uitleesvoorbeeld om de juiste drempelwaarden voor uw sensor te bepalen.
  • Pas de SOBER_THRESHOLD en DRUNK_THRESHOLD constanten in de code aan naar uw gekalibreerde waarden.
  • Upload de aangepaste code naar de Arduino Nano
  • Test door alcoholdamp toe te voeren (isopropylalcohol of handdesinfectiemiddel damp)
  • Volg de statusupdates in de 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  

Disclaimer: Dit is alleen een educatief project. Gebruik dit apparaat niet als officiële ademanalysator of om rijveiligheid te bepalen.

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.

Gerelateerde Tutorials

※ 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!