Introduction Les capteurs MQ sont des capteurs physicochimiques permettant de détecter une grande variété des gaz, polluants et fumées dans l’atmosphère. Le capteur est constitué par une électronique chauffante dont la résistance électrique varie en fonction de la présence d’un polluant dans l’atmosphère.Avant de fonctionner et délivrer une mesure correcte, certains capteurs doivent être préchauffées. Sommaire masquer 1 Introduction 1.1 Les broches du capteur 2 Afficher les valeurs sur le moniteur série 3 LEDS de détection de gaz 4 Détecteur de fumée Voici un tableau récapitulant tous les différents type de détecteur de gaz MQ, leurs préchauffage afin qu’il soit fonctionnel, les gazs qu’ils peuvent détecter et leurs précisions : Capteur Préchauffage Détection Précision Affichage MQ-2 48h Méthane, Butane, GPL 300 à 10000ppmm MQ-3 24h Alcool, Ethanol 0.05-10mg/L d’alcool MQ-4 48h Méthane 300 à 10000 ppm MQ-5 24h Gaz naturel, GPL 300 à 50000 ppm. MQ-6 48h GPL, butane 200 à 10000 ppm MQ-7 48h Monoxide de carbone 20 à 2000 ppm MQ-8 24h Hydrogène 100 à 10000 ppm MQ-9 + 48h Monoxyde de carbone, méthane 10 à 1 000 ppm de CO, 100 à 10 000 ppm de gaz combustible Pour la suite du cours, nous avons décidé de prendre le capteur MQ-4 comme exemple. Néanmoins tous les circuits que nous présentons fonctionnent pour tous les capteurs présents dans le tableau. En effet, tous les capteurs ont les mêmes broches et se contrôlent de la même manière. Les broches du capteur Voici les broches du capteur de gaz :GND : A brancher à la masse de la carte arduinoDigitalwrite : Le digitalwrite permet de contrôler le capteur de gaz avec un potentiomètre par exemple.AnalogWrite : L’analogwrite permet de lire la valeur du capteur de gazVcc : Doit être connecté au 5V ou 3,3V de l’arduino Afficher les valeurs sur le moniteur série On va maintenant voir comment afficher les mesures de votre capteur de gaz sur le moniteur série : int const Broche_Gaz = A1; // Broche du capteur de gaz void setup(){ Serial.begin(9600); // On initialise le capteur de gaz } void loop(){ int valeur = analogRead(Broche_Gaz); // On lit la valeur du capteur valeur = map(valeur, 300, 750, 0, 100);// On transforme la valeur en pourcentage Serial.print("La valeur est :"); // We affiche la valeur Serial.print(valeur); Serial.println("%"); delay(250); // On fait une pause entre deux lectures de valeur } Voici les valeurs que l’on obtient en approchant le capteur du gaz et en l’éloignant : LEDS de détection de gaz On va maintenant voir comment créer une détection de gaz avec des LEDS. Pour cela on utilise 4 leds : verte, jaune, orange et rouge. Le programme allume d’abord la led Led verte, qui indique qu’il y a pas ou peut de gaz puis allume progressivement les leds selon le pourcentage de gaz mesuré par le capteur.Voici le pourcentage de gaz par rapport à l’allumage des LEDS :LED Verte : Toujours alluméeLED Jaune : 30% de gaz détectéeLED Orange : 50% de gaz détectéeLED Rouge : 80% de gaz détectée int const Broche_Gaz = A1; // Broche pour le gaz // Broche pour les leds int LED_Verte = 7; int LED_Jaune = 6; int LED_Orange = 5; int LED_Rouge = 4; void setup(){ // On branche les leds en sortie pinMode(LED_Verte, OUTPUT); pinMode(LED_Jaune, OUTPUT); pinMode(LED_Orange, OUTPUT); pinMode(LED_Rouge, OUTPUT); } void loop(){ int valeur = analogRead(Broche_Gaz); // On lit la valeur du capteur de gaz valeur = map(valeur, 300, 750, 0, 100); // On transforme la valeur en pourcentage digitalWrite(LED_Verte, HIGH); // On allume la LED Verte digitalWrite(LED_Jaune, valeur >= 30 ? HIGH : LOW); // On allume la led jaune si le pourcentage est supérieur à 30 % digitalWrite(LED_Orange, valeur >= 50 ? HIGH : LOW); // On allume la led orange si le pourcentage est supérieur à 50 % digitalWrite(LED_Rouge, valeur >= 80 ? HIGH : LOW); // On allume la led rouge si le pourcentage est supérieur à 80 % delay(250); // On fait une pause d'un quart de seconde } Détecteur de fumée On va maintenant voir comment créer un réel détecteur de fumée avec un buzzer. Celui-ci va s’allumer quand le capteur détecte plus de 80% de gaz. const int gaz = A0; // Broche du capteur de gaz const int buzzer = A1; // Broche pour le buzzer void setup(){ pinMode(gaz, INPUT); // On initialise le capteur en entrée pour lire sa valeur pinMode(buzzer, OUTPUT); // On initialise le buzzer en sortie pour le contrôler } void loop() { int valeur = analogRead(gaz);// On lit la valeur du buzzer valeur =map(valeur, 300,750,0,100); // On tranforme cette valeur entre 0% et 100% if (valeur > 80){ // Si la valeur est supérieur à 80% tone(buzzer, 494);// On allume le buzzer delay(500); // On attends une demi-seconde noTone(buzzer);// On stop le buzzer } else{ digitalWrite(buzzer, LOW); // On laisse le buzzer éteint } delay(100); }