Arduino UNO R4 - Capteur d'alcool MQ-3

Ce guide vous montrera comment utiliser l'Arduino UNO R4 et le capteur d’alcool MQ-3 pour détecter la vapeur d’alcool et l’éthanol dans l’air. Ce capteur est couramment utilisé dans des projets d’éthylotest et de systèmes de détection d’alcool.

Arduino UNO R4 avec module capteur de gaz d’alcool MQ-3

À propos du capteur d’alcool MQ3

Le capteur d’alcool MQ3 est un capteur MOS (semi-conducteur à oxyde métallique), également connu sous le nom de Chemiresistor, car il détecte l’alcool en fonction du changement de résistance du matériau sensible lorsqu’il est exposé à la vapeur d’alcool. Il est spécialement conçu pour détecter la vapeur d’alcool (éthanol) dans l’air et il est extrêmement sensible aux concentrations d’alcool.

Le capteur utilise un revêtement en dioxyde d'étain (SnO2) sur un substrat céramique en oxyde d'aluminium en tant qu'élément de détection. Lorsqu'il est chauffé, le SnO2 devient sensible à l'alcool. Le capteur est recouvert d'un treillis en acier inoxydable (réseau anti-explosion) qui protège l'élément chauffant interne et filtre les particules en suspension tout en permettant aux éléments gazeux d'atteindre la chambre de détection.

Les applications courantes incluent des éthylotests, des systèmes de détection de la conduite en état d’ivresse, des alarmes de présence d’alcool et des projets nécessitant de surveiller la concentration d’alcool dans l’environnement.

Spécifications techniques

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

Que signifie ppm ? Les parties par million (ppm) constituent l'unité de mesure de la concentration des gaz. Par exemple, 500 ppm d'alcool signifie que sur un million de molécules de gaz, 500 sont de l'alcool et 999 500 sont d'autres gaz.

Brochage

Le capteur d’alcool MQ3 possède quatre broches :

  • Broche VCC : Connectez cette broche au VCC (5V).
  • Broche GND : Connectez cette broche à GND (0V).
  • Broche DO : Il s'agit d'une broche de sortie numérique. Elle affiche BAS lorsque de l'alcool est détecté et HAUT sinon. Vous pouvez ajuster le seuil de détection d'alcool à l'aide du potentiomètre intégré.
  • Broche AO : Il s'agit d'une broche de sortie analogique. Elle produit une tension qui varie en fonction de la concentration d'alcool. Une concentration d'alcool plus élevée entraîne une augmentation de la tension.
Diagramme de brochage du module de capteur d'alcool MQ-3

Il dispose également de deux voyants LED :

  • Une LED PWR indique que l'alimentation est sous tension.
  • Une LED DO indique l'état de détection d'alcool selon la valeur de la broche DO : elle s'allume lorsque l'alcool est détecté et s'éteint lorsqu'aucun alcool n'est détecté.

Comment cela fonctionne

Le capteur MQ3 fonctionne sur le principe des variations de la résistance électrique de l'élément en dioxyde d'étain (SnO2) :

Dans l'air pur : Lorsque le semi-conducteur SnO2 est chauffé, des molécules d'oxygène sont adsorbées à la surface, créant une couche de déplétion électronique. Cela forme une barrière de potentiel qui rend le matériau fortement résistant, empêchant le passage du courant.

En présence d'alcool : La vapeur d'alcool réagit avec l'oxygène adsorbé, réduisant la densité d'oxygène à la surface et abaissant la barrière de potentiel. Cela libère des électrons dans le dioxyde d'étain, permettant au courant de circuler librement. Plus il y a d'alcool, plus la résistance est faible.

Le capteur fournit deux types de sorties :

Pour la borne DO (Sortie numérique) :

  • Le module comprend un potentiomètre pour régler le seuil de sensibilité à la détection d’alcool.
  • Si la concentration d’alcool dépasse le seuil défini, la broche de sortie du capteur passe à bas et la LED DO s’allume.
  • Si la concentration d’alcool est inférieure au seuil, la broche de sortie du capteur passe à haut et la LED DO s’éteint.

Pour la broche AO (sortie analogique) :

  • La tension de sortie est proportionnelle à la concentration d'alcool.
  • Une concentration plus élevée de vapeur d'alcool produit une tension plus élevée.
  • Une concentration plus faible de vapeur d'alcool produit une tension plus faible.
  • Le potentiomètre n'affecte pas la valeur de la broche AO.

Préchauffage et étalonnage du capteur MQ-3

Temps d'échauffement

Le capteur d’alcool MQ-3 doit être chauffé avant utilisation pour obtenir des lectures précises :

  • Première utilisation ou après un stockage prolongé (plus d'un mois) : Laissez-le se réchauffer pendant 24 à 48 heures pour obtenir des résultats stables et précis.
  • Utilisation récente : Il faut seulement 5 à 10 minutes pour le réchauffer. Au début, les lectures peuvent être élevées, mais elles se stabiliseront après un court instant.

Pour chauffer le capteur MQ3, connectez ses broches VCC et GND à une source d'alimentation ou au VCC et GND d'un Arduino UNO R4, et laissez-le connecté pendant la période de préchauffage.

Calibration des valeurs seuils

Comme le MQ-3 est un capteur alimenté par un élément chauffant, l'étalonnage peut dériver s'il est laissé en stockage pendant une longue période. Pour calibrer le capteur et trouver les valeurs seuils pour votre projet d'éthylotest:

  1. Enregistrer les valeurs de référence : Faites fonctionner le capteur dans de l'air propre et enregistrez les lectures analogiques (généralement autour de 100-150).
  2. Test avec de l'alcool : Utilisez de l'alcool isopropylique ou du gel hydroalcoolique (ne mettez pas de liquide sur le capteur - uniquement des vapeurs). Pressez le flacon près du capteur pour libérer les vapeurs et enregistrer les lectures (généralement entre 400 et 900 selon la concentration).
  3. Définir les seuils : En fonction de vos lectures, vous pouvez définir des niveaux seuils :
  • Sobre : En dessous de la valeur de référence + 20 (par ex, < 120)
  • Dans les limites légales : Entre la valeur de référence et le niveau modéré (par ex, 120-400)
  • Au-dessus des limites légales : Au-delà du niveau modéré (par ex, > 400)

Remarque : Ces valeurs varient en fonction de votre capteur et de votre environnement. Calibrez toujours votre propre capteur avant utilisation.

Réglage du seuil de sortie numérique

Pour régler le seuil de la broche DO à l’aide du potentiomètre intégré :

  1. Exposez le capteur aux vapeurs d'alcool.
  2. Tournez le potentiomètre dans le sens des aiguilles d'une montre jusqu'à ce que la LED d'état s'allume.
  3. Tournez le potentiomètre dans le sens inverse des aiguilles d'une montre jusqu'à ce que la LED s'éteigne.
  4. Votre seuil est maintenant réglé.

Diagramme de câblage

Le module du capteur d’alcool MQ3 possède deux sorties. Vous pouvez en utiliser une ou les deux, selon vos besoins.

MQ3 Alcohol SensorArduino UNO R4
VCC5V
GNDGND
DOPin 2
AOA0
Schéma de câblage Arduino UNO R4 et capteur d'alcool MQ-3 montrant les connexions des broches

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

Voir Comment alimenter l'Arduino UNO R4..

Code Arduino UNO R4 - Lire la valeur de la broche DO

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-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"); }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est la première fois que vous utilisez l'Arduino Uno R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
  • Connectez la carte Arduino Uno R4 au capteur d'alcool MQ3 selon le schéma fourni.
  • Connectez la carte Arduino Uno R4 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Uno R4 appropriée (par exemple, Arduino Uno R4 WiFi) et le port COM.
  • Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur Arduino UNO R4.
  • Exposez le capteur MQ3 à la vapeur d'alcool (vous pouvez utiliser du gel hydroalcoolique ou de l'alcool à friction sur une boule de coton près du capteur).
  • Vérifiez le résultat dans le Moniteur série.
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  

Note : Si la sortie du capteur ne reflète pas la présence réelle d'alcool (par exemple, elle détecte de l'alcool alors qu'il n'y en a pas, ou ne détecte pas lorsqu'il y en a), vous devez ajuster le seuil de déclenchement en tournant le potentiomètre sur le module du capteur. Tournez-le dans le sens des aiguilles d'une montre pour augmenter la sensibilité ou dans le sens inverse pour diminuer la sensibilité jusqu'à ce que la détection corresponde à la réalité.

Arduino UNO R4 Code - Lire la valeur de la broche AO

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-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); }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers l'Arduino UNO R4
  • Exposez le capteur MQ3 à la vapeur d'alcool (vous pouvez utiliser du gel hydroalcoolique ou de l'alcool isopropylique)
  • Vérifiez le résultat sur 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  

Sur la base des valeurs issues du DO ou de l'AO, vous pouvez définir des seuils de détection d'alcool et déclencher une alarme, activer une LED d'avertissement ou enregistrer les données pour des applications d'éthylotest.

Code Arduino UNO R4 - Alcootest simple avec seuils

Cet exemple avancé utilise la sortie analogique pour estimer le niveau d'alcoolémie en se basant sur des seuils calibrés.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 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-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 }

Étapes rapides

  • Important : Avant d'utiliser ce code, exécutez le sketch de calibration ci-dessus pour trouver les valeurs seuil de votre capteur dans l'air propre et en présence d'alcool.
  • Remplacez les valeurs seuil dans le code (SOBER_THRESHOLD et DRUNK_THRESHOLD) par vos valeurs calibrées.
  • Téléversez le code sur Arduino UNO R4.
  • Testez en exposant le capteur à la vapeur d'alcool (gel désinfectant pour les mains ou alcool isopropylique).
  • Vérifiez le résultat sur 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  

Remarque : Ceci est destiné à des fins éducatives uniquement. N'en faites pas usage comme éthylotest légal ni pour déterminer l'aptitude à la conduite.

Vidéo

Références de fonctions

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