Capteur CO pour parking souterrain

Bonjour à vous,

Je suis en terminale en STI2D et j'ai un projet pour le bac qui consiste à programmer un capteur de Monoxyde de carbone avec arduino pour déclencher un ventilateur dans un parking souterrain

J'ai choisi le capteur de gaz MQ7 : http://snootlab.com/sparkfun/668-capteur-de-monoxyde-de-carbone-mq-7-fr.html
Mais ayant un professeur qui nous explique très peu j'ai vraiment du mal, il me demande de convertir ma valeur de ppm ( 200ppm ) en une tension.

Auriez vous des pistes ou des exemples d'algorithme ?

Merci à vous :slight_smile:

Bonjour,
Il faut que tu réfléchisses un peu :wink:
As-tu regardé la fiche technique de ton capteur ?

Imaginons un peu les choses.
Tu as 200 bonbons que tu veux convertir en tension par exemple 0.5 V
Combien vaut 1 bonbon en terme de tension ?
Combien valent 2000 bonbons ?
Tu peux aussi prendre le problème dans l'autre sens
Combien de bonbons pour une tension de 1V ?

A mon époque cela s'appelait une règle de trois, de nos jours je ne sais plus, ils ont l'art et la manière de compliquer les choses.
[HS] Le dernier en date le prélicat[/HS]

Tu verras que l'exemple des bonbons n'est pas si innocent :fearful:

A mon époque cela s'appelait une règle de trois, de nos jours je ne sais plus, ils ont l'art et la manière de compliquer les choses.

c'est ce qu'ils revoient en 6eme cette année après avoir vu ca en CM2, et le nom si je ne me trompe pas est tableau de proportionnalité, comme toi, règle de trois ou produit en croix.

j'aime bien les bonbecs
je fais ca avec des canards et du blé, normal :slight_smile:

