Arduino UNO R4 - MQ3 Alcoholsensor

Deze gids toont u hoe u Arduino UNO R4 en MQ3 alcoholsensor gebruikt om alcoholdamp en ethanol in de lucht te detecteren. Deze sensor wordt veel gebruikt in ademanalyser projecten en alcoholdetectiesystemen.

Arduino UNO R4 met MQ3 alcoholgassensor module

Over de MQ3 Alcoholsensor

De MQ3 alcoholsensor is een MOS (Metal Oxide Semiconductor) sensor, ook bekend als een Chemiresistor, omdat deze alcohol detecteert op basis van de verandering in weerstand van het gevoelige materiaal wanneer het wordt blootgesteld aan alcoholdamp. Deze is specifiek ontworpen om alcoholdamp (ethanol) in de lucht te detecteren en is zeer gevoelig voor alcoholconcentraties.

De sensor gebruikt een Tin Dioxide (SnO2) coating op een Aluminum Oxide keramisch substraat als detectie-element. Wanneer verhit, wordt de SnO2 gevoelig voor alcohol. De sensor is bedekt met een roestvrijstalen rooster (anti-explosie netwerk) dat het interne verwarmingselement beschermt en zwevende deeltjes filtert terwijl gasvormige elementen de detectiekamer kunnen bereiken.

Veelvoorkomende toepassingen zijn ademanalysers, detectiesystemen voor dronken rijden, alcoholaanwezigheidsalarmen en projecten die monitoring van alcoholconcentratie in de omgeving vereisen.

Technische Specificaties

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

Wat betekent ppm? Parts-per-million (ppm) is de eenheid voor het meten van gasconcentratie. Bijvoorbeeld, 500 ppm alcohol betekent dat van één miljoen gasmoleculen er 500 alcohol zijn en 999.500 andere gassen.

Pinout

De MQ3 alcoholsensor heeft vier pinnen:

  • VCC pin: Sluit deze pin aan op VCC (5V).
  • GND pin: Sluit deze pin aan op GND (0V).
  • DO pin: Dit is een digitale uitvoerpin. Deze toont LOW wanneer alcohol wordt gedetecteerd en HIGH indien niet. U kunt de drempelwaarde voor alcoholdetectie aanpassen met de potentiometer op de module.
  • AO pin: Dit is een analoge uitvoerpin. Deze produceert een spanning die verandert afhankelijk van de alcoholconcentratie. Hogere alcoholconcentratie zorgt voor hogere spanning.
MQ3 alcoholsensor module pinout diagram

De module heeft ook twee LED-lampjes:

  • Eén PWR-LED lampje toont dat de voeding aan staat.
  • Eén DO-LED lampje toont de alcoholdetectiestatus gebaseerd op de DO pin waarde: het licht op wanneer alcohol wordt gedetecteerd en gaat uit wanneer er geen alcohol is.

Hoe het Werkt

De MQ3 sensor werkt gebaseerd op veranderingen in elektrische weerstand van het Tin Dioxide (SnO2) detectie-element:

In schone lucht: Wanneer de SnO2 halfgeleider wordt verhit, worden zuurstofmoleculen geadsorbeerd op het oppervlak, waardoor een elektronendepletielaag ontstaat. Dit vormt een potentiaalbarrière die het materiaal zeer weerstandbiedend maakt en stroomgeleiding verhindert.

Bij aanwezigheid van alcohol: De alcoholdamp reageert met de geadsorbeerde zuurstof, waardoor de zuurstofdigtheid op het oppervlak vermindert en de potentiaalbarrière verlaagt. Dit geeft elektronen vrij in het tindioxide, waardoor stroom vrij kan stromen. Hoe meer alcohol aanwezig is, hoe lager de weerstand.

De sensor biedt twee soorten uitgangen:

Voor de DO pin (Digitale Uitvoer):

  • De module bevat een potentiometer om de gevoeligheidsdrempel voor alcoholdetectie aan te passen.
  • Als de alcoholconcentratie de ingestelde drempel overschrijdt, wordt de uitvoerpin van de sensor LOW en gaat de DO-LED aan.
  • Als de alcoholconcentratie onder de drempel ligt, wordt de uitvoerpin van de sensor HIGH en gaat de DO-LED uit.

Voor de AO pin (Analoge Uitvoer):

  • De uitgangsspanning is evenredig aan de alcoholconcentratie.
  • Hogere alcoholdampconcentratie produceert hogere spanning.
  • Lagere alcoholdampconcentratie produceert lagere spanning.
  • De potentiometer beïnvloedt de AO pin waarde niet.

MQ3 Sensor Opwarming en Kalibratie

Opwarmtijd

De MQ3 alcoholsensor moet worden opgewarmd voor gebruik om nauwkeurige metingen te krijgen:

  • Eerste gebruik of na lange opslag (meer dan een maand): Warm deze 24-48 uur op om stabiele en nauwkeurige resultaten te krijgen.
  • Recent gebruik: Vereist slechts 5-10 minuten opwarmen. Aanvankelijk kunnen de metingen hoog zijn, maar ze stabiliseren na korte tijd.

Om de MQ3 sensor op te warmen, sluit u de VCC en GND pinnen aan op een voedingsbron of op de VCC en GND van een Arduino UNO R4, en laat deze aangesloten gedurende de opwarmperiode.

Kalibratie voor Drempelwaarden

Omdat de MQ3 een verwarmingsgestuurde sensor is, kan de kalibratie verschuiven bij langdurige opslag. Om de sensor te kalibreren en drempelwaarden voor uw ademanalyser project te vinden:

  1. Basislijnwaarden vastleggen: Laat de sensor lopen in schone lucht en noteer de analoge metingen (meestal rond 100-150).
  2. Testen met alcohol: Gebruik isopropyl alcohol of handdesinfectant (zorg dat geen vloeistof op de sensor komt - alleen dampen). Knijp de fles bij de sensor om dampen vrij te geven en noteer de metingen (meestal 400-900 afhankelijk van concentratie).
  3. Drempels instellen: Gebaseerd op uw metingen kunt u drempelniveaus definiëren:
  • Nuchter: Onder basislijn + 20 (bijv., < 120)
  • Binnen wettelijke limieten: Tussen basislijn en gematigd niveau (bijv., 120-400)
  • Boven wettelijke limieten: Boven gematigd niveau (bijv., > 400)

Opmerking: Deze waarden variëren afhankelijk van uw specifieke sensor en omgeving. Kalibreer altijd met uw eigen sensor voor gebruik.

Digitale Uitvoer Drempel Aanpassen

Om de drempel voor de DO pin in te stellen met de potentiometer op de module:

  1. Stel de sensor bloot aan alcoholdampen.
  2. Draai de potentiometer rechtsom tot de Status LED aangaat.
  3. Draai de potentiometer linksom tot de LED net uitgaat.
  4. Uw drempel is nu ingesteld.

Bedradingsschema

De MQ3 alcoholsensor module heeft twee uitgangen. U kunt er één of beide gebruiken, afhankelijk van uw behoeften.

MQ3 AlcoholsensorArduino UNO R4
VCC5V
GNDGND
DOPin 2
AOA0
Arduino UNO R4 en MQ3 alcoholsensor bedradingsschema met pinverbindingen

This image is created using Fritzing. Click to enlarge image

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

Arduino UNO R4 Code - Waarde lezen van DO pin

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

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • Sluit het Arduino Uno R4 board aan op de MQ3 alcoholsensor volgens het meegeleverde schema.
  • Sluit het Arduino Uno R4 board aan op uw computer met een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste Arduino Uno R4 board (bijv., Arduino Uno R4 WiFi) en COM-poort.
  • Kopieer de bovenstaande code en open deze in Arduino IDE.
  • Klik op de Upload knop in Arduino IDE om de code naar Arduino UNO R4 te uploaden.
  • Stel de MQ3 sensor bloot aan alcoholdamp (u kunt handdesinfectant of alcohol op een wattenstaafje bij de sensor gebruiken).
  • Controleer het resultaat in de 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  

Opmerking: Als de sensoruitvoer niet de werkelijke alcoholaanwezigheid weergeeft (bijv., detecteert alcohol wanneer er geen is, of detecteert niet wanneer alcohol aanwezig is), moet u de triggerdrempel aanpassen door de potentiometer op de sensormodule te draaien. Draai rechtsom om gevoeligheid te verhogen of linksom om gevoeligheid te verlagen tot de detectie overeenkomt met de werkelijkheid.

Arduino UNO R4 Code - Waarde lezen van AO pin

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

Snelle Stappen

  • Kopieer de bovenstaande code en open deze in Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code naar Arduino UNO R4 te uploaden
  • Stel de MQ3 sensor bloot aan alcoholdamp (u kunt handdesinfectant of alcohol gebruiken)
  • Controleer het resultaat 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  

Gebaseerd op de waarden van DO of AO kunt u drempelniveaus instellen voor alcoholdetectie en een alarm activeren, een waarschuwings-LED inschakelen, of de gegevens loggen voor ademanalyser toepassingen.

Arduino UNO R4 Code - Eenvoudige Ademanalyser met Drempels

Dit geavanceerde voorbeeld gebruikt de analoge uitvoer om het niveau van alcoholintoxicatie te schatten gebaseerd op gekalibreerde drempelwaarden.

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

Snelle Stappen

  • Belangrijk: Voordat u deze code gebruikt, voer de kalibratieschets hierboven uit om de drempelwaarden van uw sensor in schone lucht en met alcohol aanwezig te vinden.
  • Vervang de drempelwaarden in de code (SOBER_THRESHOLD en DRUNK_THRESHOLD) met uw gekalibreerde waarden.
  • Upload de code naar Arduino UNO R4.
  • Test door de sensor bloot te stellen aan alcoholdamp (handdesinfectant of isopropyl alcohol).
  • Controleer het resultaat 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  

Opmerking: Dit is alleen voor educatieve doeleinden. Gebruik dit niet als legale ademanalyser of voor het bepalen van rijgeschiktheid.

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!