1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
volatile int flow_frequency; // Mesure les impulsions du débitmètre
unsigned int l_hour; // Litres/heure calculé
float flowmeter = 2; // broche jaune du débitmètre vers arduino Numéro de broche 2
unsigned long currentTime;
unsigned long cloopTime;
void flow () { // Fonction d'interruption
flow_frequency++;
}
void setup() {
flow_frequency == 0;
pinMode(8,INPUT);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(flowmeter, INPUT);
Serial.begin(9600);
attachInterrupt(0, flow, RISING); // Configuration de l'interruption
sei(); // Activer les interruptions
currentTime = millis();
cloopTime = currentTime;
}
void _loop() {}
void loop () {
currentTime = millis(); // Toutes les secondes, calculer et imprimer les litres/heure
if(currentTime >= (cloopTime + 1000)) {
cloopTime = currentTime; // Mises à jour cloopTime
// Fréquence d'impulsion (Hz) = 7,5Q, Q étant le débit en L/min. (Résultats dans une fourchette de +/- 3%)
l_hour = (flow_frequency * 60 / 7.5); // (Fréquence d'impulsion x 60 min) / 7,5Q = débit en L/heure
Serial.print(l_hour, DEC); // Imprimer litres/heure
Serial.println(" L/hour");}
digitalWrite(LED_BUILTIN, HIGH);
pinMode(8,HIGH);}
if(flow_frequency > 15000){
flow_frequency == 0;}
}
*/ Ici, j'aimerais mettre que si la variable L_hour est croissante pendant plus de 15 minutes,
l'éléctrovanne se ferme et que la diode intégré sur la carte s'allume. Si elle reste constante a
moins de 15000, elle se remet a zero. /* |
Partager