Merci de la réponse mais oui justement il m'a parlé de ça le fameux prof, j'ai 0V pour 20 Ppm ( oui j'ai regardé la fiche technique de mon capteur ahah ) Et j'ai une tension de 5 V pour 2000ppm mais le problème c'est comment trouver la tension égale à 200ppm ? Désolé mais même avec un produit en croix je ne vois pas comment procéder même en connaissant cette méthode :confused:

icare:
Bonjour,
Il faut que tu réfléchisses un peu :wink:
As-tu regardé la fiche technique de ton capteur ?

Imaginons un peu les choses.
Tu as 200 bonbons que tu veux convertir en tension par exemple 0.5 V
Combien vaut 1 bonbon en terme de tension ?
Combien valent 2000 bonbons ?
Tu peux aussi prendre le problème dans l'autre sens
Combien de bonbons pour une tension de 1V ?

A mon époque cela s'appelait une règle de trois, de nos jours je ne sais plus, ils ont l'art et la manière de compliquer les choses.
[HS] Le dernier en date le prélicat[/HS]

Tu verras que l'exemple des bonbons n'est pas si innocent :fearful:

Le bac approche j'ai vraiment besoin de votre aide et de vos conseils. :cry:

euh, vous êtes au bac et vous posez ce genre de question? damned... y'a du boulot...

en imaginant que la relation soit linéaire (une droite) et que vous ayez à tracer sur papier la droite des Volts (axes des y) en fonction des ppm (axe des X).

Vous connaissez 2 points (x1 = 20ppm, y1 = 0V) et (x2 = 2000ppm, y2 = 5V).

Quelle est l'équation de la droite passant par ces deux points et donnant Y = f(x) ??


bon cela dit ça c'est pour la théorie, il faut aller voir votre datasheet pour vote module car rien ne vous garantit que c'est une droite... par exemple vous pourrez trouver quelque chose comme cela

De toute manière le problème n'est pas là je finirai par trouver ça, mais comment transcrire tout ça en arduino ? C'est à dire dire au microcontroleur que quand, les 200 ppm sont atteint un ventilateur se mettre en marche ?

il est temps d'aller faire les tutos d'eskimon...

on n'écrit pas du code pour les projets du bac ici... vous le faites, on contribue éventuellement en vous indiquant des points à creuser

Merci mais je n'ai pas demandé un code entier juste des pistes de comment l'écrire je ne gère pas vraiment arduino

Mais ayant un professeur qui nous explique très peu j'ai vraiment du mal, il me demande de convertir ma valeur de ppm ( 200ppm ) en une tension.

Non, c'est le capteur qui te converti des ppm en tension.

Auriez vous des pistes ou des exemples d'algorithme ?

Si c'est pour piloter un système de ventilation un simple seuil d'alerte suffit.

mais comment transcrire tout ça en arduino ? C'est à dire dire au microcontroleur que quand, les 200 ppm sont atteint un ventilateur se mettre en marche

ppm = acquireCOValue();
if (ppm >200) triggerFan();
else if (ppm < 190) stopFan(); // keep some room once triggered

ensuite comment faire ce qui est dans acquireCOValue() ou triggerFan(); c'est en faisant les tutos mentionnés plus haut que vous comprendrez :slight_smile:

ce que j'adore à chaque fois c'est ce genre de réflexion, sachant que les profs viennent souvent jeter un oeil sur le forum pour voir les questions posées en fonction des TP/exam/etc...

Mais ayant un professeur qui nous explique très peu j'ai vraiment du mal

Le bac approche j'ai vraiment besoin de votre aide et de vos conseils. :cry:

De toute manière le problème n'est pas là je finirai par trouver ça, mais comment transcrire tout ça en arduino ? C'est à dire dire au microcontroleur que quand, les 200 ppm sont atteint un ventilateur se mettre en marche ?

Merci mais je n'ai pas demandé un code entier juste des pistes de comment l'écrire je ne gère pas vraiment arduino

Le bac est un travail perso, ca veut dire que si tu n'as pas l'ide sur ton pc, ca risque d'être compliqué, ou si tu as installé l'ide arduino sur ton pc, tu n'as pas regardé les exemples qui sont une bonne base.

coder pour arduino est très souvent une retranscription de phrase en claire en un code simple
si j'ai un compteur qui retourne une valeur entre 0 et xxxx===> analogRead
si compteur> 50 je dois allumer une led

if(analogRead(compteur)>50) digitalWrite(led, HIGH);

après avoir compris ca, le reste va tout seul, l'exemple est simple, mais cela correspond à ce que tu veux faire
pour avoir les valeurs de ton capteur il suffit de les afficher dans la console de l'ide pour voir ce qu'il en est, via un Serialprintln(valeur lue)

infobarquee:
ce que j'adore à chaque fois c'est ce genre de réflexion, sachant que les profs viennent souvent jeter un oeil sur le forum pour voir les questions posées en fonction des TP/exam/etc...

Le bac est un travail perso, ca veut dire que si tu n'as pas l'ide sur ton pc, ca risque d'être compliqué, ou si tu as installé l'ide arduino sur ton pc, tu n'as pas regardé les exemples qui sont une bonne base.

coder pour arduino est très souvent une retranscription de phrase en claire en un code simple
si j'ai un compteur qui retourne une valeur entre 0 et xxxx===> analogRead
si compteur> 50 je dois allumer une led

if(analogRead(compteur)>50) digitalWrite(led, HIGH);

après avoir compris ca, le reste va tout seul, l'exemple est simple, mais cela correspond à ce que tu veux faire
pour avoir les valeurs de ton capteur il suffit de les afficher dans la console de l'ide pour voir ce qu'il en est, via un Serialprintln(valeur lue)

Et bien qu'il sache il ne nous à pas interdit de demander des conseils, ça ne me dérange pas.
A vrai dire je me suis servi une seule fois du logiciel Arduino sur un Tp que je n'ai pas finis, merci de ton aide.

J-M-L:

ppm = acquireCOValue();

if (ppm >200) triggerFan();
else if (ppm < 190) stopFan(); // keep some room once triggered




ensuite comment faire ce qui est dans `acquireCOValue()` ou `triggerFan();` c'est en faisant les tutos mentionnés plus haut que vous comprendrez :)

Merci j'ai déjà consulté un peu la page des tutos d'Eskimon, à quoi correspond la commande " triggerFan()" exactement ?

triggerFan() est une fonction qui va déclencher une action ou donner un résultat

A vrai dire je me suis servi une seule fois du logiciel Arduino sur un Tp que je n'ai pas finis, merci de ton aide.

si tu ne t'investis pas plus que ca dans ton projet bac, ca va être dur.
Le coef doit être en plus élevé.

tu dois proposer un code ET à partir de là, on veut bien aider.
des conseils sont donnés depuis le post 5, mais aucun code de ta part.
alors fais un effort, tu as toutes les billes pour faire un code simple dans les réponses données

infobarquee:
triggerFan() est une fonction qui va déclencher une action ou donner un résultat
si tu ne t'investis pas plus que ca dans ton projet bac, ca va être dur.
Le coef doit être en plus élevé.

tu dois proposer un code ET à partir de là, on veut bien aider.
des conseils sont donnés depuis le post 5, mais aucun code de ta part.
alors fais un effort, tu as toutes les billes pour faire un code simple dans les réponses données

Je vais d'abord essayer de faire un algorithme papier classique avec des SI, et des TANT QUE, puis je le ferais sur Arduino je verrai bien

darkologue59:
Je vais d'abord essayer de faire un algorithme papier classique avec des SI, et des TANT QUE, puis je le ferais sur Arduino je verrai bien

c'est bien de commencer par là

Bonjour j'ai pensé à un algorithme :

Début
Lire T
Si T > 0.25 (La valeur de la tension pour 100ppm)
Alors V(ventilateur) = 1
Tant que T < 0.25
Fin Tant que
Fin Si
Sinon rien
Fin

J'ai fais un algorithme basique comme notre professeur nous à appris, je ne sais pas si il est bon mais je dois passer par là pour après programmer sur Arduino. Qu'en pensez vous ?

Oui c'est un bon début de réfléchir comme cela. tout bon programme commence par la décomposition en tâches élémentaires distinctes et ensuite on les enchaîne dans le bon ordre pour créer le programme

sachant que ce sera dans la loop(), à quoi sert le "Tant que T < 0.25" (et ne faudrait il pas relire T?)

que se passe-t-il pour votre ventilateur à votre avis si la valeur est très proche de 100ppm et que la le valeur lue donc oscille autour de 0.25, une fois au dessus une fois au dessous ??

Bonjour,
Que se passe-t-il lorsque T = 0 ?

J-M-L:
que se passe-t-il pour votre ventilateur à votre avis si la valeur est très proche de 100ppm et que la le valeur lue donc oscille autour de 0.25, une fois au dessus une fois au dessous ??

Il n'y a pas de problème puisque le ventilateur n'est jamais arrêté dans l’algorithme . :slight_smile: