Moteur diesel + hydrogène

Bonjour à tous,
Je suis en stage de fin d’étude (DUT) en Ecosse et je dois utiliser un Arduino. C’est un outil que je ne connaissais pas mais qui est passionnant ! Cependant, j’ai quelques notions en algorithme mais ce n’est pas ma spécialité. J’aurai besoin de quelques conseils !
Je travails sur un moteur diesel dans lequel j’injecte de l’hydrogène afin d’en améliorer le rendement.
J’utilise un capteur piézoélectrique afin de repérer les actions de mon moteur (par exemple la position du piston dans le cylindre). J’obtiens ce type de courbe : (cf image "Forum arduino 2)

L’axe des abscisses correspond à un temps, celui des ordonnés à une tension en volt. La courbe qui nous intéresse est la bleue. Le trait vert marque le début de la zone qui nous intéresse (augmentation de la tension). Voilà ce que j’aimerai faire : à partir du moment où le premier pic de tension supérieur à 0,15V, je veux que l’Arduino génère une tension de sortie de 5V durant 1,4 ms (peut-être trop court pour l’Arduino ?). Passé ce temps, la tension de sortie doit être nul, jusqu’au prochain pic de 0,15V (c’est un cycle).
Voici le programme que j’ai rédigé pour l’instant : (Cf fichier texte "Programme")

J’enregistre les mesures supérieures à 0,15v sur une carte SD.
Pour l’instant je demande à l’arduino de faire une mesure toute les 80/720 secondes, mais je n’arrive pas à lui dire « SI tu rencontres une tension supérieures à 0,15V ALORS tu génères une tension de sortie de 5V DURANT 1,4ms. J’ai pensais à insérer une fonction delay() juste après la ligne voltage =5. Mais je ne crois pas que ce soit la bonne solution. Si j’ai bien compris, en utilisant la fonction delay() le programme est stoppé pendant le temps demandé, donc il ne peut pas générer les 5V en sortie pendant ce temps ?

Je pense qu’il est possible d’utiliser un compte à rebours, par exemple avec une horloge comme la DS1307, et dire à l’Arduino « SI tension>0,15V alors déclencher compte à rebours et générer 5V jusqu’à la fin du compte à rebours ». Qu’en pensez-vous ? Pensez-vous que le DS1307 travails assez rapidement pour créer un compte à rebours de 1,4ms ?
J’espère avoir été assez clair, ce n’est pas évident car je ne suis pas des plus à l’aise avec la programmation. N’hésitez pas à me poser des questions.
Merci d’avance !!

Programme.txt (1 KB)

Utilises micros() : http://arduino.cc/en/Reference/Micros

Merci je vais essayer :slight_smile: