Arduino Mega - Capteur d'alcool MQ3

Ce guide vous accompagne dans l'intégration du capteur d'alcool MQ3 avec l'Arduino Mega pour détecter et mesurer la vapeur d'alcool et la concentration d'éthanol. Le capteur MQ3 est couramment déployé dans les projets d'analyseur d'haleine, les systèmes d'alarme d'alcool et les applications d'évaluation de la qualité de l'air.

Dans ce tutoriel, vous apprendrez :

Arduino Mega avec module capteur de gaz alcool MQ3

Matériel requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Capteur d'alcool MQ3
1×Fils de connexion
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur d'alcool MQ3

Le MQ3 fonctionne comme un Chémirésisteur à semi-conducteur d'oxyde métallique (MOS), identifiant l'alcool en mesurant les variations de résistance dans son matériau sensible. Conçu pour la détection de vapeur d'éthanol, ce capteur offre des performances fiables sur différents niveaux de concentration.

L'élément de détection du capteur est constitué de matériau de dioxyde d'étain (SnO2) stratifié sur un substrat céramique fait d'oxyde d'aluminium. Lorsqu'il est chauffé, la couche SnO2 devient chimiquement réactive aux molécules d'alcool dans l'air ambiant. Un maillage protecteur en acier inoxydable protège les composants internes tout en permettant aux molécules de gaz d'atteindre la chambre de détection.

Les applications courantes incluent les dispositifs d'éthylotest DIY, les systèmes de détection d'alcoolémie, les alarmes de vapeur d'alcool et la surveillance des niveaux d'alcool atmosphérique.

Spécifications techniques

  • Tension d'alimentation : 5V DC
  • Résistance de charge : 200 KΩ
  • Résistance du chauffage : 33Ω ± 5%
  • Consommation de chauffage : < 800mW
  • Résistance de détection : 1 MΩ – 8 MΩ
  • Plage de détection : 25 – 500 ppm (parties par million)
  • Temps de préchauffage : 24-48 heures pour la première utilisation

Qu'est-ce que le ppm ? Les parties par million (ppm) décrivent la proportion de molécules de gaz cible par rapport au total des molécules de gaz. Par exemple, 500 ppm signifie qu'il y a 500 molécules d'alcool dans chaque 1 000 000 molécules de gaz, tandis que les 999 500 autres molécules sont des composants de l'air ambiant.

Brochage

Le module capteur MQ3 dispose de quatre connexions de broches :

  • Broche VCC : Connecter à l'alimentation +5V.
  • Broche GND : Connecter à la masse (0V).
  • Broche DO : La sortie numérique passe à LOW lorsque l'alcool dépasse le seuil, HIGH lorsqu'elle est en dessous du seuil. Ajustez le seuil en utilisant le potentiomètre intégré.
  • Broche AO : La sortie analogique fournit une tension proportionnelle à la concentration d'alcool. Des niveaux d'alcool plus élevés produisent des tensions plus élevées.
Schéma de brochage du module capteur d'alcool MQ3

Un retour visuel est fourni par deux LED intégrées :

  • PWR-LED : S'allume lorsque le module reçoit de l'alimentation.
  • DO-LED : Reflète l'état de la sortie numérique—s'illumine lors de la détection d'alcool, reste éteinte sinon.

Comment ça fonctionne

Le MQ3 fonctionne grâce aux changements de résistance dans son matériau semi-conducteur de dioxyde d'étain (SnO2) :

Dans l'air propre : La surface SnO2 chauffée attire les molécules d'oxygène atmosphérique, qui piègent les électrons et forment une couche d'appauvrissement. Ce piégeage d'électrons crée une barrière de conduction, maintenant une résistance électrique élevée.

Lorsqu'exposé à l'alcool : Les molécules d'alcool réagissent avec l'oxygène de surface, libérant les électrons piégés dans le réseau de dioxyde d'étain. Cette libération d'électrons augmente considérablement la conductivité—des concentrations d'alcool plus élevées résultent en des valeurs de résistance plus faibles.

Le capteur fournit deux modes de sortie distincts :

Sortie numérique (broche DO) :

  • Le niveau de seuil est ajustable via le potentiomètre de réglage intégré.
  • La détection au-dessus du seuil fait passer DO à LOW et allume la LED indicatrice.
  • Les lectures en dessous du seuil maintiennent DO à HIGH avec la LED éteinte.

Sortie analogique (broche AO) :

  • La tension de sortie change proportionnellement avec la concentration d'alcool.
  • Vapeur d'alcool plus élevée = tension de sortie augmentée.
  • Vapeur d'alcool plus faible = tension de sortie diminuée.
  • Note : Le potentiomètre de réglage affecte seulement le seuil numérique, pas le signal analogique.

Préchauffage et calibration

Exigences de préchauffage

Pour un fonctionnement précis, le capteur MQ3 nécessite un chauffage adéquat :

  • Première utilisation ou après un long stockage (30+ jours) : Faites fonctionner le chauffage en continu pendant 24-48 heures pour stabiliser le capteur et obtenir des lectures cohérentes.
  • Fonctionnement de routine : Une période de préchauffage rapide de 5-10 minutes est suffisante. Les premières lectures peuvent montrer des valeurs élevées mais se stabiliseront à la normale en quelques minutes.

