#define Valve1 13
#define Valve2 12
#define Valve3 11
#define Valve4 10
#define Valve5 9
#define Valve6 8
#define Light1 7
#define Light2 6
#define Light3 5
#define Light4 4
#define Light5 3
#define Light6 2
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
double flow_v1 = 0;
double flow_v2 = 0;
double flow_v3 = 0;
double flow_v4 = 0;
double flow_v5 = 0;
double flow_v6 = 0;
double total_flow = 0;
int ButtonState = 0;
int lastButtonState = 0;
void setup() {
pinMode(Valve1, INPUT_PULLUP);
pinMode(Valve2, INPUT_PULLUP);
pinMode(Valve3, INPUT_PULLUP);
pinMode(Valve4, INPUT_PULLUP);
pinMode(Valve5, INPUT_PULLUP);
pinMode(Valve6, INPUT_PULLUP);
lcd.init();
lcd.backlight();
// Print something
lcd.setCursor(1, 0);
lcd.print("Flow rate in LPM:");
}
void loop() {
int button_value1 = digitalRead((Valve1));
if (button_value1 == HIGH) {
digitalWrite(Light1, HIGH);
flow_v1 = 8;
delay(10);
}
else {
digitalWrite(Light1, LOW);
flow_v1 = 0;
delay(10);
}
int button_value2 = digitalRead((Valve2));
if (button_value2 == HIGH) {
digitalWrite(Light2, HIGH);
flow_v2 = 8;
delay(10);
}
else {
digitalWrite(Light2, LOW);
flow_v2 = 0;
delay(10);
}
int button_value3 = digitalRead((Valve3));
if (button_value3 == HIGH) {
digitalWrite(Light3, HIGH);
flow_v3 = 8;
delay(10);
}
else {
digitalWrite(Light3, LOW);
flow_v3 = 0;
delay(10);
}
int button_value4 = digitalRead((Valve4));
if (button_value4 == HIGH) {
digitalWrite(Light4, HIGH);
flow_v4 = 8;
delay(10);
}
else {
digitalWrite(Light4, LOW);
flow_v4 = 0;
delay(10);
}
int button_value5 = digitalRead((Valve5));
if (button_value5 == HIGH) {
digitalWrite(Light5, HIGH);
flow_v5 = 8;
delay(10);
}
else {
digitalWrite(Light5, LOW);
flow_v5 = 0;
delay(10);
}
int button_value6 = digitalRead((Valve6));
if (button_value6 == HIGH) {
digitalWrite(Light6, HIGH);
flow_v6 = 8;
delay(10);
}
else {
digitalWrite(Light6, LOW);
flow_v6 = 0;
delay(10);
}
ButtonState = digitalRead(Valve1);
if (ButtonState == lastButtonState) {
double total_flow = flow_v1 + flow_v2 + flow_v3 + flow_v4 + flow_v5 + flow_v6;
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Flow rate in LPM:");
lcd.setCursor(9, 3);
lcd.print(total_flow);
delay(100);
}
lastButtonState = ButtonState;
}