J'espère que vous vous portez bien en cette période !
Voilà pour un projet Arduino, j'ai besoin d'un volume d'eau de 15L passant par un débitmètre standard Arduino à effet Hall, où l'on a 2500 impulsions par Litre. Alors j'ai trouvé un code sur le forum mais je n'arrive pas à le modifier pour avoir ce volume.
Je vous laisse le code que j'aimerai modifier, il fonctionne pour avoir le débit en instantané (je n'ai pas pu le tester encore).
volatile unsigned long pulseCount = 0;
uint32_t curTime;
unsigned long startTime = 0; //début du nouveau comptage
unsigned long pulseCountPrec = 0; //comptage précédent
void setup ( )
{
Serial.begin(9600);
attachInterrupt(digitalPinToInterrupt(2), countImpulsions, RISING);
//fil du capteur connecté sur le pin 2
}
void loop ( )
{
curTime = millis ( ); //temps depuis le début d’exécution du programme
if (curTime - startTime > 1000) //calcul du débit toutes les secondes
{
//2500 impulsion pour 1L
//débit pas forcément constant donc calcul du nombre d’impulsion sur 1s
//Q = (NbrImpulsions / 1s) / 2500
float q = (pulseCount - pulseCountPrec ) / ((curTime - startTime) / 1000.0) / 2500.0;
startTime = curTime;
pulseCountPrec = pulseCount;
Serial.printIn(q);
}
//Serial.printIn(pulseCount); //nombre d’impulsions totales depuis le début
}
void countImpulsions( )
{
pulseCount ++;
}
S'il y a 2500 impulsions/L et que tu veux 15L il faut donc compter 152500 impulsions.
Il faut tester la valeur de pulseCount et quand pulseCount == 15 2500, tu coupes ton électrovanne
En effet je pilote une électrovanne reliée à une arrivée d'eau. Et de cette arrivée d'eau je souhaite que lorsque le débitmètre à déterminer que 15L d'eau sont passés je referme mon électrovanne.
Eh bien après quelques erreur de frappes corrigées, mauvaise nouvelle il ne compile pas...
Que faire ? Je ne possède pas les différentes bibliothèques, serais-ce à cause de cela ? (je ne connais pas la bibliothèque pour le pulseCount, une idée ?)
Si puisque pulseCountPrec cest pulseCount à la seconde précédente
Donc pulseCountPrec-pulseCount cest le nombre de pulse en 1 seconde
Le volume c'est vol=pulseCount / 2500.0