il y a beaucoup plus simple car dans ce cas, tu va calculer un débit en fonction du VOLUME ET du TEMPS (volume par unité de temps donc V/T )pour ensuite multiplier par le TEMPS donc (V/T)*T = V ...
d'après la notice, il envoie 450 impulsion par litres..... soit une impulsion tous les 2,2222222222 millilitre
il suffit donc de compter le nombre d'impulsions pour connaitre le volume.
Tu peux "vérifier" ton compteur en faisant passer un volume connu et en vérifiant le nombre d'impulsion ( attention au départ au volume d'air éventuellement compté ) sachant que la notice donne une erreur possible de 10 %
bonjour
ce type de capteur delivre une impulsion pour un volume connu (à priori selon petrusfr 2.22 ml)
pour avoir le volume total , il suffit de compter le nb d'mpulsions et de multiplier par 2.22
pour avoir le debit "instantané" simplement recuperer la frequence = nb impuslsion en 1 seconde.
Je vais faire comme petrusfr à dis mais pour faire ça, il me faudrait un timer pour pouvoir calculer le temps durant la phase de remplissage. Avez-vous une idée??
Le souci avec millis(), c'est qu'il donne le temps depuis que le programme est lancé, moi je voudrais voir juste dans la phase de remplissage.
Cordialement
Détrompez-vous, je suis très curieux, mais j'ai pas encore eu le temps de tout tester, mais si vous pouvez m'en dire plus, sa serait avec plaisir dans apprendre plus. C'est également à ça que sert ce forum
millis() c'est comme un train.... on a l'impression qu'il ne fait que passer.
Si on court assez vite on pourrait penser que le train est arrêté.... c'est simplement le point de vue qui change.
En réfléchissant comme ça et en plaçant les jalons judicieusement on peut utiliser la fonction millis() pour faire une mesure de temps et déclencher des actions à intervalles "convenus".
maintenant on laisse le train de coté ( c'est pour B@tto ).
on prend un ruban métrique.
on veut utiliser la mesure qui se trouve entre 9 et 13 mètres.... ça fait combien de mètres ?
Merci de votre réponse, j’essayerais si la solution que je veux tester ne fonctionne pas.
Actuellement je cherche à savoir combien il y a d’impulsion en 1 seconde, mais je vois pas comment m’y prendre, voici mon code:
#define LED 13
#define IN 3
volatile uint8_t state = LOW;
void cny70_onRising(void)
{
// bascule l'état de la led
state = !state;
Serial.print(state);
Serial.println(" detected");
}
void setup ()
{
Serial.begin(9600);
Serial.println("CNY70 test");
pinMode(IN, INPUT);
pinMode(LED, OUTPUT);
// Attache une interruption sur changement de valeur (pin 3)
attachInterrupt(1, cny70_onRising, CHANGE);
}
void loop ()
{
digitalWrite(LED, state);
}