Code pour un projet

Bonjour à tous, Je suis un élève de terminale S option S-SI et nous avons un projet à réaliser au cours de l'année par groupes de 3. Nous en sommes à la partie programmation. Mon projet est un détecteur d'ozone. Nous avons un détecteur d'ozone MQ-131 , un Module carte micro-SD ADA254, une carte Arduino UNO et d'autres mais ceux qui m'interressent sont uniquement ces 2 composants-là. J'ai besoin de stocker les information relevées par le capteur d'ozone dans la carte SD mais je ne sais pas comment faire au niveau du code sur le logiciel Arduino. J'ai trouvé comment créer un fichier et écrire dedans mais je ne trouve pas comment envoyer direcetement le signal du capteur d'ozone dans la carte SD. Si quelqu'un pourrait m'apporter son aide cela m'aiderait énormément.

Merci d'avance.

mais je ne trouve pas comment envoyer direcetement le signal du capteur d'ozone dans la carte SD.

Vous ne l'envoyez pas directement - vous faites en 2 temps 1. vous lisez la valeur du capteur dans une variable 2. vous écrivez dans la carte (ouvrir le fichier, se mettre à la fin, écrire l'info, fermer le fichier) (3. vous recommencez un certain temps plus tard)

Avez vous regardé "https://github.com/ostaquet/Arduino-MQ131-driver/blob/master/examples/calibrate_and_read.ino" la librairie semble maintenue assez régulièrement, l'exemple se lit, la librairie se lit aussi, je n'y ai pas vu d'énormités, la doc n'est l'une des meilleurs que j'ai eu l'occasion de lire. Cette situation confortable est peut être gâtée par le fait qu'il faut prévoir un chauffage de la bête, que l'arduino ne peut pas assumer.

Ensuite, les exemples de SD semblent indiquer(ça fait 2 ans que je n'ai pas joué avec SD) que passer d'une impression sérielle "Serial.print " de toutes les demos à un stockage sur la minidisquette, dans un fichier préalablement ouvert, est trivial. PS : j'ai lu le post de JLM: comme je vous le conseille, j'écris en continu et on peut décider de fermer le fichier au bout de 20 -disons- acquisitions (et de vérifier le résultat avec un PC :excel ou gnuplot ou R ou ... se feront un plaisir de vous aider). La solution de JLM est une solution parfaite pour la fin.

dbrion06: PS : j'ai lu le post de JLM: comme je vous le conseille, j'écris en continu et on peut décider de fermer le fichier au bout de 20 -disons- acquisitions (et de vérifier le résultat avec un PC :excel ou gnuplot ou R ou ... se feront un plaisir de vous aider). La solution de JLM est une solution parfaite pour la fin.

le soucis de fermer le fichier toutes les 20 lectures c'est que vous risquez de perdre des données si le système plante alors que le fichier est ouvert - mais c'est moins efficient

Pour éviter de perdre des données, je verrais bien un bouton qui forcerait la fermeture -et permettrait de retirer la carte, pour dépouillement sur PC- … et une LED, visualisant le fait qu’on est/n’est pas en acquisition et stockage de données, au moins lors du deverminage… Il doit y avoir encore pas mal de pattes sur un arduino, qui ne demandent qu’à assumer ces fonctions modestes mais utiles.
Au vu des cadences (les concentrations en ozone varient peu dans le temps, sauf en présence de réducteurs -monoxyde d’azote NO, issu de flammes-), savoir si ouvrir, aller en fin et fermer (qui est plus fiable) est plus lent ou plus rapide que d’ouvrir, écrire au fil de l’eau et fermer (au bout de x écritures, ou toutes les heures, en calculant -le luxe- le nom du repertoire+fichier avec la date-) ne pose pas de problèmes…

A terme, je privilègierais votre solution, plus fiable .

le problème n'est pas juste à l'éjection mais une panne de courant par exemple

en pratique vous n'allez pas lire la concentration d'ozone toutes les secondes donc vous ne verrez absolument aucun ralentissement en ouvrant, écrivant puis fermant le fichier. pour les quelques millisecondes où vous écrivez, oui vous pouvez mettre une diode qui s'allumera, ça fait sapin de Noël en plus comme cela..

Les FAT(clés USB, vieux disques, pellicules d'appareils à photos numériques) résistent assez bien, me semble-t-il, aux coupures d'alimentation : le fichier en cours d'écriture est cassé, mais pas ses voisins: c'est pour ça que je conseille de faire plusieurs fichiers (disons, un par heure/jour; en mettant la date dans le nom si on a une horloge). De mêm, je conseillerais de stocker , pour chaque ligne du fichier: la date (si on a une belle horloge; sinon, le nombre de secondes écoulées le démarrage de l'arduino, la valeur de l'ozone -un type d'unité suffit; la partie décimale, qu'on soit en ppm ou en ùg/m**3, ne sert à rien) , celle du CAN: si on a mélangé les deux types de capteurs -donc deux formules-, un PC peut retrouver des valeurs réalistes.....). Naturellement, je pense à des charactères aSCII codant entiers, séparés les uns des autres , qu'un oeil puisse lire un tel fichier trivial)

Et pourquoi la liste des posts s'agrémente-t-elle, outre d'une icône me représentant, d'un mini panneau jaune avec un "!" ?