hi everyone,
i have a problem to read 3 different water flow sensors. i did something wrong in my program but i don´t know where is the mistake. may someone can help me
volatile int flow_frequency1;
volatile int flow_frequency2;
volatile int flow_frequency3;
unsigned int l_min1;
unsigned int l_min2;
unsigned int l_min3;
unsigned char flowmeter1 = 2;
unsigned char flowmeter2 = 3;
unsigned char flowmeter3 = 4;
unsigned long currentTime;
unsigned long cloopTime;
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
void flow ()
{
flow_frequency1++;
flow_frequency2++;
flow_frequency3++;
}
void setup()
{
pinMode (flowmeter1, INPUT);
pinMode (flowmeter2, INPUT);
pinMode (flowmeter3, INPUT);
Serial.begin (9600);
attachInterrupt (0, flow, RISING);
sei();
currentTime = millis();
cloopTime = currentTime;
lcd.init();
lcd.backlight();
}
void loop()
{
currentTime = millis();
if (currentTime >= (cloopTime + 500))
{
cloopTime = currentTime;
l_min1 = (flow_frequency1 / 7.5 );
l_min2 = (flow_frequency2 / 7.5 );
l_min3 = (flow_frequency3 / 7.5 );
flow_frequency1 = 0;
flow_frequency2 = 0;
flow_frequency3 = 0;
Serial.print (l_min1, DEC);
Serial.print (" L/min");
Serial.print (l_min2, DEC);
Serial.print (" L/min");
Serial.print (l_min3, DEC);
Serial.print (" L/min");
lcd.setCursor (0,0);
lcd.print (" Jacob GmbH ");
lcd.setCursor (0,1);
lcd.print (" Temp 1: ");
lcd.print (l_min1);
lcd.print (" L/min");
lcd.setCursor (0,2);
lcd.print (" Temp 2: ");
lcd.print (l_min2);
lcd.print (" L/min");
lcd.setCursor (0,3);
lcd.print (" Temp 3: ");
lcd.print (l_min3);
lcd.print (" L/min");
delay (5000);
lcd.clear ();
}
}
only the first sensor is working.
thanks for the help