Alcool Test - MQ-3 Sensor

Arduino

Électronique / Electronic

Range de sortie de 0 à 4V / Output range from 0 to 4V

Le capteur de gaz MQ-3 présente une sensibilité élevée à l'alcool et une bonne résistance aux perturbations causées par l'essence, la fumée et les vapeurs.

Ce capteur permet de détecter l'alcool à différentes concentrations ; son faible coût le rend adapté à diverses applications.

Le matériau sensible du capteur de gaz MQ-3 est le SnO₂, dont la conductivité est faible dans l'air pur.

En présence d'alcool, la conductivité du capteur est proportionnelle à la concentration du gaz.
MQ-3 gas sensor has high sensitivity to alcohol, and has good resistance to disturbances of gasoline, smoke and vapor.

The sensor could be used to detect alcohol with different concentration; it is with low cost and suitable for different application.

Sensitive material of MQ-3 gas sensor is SnO2, which with lower conductivity in clean air.

When the target alcohol gas exists, sensor’s conductivity is proportional to the gas concentration.
R2 = RL


Schematic Diagram


Caractéristiques typiques de la sortie de tension analogique MQ3 (à 5 V VCC)

Configuration initiale et rodage

Mise sous tension :

Connectez le MQ-3 (VCC à 5 V, GND à GND, AO à la broche analogique).

Rodage :

Le capteur doit être alimenté pendant au moins 24 heures (jusqu'à 72 heures pour une précision optimale) afin de stabiliser son élément chauffant interne, d'éliminer les polluants liés à sa fabrication et de garantir des mesures précises et fiables, notamment dans un environnement à air pur.

Sans cette étape, le matériau semi-conducteur du capteur ne fonctionnera pas correctement, ce qui entraînera des mesures erronées.

Pourquoi le rodage est crucial :

Stabilisation :

Le capteur utilise un élément chauffant pour détecter les gaz.

Lors de la première utilisation, une longue période de fonctionnement continu est nécessaire pour atteindre une résistance de base stable.

Élimination des contaminants :

Les capteurs MQ contiennent souvent des polluants issus du processus de fabrication qui doivent être éliminés par combustion.

Calibrage :

Pour calibrer correctement le capteur à l’air pur, un rodage est indispensable afin de garantir la précision de la résistance de base.

Précision :

Négliger cette étape entraîne des données erronées.

Temps de préchauffage :

Outre le rodage initial, le capteur nécessite un temps de préchauffage de 2 minutes avant chaque utilisation.

Il est recommandé de faire fonctionner le capteur sous 5 V pendant au moins 48 heures, notamment s’il a été stocké pendant une période prolongée, afin d’assurer son bon fonctionnement.

Vérification initiale :

À l’air pur, la lecture analogique doit se stabiliser.

Ensuite:

Lors des tests en laboratoire, le capteur nécessite 5 à 10 minutes pour atteindre sa température de fonctionnement optimale.

Pendant cette phase de préchauffage, la valeur affichée par le capteur sera élevée, puis diminuera progressivement jusqu'à stabilisation.

Concentration d'alcool (approx.)

Gamme de détection : Alcool

0.04 mg/L à 4 mg/l
(approprié pour les alcootests).

Tension de sortie

Air pur / Absence d'alcool
~0,1 V - 0,3 V : Valeur de base en air pur

Faible concentration
~0,4 V - 0,9 V : Présence mineure d'alcool

Point d'étalonnage standard
~1 V - 2,5 V

Taux d'alcoolémie élevé.
Forte concentration / Éthylotest
~3,0 V - 4,0 V et plus
Typical MQ3 Analog Voltage Output Characteristics
(at 5V VCC)

Initial Setup and Burn-in

Power On:

Connect the MQ-3 (VCC to 5V, GND to GND, AO to Analog Pin).

Burn-in:

The sensor must be powered on for at least 24 hours (up to 72 hours for high accuracy) to stabilize its internal heating element clean off manufacturing pollutants, and ensure accurate, consistent readings, specifically in a clean air environment.

Without this process, the sensor's semiconductor material will not function properly, resulting in false readings.

Why Burn-In is Crucial:

Stabilization:

The sensor uses a heater to detect gases.

Initial use requires a long, continuous power-on period to reach a stable baseline resistance.

Removing Contaminants:

MQ sensors often come with pollutants from the manufacturing process that must be burned off.

Calibration Requirement:

To properly calibrate the sensor in clean air, it must be burned in to ensure the base resistance is accurate.

Accuracy:

Skipping this step leads to unreliable data.

Warm-up:

In addition to the initial burn-in, the sensor needs a 2-minute warm-up time before each use. 

It is recommended to run the sensor at 5V for at least 48 hours, especially if it has been stored for some time, to ensure it properly functions.

Initial Check:

In clean air, the analog reading should stabilize.

Afterwards:

When bench-top testing, the sensor will take 5-10 minutes to fully warm up.

During the warm-up time, the sensor will read high and slowly decrease until the reading stabilizes.

Alcohol Concentration (approx.)

Detection range: Alcohol

0.04 mg/L to 4 mg/L
(suitable for breathalyzer tests).

Output Voltage

Clean Air / Zero Alcohol
~0.1V - 0.3V Baseline in clean air

Low Concentration
~0.4V - 0.9V Minor alcohol presence

Standard calibration point
~1V - 2.5V

High intoxication level
High Concentration / Breathalyzer
~3.0V - 4.0V+
Le potentiomètre sur le module capteur d'alcool MQ-3 ajuste la sensibilité de la sortie numérique (D0) en définissant un seuil de détection.

Tournez dans le sens horaire pour augmenter la sensibilité (déclenchement plus facile) et antihoraire pour la diminuer.

Le réglage optimal se fait en présence d'alcool, en tournant le potentiomètre jusqu'à ce que la LED de statut s'allume (Dout Led) (sortie basse/LOW).

Procédure de réglage (Calibration) :

Préchauffage :

Laissez le capteur sous tension (5V) pendant au moins 20 secondes, voire 24 heures pour une première utilisation afin d'obtenir des lectures stables.

Réglage du Seuil (D0) :

Exposez le capteur à la concentration d'alcool souhaitée pour l'alarme.

Tournez le potentiomètre dans le sens horaire jusqu'à ce que la LED de statut (indicatrice de seuil) s'allume.

Tournez légèrement en sens inverse jusqu'à ce que la LED s'éteigne tout juste.

Résultat :

Le capteur enverra un signal numérique "LOW" (0) si la concentration dépasse ce seuil, et "HIGH" (1) en dessous.
The potentiometer on the MQ-3 alcohol sensor module adjusts the sensitivity of the digital output (D0) by setting a detection threshold.

Turn clockwise to increase sensitivity (easier triggering) and counterclockwise to decrease it.

Optimal adjustment is achieved in the presence of alcohol by turning the potentiometer until the status LED illuminates (Dout LED) (low output).

Calibration Procedure:

Warm-up:

Leave the sensor powered (5V) for at least 20 seconds, or up to 24 hours for initial use, to obtain stable readings.

Setting the Threshold (D0):

Expose the sensor to the desired alcohol concentration for the alarm.

Turn the potentiometer clockwise until the status LED (threshold indicator) illuminates.

Turn slightly in the opposite direction until the LED just turns off.

Result:

The sensor will send a digital signal of "LOW" (0) if the concentration exceeds this threshold, and "HIGH" (1) if it falls below.
La sortie numérique (DO) du capteur MQ-3 peut piloter directement un transistor NPN (comme un BC547 ou un 2N2222) pour commander des dispositifs externes tels que des relais, des avertisseurs sonores ou des LED.

Le module fonctionne sous 5 V et délivre un signal HAUT (5 V) en air pur et un signal BAS (0 V) en présence d'alcool, permettant ainsi un déclenchement simple, direct ou par inversion logique du transistor.

Points clés concernant le pilotage des transistors :

Inversion logique :

La sortie numérique passe à l'état BAS (0 V) en présence d'alcool et à l'état HAUT (5 V) dans le cas contraire.

Déclenchement :

Pour déclencher un transistor en présence d'alcool, un transistor PNP (par exemple, un BC557) ou un inverseur peut être nécessaire. Il est également possible d'utiliser l'inversion logique dans la conception du logiciel ou du circuit.

Protection du circuit :

Il est recommandé d'utiliser une résistance de base (par exemple, 1 kΩ ou 10 kΩ) entre la broche DO du capteur et la base du transistor afin de protéger ce dernier.

Sensibilité :

Le seuil de la sortie numérique peut être ajusté à l'aide du potentiomètre intégré.
The MQ-3 sensor digital output (DO) can directly drive a NPN transistor (like a BC547 or 2N2222) to control external devices such as relays, buzzers, or LEDs.

The module operates at 5V, outputting a HIGH (5V) signal in clean air and a LOW (0V) signal when alcohol is detected, allowing for easy, direct, or logic-inverted transistor triggering.

Key Considerations for Driving Transistors:

Logic Inversion:

The digital output goes LOW (0V) when alcohol is detected, and HIGH (5V) otherwise.

Triggering:

To trigger a transistor when alcohol is detected, a PNP transistor (e.g., BC557) or an inverter may be required, or simply use the inverted logic in software/circuit design.

Circuit Protection:

A base resistor (e.g., 1kΩ or 10kΩ) is recommended between the sensor's D0 pin and the transistor base to protect the sensor.

Sensitivity:

The threshold for the digital output can be adjusted using the on-board potentiometer.
Le capteur MQ-3, lorsqu'il est configuré avec une résistance de charge RL de 1kΩ , est adapté à la détection des vapeurs d'alcool dans l'haleine.

Cette configuration permet d'obtenir une plage de tension de sortie idéale pour couvrir les concentrations d'alcool typiques rencontrées dans l'air expiré (0,04 à 4 mg/L).

Une résistance de charge plus faible (comme 1k) réduit la sensibilité à saturation pour des concentrations élevées, permettant de mieux distinguer les niveaux d'alcool dans l'haleine.

En résumé, RL = 1k est un choix de conception courant pour optimiser le capteur pour les éthylotests personnels.
The MQ-3 sensor, when configured with a 1kΩ load resistance (RL), is suitable for detecting alcohol vapors in breath.

This configuration provides an ideal output voltage range to cover typical alcohol concentrations found in exhaled air (0.04 to 4 mg/L).

A lower load resistance (such as 1kΩ) reduces saturation sensitivity at higher concentrations, allowing for better differentiation of alcohol levels in breath.

In summary, RL = 1kΩ is a common design choice for optimizing the sensor for personal breathalyzers.
Compression de la sensibilité :

Bien que le constructeur suggère souvent 10k pour détecter des traces infimes (jusqu'à 10 mg/L en limite de détection théorique), une telle valeur saturerait presque immédiatement en soufflant directement dessus.

Adaptation à l'haleine :

En abaissant à 1k, on diminue la sensibilité globale.

Cela permet de "zoomer" sur la plage 0,05 - 4 mg/L, ce qui est idéal puisque la limite légale (ex: 0,25 mg/L d'air expiré en France) se situe pile dans cette zone de mesure stable.

Résolution :

Avec 1k, la variation de tension entre un sujet sobre et un sujet ayant consommé de l'alcool est plus étalée sur l'échelle 0-5V, facilitant la lecture par un microcontrôleur comme un Arduino.  

Avec une résistance de charge de 1k, la tension de sortie
du MQ-3 s'étalonne généralement sur une plage de 0 à 4 V pour couvrir les concentrations d'alcool de l'haleine.

Cette configuration est particulièrement efficace car elle laisse une marge de sécurité avant la saturation du signal (à
5V), évitant ainsi l'écrêtage des données lors de pics de concentration ou de souffles très chargés.

Pourquoi s'arrêter à 4 V ?

Limiter la plage utile à 4V plutôt que d'utiliser toute l'échelle jusqu'à présente deux avantages techniques majeurs :

Linéarité relative :

La réponse du capteur est logarithmique.

En restant sous les 5V, on évite la zone où la courbe de sensibilité s'aplatit totalement, ce qui rend la conversion numérique plus précise.

Protection du signal :

Cela permet de détecter si le capteur est en surconcentration ou s'il y a un pic de tension parasite sans perdre la lecture réelle de la valeur maximale.
Sensitivity compression:

Although the manufacturer often suggests 10kΩ for detecting minute traces (up to 10 mg/L at the theoretical detection limit), such a value would saturate almost immediately if blown directly onto it.

Breath adaptation:

Lowering the sensitivity to 1kΩ reduces the overall sensitivity.

This allows the device to "zoom" in on the 0.05–4 mg/L range, which is ideal since the legal limit (e.g., 0.25 mg/L of exhaled air in France) falls precisely within this stable measurement range.

Resolution:

At 1kΩ, the voltage variation between a sober subject and a subject who has consumed alcohol is spread more evenly across the 0–5V scale, making it easier for a microcontroller like an Arduino to read the reading.

With a 1kΩ load resistor, the output voltage of the MQ-3 is typically calibrated to a range of 0 to 4V to cover breath alcohol concentrations.

This configuration is particularly effective because it provides a safety margin before signal saturation (at 5V), thus preventing data clipping during concentration peaks or highly concentrated breath samples.

Why stop at 4V?

Limiting the usable range to 4V, rather than using the full range as previously stated, offers two major technical advantages:

Relative linearity:

The sensor's response is logarithmic.

By remaining below 5V, we avoid the region where the sensitivity curve flattens completely, resulting in more accurate digital conversion.

Signal protection:

This allows detection of over-concentration or parasitic voltage spikes without losing the actual reading of the maximum value.
Circuit avec un voltmètre
Circuit with a voltmeter
      

Circuit avec un LM3915

LM3914 affiche une échelle linéaire.

LM3915 affiche une échelle logarithmique.
Circuit with an LM3915

LM3914 displays a linear scale

LM3915 displays Log scale

Arduino Circuit de base
Arduino Basic Circuit
MQ-3_02.ino

MQ-3_03.ino

Arduino 10 LED

MQ-3_Led.ino


Arduino LCD
MQ-3.ino

Taux d'alcoolémie BAC / Blood Alcohol Concentration BAC

Vapeur Alcool Air -> Alcool dans le sang

Alcohol vapor Air -> Alcohol in the blood

g/L = mg/L * 2

g / 100 mL = g/L / 10

mg/L (Air) g/dL (Sang / BAC) État typique Typical state
0.10 0.02 Début d'effet
Onset of effect
0.25 0.05 Limite légale (France)
Legal limit (France)
0.40 0.08 Limite légale (QC/USA/UK)
Legal limit (QC/USA/UK)

0.50
0.10 Ivresse manifeste Obvious intoxication

Taux d'alcoolémie BAC / Blood Alcohol Concentration BAC

Femme / Women

   

Taux d'alcoolémie BAC / Blood Alcohol Concentration BAC

Homme / Men

MQ-3 Formules / Formula

R0 = Rs dans un environnement à air pur

Rs/R0 = 1     mg/L = 0

Comme R0 est la résistance du capteur dans l'air pur, alors par définition, dans l'air pur, Rs = R0, ce qui donne un ratio de Rs/R0 = 1.

En utilisant la formule standard :

mg/L = a x (Rs/R0)^b

On observe qu'au lieu d'afficher 0 mg/L, le capteur renvoie la valeur de la constante a.

Application de la correction de décalage

Pour corriger ce comportement et forcer la courbe à passer par l'origine (1,0) dans le repère du ratio de résistance, on soustrait la valeur de décalage à l'ensemble de l'équation.

 Cela permet de compenser la lecture de base du capteur dans un environnement sans gaz cible.

mg/L = a x (Rs/R0)^b - a

L'ajustement de la formule en mg/L = a x (Rs/R0)^b - a est une technique de calibration nécessaire lorsque R0 est mesuré dans l'air pur.

Cette soustraction de l'offset a assure que la concentration calculée est de 0 mg/L lorsque le ratio est égal à 1, améliorant ainsi la précision des mesures à faible concentration.

R0 = Rs in a clean air environment

Rs/R0 = 1 mg/L = 0

Since R0 is the sensor's resistance in clean air, then by definition, in clean air, Rs = R0, giving a ratio of Rs/R0 = 1.
Using the standard formula:

mg/L = a x (Rs/R0)^b

We observe that instead of displaying 0 mg/L, the sensor returns the value of the constant a.

Applying the offset correction

To correct this behavior and force the curve to pass through the origin (1,0) in the resistance ratio coordinate system, we subtract the offset value from the entire equation.

This compensates for the sensor's basic reading in an environment without a target gas.

mg/L = a x (Rs/R0)^b - a

Adjusting the formula to mg/L = a x (Rs/R0)^b - a is a necessary calibration technique when R0 is measured in pure air.

This subtraction of the offset a ensures that the calculated concentration is 0 mg/L when the ratio equals 1, thus improving the accuracy of measurements at low concentrations.

R0 = 15,026 = 312 mV = 0,312 V 

RL = 1K

Rs = ((Vc x RL) / Vout) - RL

Rs = (Vc / Vout) - RL

Rs = (5 / Vout) - 1

mg/L = a x (Rs/R0)^b - a

a = Vout -> R0 = 0,312

b =log10 (4 mg/L / a) / log10(Rs/R0) -> Rs/R0 -> pour/for Vout -> 4 V = 0,0162

b =log10 (4/0,312) / log10(0,0162) = -0,6228

RS/R0 -> mg/L