Ceci est une ancienne révision du document !
Wiki pas à jour le 23/03, dernière entrée le 14/03
07/02:
10/02:
17/02:
24/02:
29/02 :
Afin que le capteur MQ-3 que nous venons de commander puisse déterminer le nombre de grammes d’alcool et pour réduire les variances dues à la température et à l’humidité, nous allons devoir le calibrer et l’isoler dans un compartiment aux gaz connus. La notice du capteur MQ-3 conseille pour la calibration de placer le capteur dans de l’air composé de 0.4mg/L de concentration massique en alcool. Comme pour les autres Ethylotest, nous allons utiliser de l’éthanol donc il nous faut créer un environnement composé à 0.4mg/L d’éthanol. Or là se pose le problème du comment sachant que nous ne possédons pas de solution d’éthanol pur et toute solution aqueuse d’éthanol modifiera l’humidité de l’environnement (le capteur est aussi sensible à l’humidité comme le montre le graphique ci-dessous). Avant de réaliser l’expérience, nous allons continuer nos recherches et essayer de contacter les responsables Chimie au Fablab pour savoir si elles connaissent une solution à ce problème.
01/03 :
02/03:
Problème : faire en sorte que l'éthanol évaporé pour le test ne sorte pas de la bouteille pour ne pas diminuer la concentration dans le récipient.
Nous avons commencé les premiers tests sur le capteur MQ-3, le but était de réaliser des branchements corrects avec l’Arduino Uno et de vérifier s’il y avait bien une réaction lorsque le capteur était en présence d’alcool.
Donc après avoir réalisé le montage, nous avons soufflé dans le capteur pour voir si la valeur changeait bien mais cela nous a aussi permis de mettre en évidence les informations fournies par la notice du capteur, ce dernier est très sensible à la température. En faisant varier notre façon de souffler (souffle chaud, souffle froid), on obtient des valeurs différentes pour la même personne. Cela pourra poser problème par la suite car le MQ-3 chauffe au fil du temps.
Ensuite, nous avons testé le MQ-3 avec de l’alcool à 90° : Cela donne une valeur de « 1024 », l’alcool à 90 étant vraiment concentré, « 1024 » est probablement la limite que peut afficher le capteur.
Dernier détail important à noter est la valeur que l'on a au départ lorsque le capteur est à l'air libre et la sensiblité du capteur va dépendre de la résistance choisie dans le montage. Il semblerait que plus la résistance est faible, plus la valeur stable de départ est basse.
Il est important de noter que le capteur, après contact avec de l'air chargé en alcool, ne revient pas à sa valeur de base tout de suite. Après chronométrage, il s'avère que ce temps d'adaptation est d'environ 30 secondes. Il faudra donc compter au moins 30 secondes entre chaque test, que ce soit pour l'étalonnage ou l'utilisation de l'éthylotest. De plus, il s'avère que la résistance préconisée dans la datasheet du MQ3 n'est pas adapté. 200K Ohms est trop, nous avons une valeur de base d'environ 900 sur la valeur maximale de 1021. Nous avons testé avec des résistances de l'ordre de 15K Ohms, cela laisse une plus grande marge (on commence avec une valeur de base d'environ 400). Cependant le fait de souffler sur le capteur produit un pic non négligeable (que ce soit de l'air froid ou chaud). Le capteur réagit bien à l'alcool (nous l'avons placé devant une bouteille d'alcool à 90°). Lors des tests plus précis, il faudra tester avec différentes résistances afin de voir laquelle est la plus adaptée. Ou alors un système de résistance où l'on peut contrôler cette valeur.
03/03 (Noé Sandoz & Jérémy Touboul):
De plus, nous avons vu qu'avec une résistance de 4.7K Ohms, la valeur de base est de 40 sur 1021, et le capteur semble moins sensible au simple souffle. Voici le code à utiliser
04/03 (Josselin Lecomte):
07/03 (Angelina Soares, Younès Chefou, Josselin Lecomte/ 1h):
// Include library found at // https://docs.google.com/file/d/0Bwrp4uluZCpNdE9oWTY0M3BncTA/edit #include "SevSeg.h" //Create an instance of the object. SevSeg sevseg; void setup() { // Set up pins // Arguments : // First 0 is for common cathode // Following 0 to 11 numbers are for Arduino pins // connected to display in the following order // 1,2,3,4,A,B,C,D,E,F,G,DP sevseg.Begin(0,2,3,4,5,6,7,8,9,10,11,12,13); } void loop() { // Prepare number to display, and dot position // (0 to 3, other number means no dot) sevseg.NewNum(2225,1); // Display number sevseg.PrintOutput(); // To maintain display with this wiring, // we are forced to loop over those commands rapidly }
09/03 (Angelina Soares, Younès Chefou, Josselin Lecomte, Noé Sandoz, Jérémy Touboul, Maxime Sacilé, Alba Espagnon Ibañez / 1h):
12/03 (Angelina Soares, Alba Espagnon)
14/03 (Josselin Lecomte, Alba Espagnon)
#include <Adafruit_NeoPixel.h> // Bibliothèque qui gère l'affichage des leds #ifdef __AVR__ #include <avr/power.h> #endif #define PIN 1 // Pin utilisé par le strip de leds #include "SevSeg.h" // Bibliothèque qui gère l'affichage du 7 segment SevSeg sevseg; // Parametre 1 = nombre de pixels du strip // Parameter 2 = pin Arduino // Parameter 3 = type de pixels Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRB + NEO_KHZ800); int i = 0; int timer = millis(); int j = 0; int r = 0; int g = 255; void setup() { strip.begin(); // Initialise le strip de leds strip.show(); // Eteint tous les pixels sevseg.Begin(0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13); // Déclaration des pins du 7 segment } void loop() { sevseg.NewNum(555, 5); // Entrer le nombre à afficher et la place de la virgule sevseg.PrintOutput(); strip.setPixelColor(i, r, g, 0); // Entrer la led à allumer ainsi que sa couleur en RGB strip.show(); i++; r = r + 35; // Variable qui gère le niveau de rouge pour un dégradé g = g - 35; // Variable qui gère le niveau de vert pour un dégradé while (timer < 200) { // Utilisation de la millis pour ne pas éteindre timer = millis() - j * 200; // le 7 segment à chaque delay sevseg.NewNum(5555, 5); sevseg.PrintOutput(); } timer = timer - 200; j++; }
23/03 (2h)