Préchauffez le capteur en connectant ses broches VCC et GND à 5V et à la masse respectivement—soit par une alimentation soit directement depuis les broches d'alimentation de votre Arduino Mega.

Trouver vos valeurs seuils

Les capteurs de gaz basés sur chauffage comme le MQ3 peuvent dériver après des périodes de stockage. Pour les implémentations d'éthylotest, déterminez les valeurs seuils appropriées grâce à ce processus de calibration :

  1. Enregistrez la ligne de base dans l'air propre : Faites fonctionner le capteur dans l'air frais sans alcool présent. Notez la lecture analogique (généralement 100-150).
  2. Testez avec de la vapeur d'alcool : Amenez de l'alcool isopropylique ou du désinfectant pour les mains près du capteur (ne pas faire de contact), permettant à la vapeur d'atteindre le détecteur. Enregistrez les valeurs élevées (habituellement 400-900 selon la force de la vapeur).
  3. Définissez les plages de détection : Basé sur vos mesures, créez des zones seuils :
  • État sobre : Valeurs sous ligne de base + 20 (par exemple : < 120)
  • Niveau modéré : Valeurs dans la plage moyenne (par exemple : 120-400)
  • Niveau élevé : Valeurs au-dessus de la limite modérée (par exemple : > 400)

Note : Chaque unité de capteur et environnement d'exploitation produit des valeurs différentes. Calibrez avec votre matériel réel avant d'utiliser dans toute application.

Réglage du seuil numérique

Ajustez le point de déclenchement de la broche DO en utilisant le potentiomètre du module :

  1. Exposez le capteur à la vapeur d'alcool.
  2. Tournez le potentiomètre dans le sens horaire jusqu'à ce que la LED s'allume.
  3. Tournez lentement dans le sens antihoraire jusqu'à ce que la LED s'éteigne juste.
  4. Votre seuil numérique est maintenant calibré.

Schéma de câblage

Le module MQ3 fournit des sorties numériques et analogiques. Utilisez soit une sortie individuellement soit les deux ensemble selon les besoins de votre projet.

Capteur d'alcool MQ3Arduino Mega
VCC5V
GNDGND
DO19
AOA0
Schéma de câblage Arduino Mega et capteur d'alcool MQ3 montrant les connexions de broches

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code Arduino Mega - Lecture de sortie numérique

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-mq3-alcohol-sensor */ #define PIN_DO 19 // The Arduino Mega pin connected to the DO pin of the MQ3 sensor void setup() { // Initialize serial communication Serial.begin(9600); // Initialize the Arduino Mega 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); }

Étapes rapides

  • Copiez le code dans Arduino IDE
  • Cliquez sur le bouton Upload pour transférer le code vers l'Arduino Mega
  • Placez une source de vapeur d'alcool près du capteur (utilisez du désinfectant pour les mains ou de l'alcool à friction sur un coton-tige)
  • Vérifiez le moniteur série pour les résultats
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  

Conseil : Si les résultats de détection ne correspondent pas à la réalité (faux déclenchements ou détections manquées), ajustez le potentiomètre sur le module. Tournez dans le sens horaire pour augmenter la sensibilité ou dans le sens antihoraire pour la diminuer jusqu'à ce que la détection devienne précise.

Code Arduino Mega - Lecture de sortie analogique

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-mq3-alcohol-sensor */ #define PIN_AO A0 // The Arduino Mega 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); }

Étapes rapides

  • Collez le code dans Arduino IDE
  • Cliquez sur le bouton Upload pour programmer l'Arduino Mega
  • Exposez le capteur à la vapeur d'alcool (vapeurs de désinfectant pour les mains ou d'alcool isopropylique)
  • Surveillez les valeurs changeantes dans le moniteur série
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  

Avec les sorties numériques et analogiques disponibles, vous pouvez implémenter une logique basée sur des seuils pour déclencher des alarmes, activer des indicateurs visuels ou enregistrer des données pour des applications d'éthylotest.

Code Arduino Mega - Éthylotest avec détection de seuil

Cet exemple montre comment interpréter les lectures analogiques en utilisant des seuils calibrés pour estimer les niveaux de consommation d'alcool.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-mega/arduino-mega-mq3-alcohol-sensor */ #define PIN_AO A0 // The Arduino Mega 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 }

Étapes rapides

  • Important : Calibrez d'abord votre capteur en utilisant l'exemple de lecture analogique pour déterminer les valeurs seuils appropriées pour votre capteur spécifique.
  • Modifiez les constantes SOBER_THRESHOLD et DRUNK_THRESHOLD dans le code avec vos valeurs calibrées.
  • Téléchargez le code mis à jour vers l'Arduino Mega
  • Testez en introduisant de la vapeur d'alcool (vapeur d'alcool isopropylique ou de désinfectant pour les mains)
  • Observez les mises à jour de statut dans le moniteur série
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  

Avertissement : Ceci est un projet éducatif uniquement. N'utilisez pas cet appareil comme éthylotest officiel ou pour déterminer la sécurité de conduite.

Vidéo

Références de fonctions

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !