#include <Servo.h>
int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
int relay = 8;
int flowSensor = A1;
int minin = A2;
int mincal;
int maxin = A3;
int maxcal;
int set1 = A0;
int set2 = A4;
int set3 = A5;
int set4 = A6;
unsigned long minutes = (1*1UL);
unsigned long calA ;
unsigned long calB ;
unsigned long calC ;
unsigned long calD ;
unsigned long stall ;
unsigned long duration ;
unsigned long hall = 0 ;
Servo Servo1 ;
void setup() {
Serial.begin(115200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(flowSensor, INPUT);
pinMode(set1, INPUT_PULLUP);
pinMode(set2, INPUT_PULLUP);
pinMode(set3, INPUT_PULLUP);
pinMode(set4, INPUT_PULLUP);
Servo1.attach(9);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
mincal = analogRead(minin); // reads the value of the potentiometer (value between 0 and 1023)
mincal = map(mincal, 0, 1023, 0, 90);
maxcal = analogRead(maxin); // reads the value of the potentiometer (value between 0 and 1023)
maxcal = map(maxcal, 0, 1023, 90, 180);
digitalWrite(relay, LOW);
delay(250);
digitalWrite(relay, HIGH);
delay(250);
Servo1.write(mincal) ;
delay(2500) ;
Servo1.write(maxcal) ;
delay(2500) ;
Servo1.write(mincal) ;
delay(250);
digitalWrite(relay, LOW);
}
void loop() {
{
int wait = digitalRead(A0);
}
if (digitalRead(A0) == HIGH)
{
calA = (6000);
digitalWrite(led4, HIGH);}
else{
calA = (36000);
digitalWrite(led4, LOW);
}
if (digitalRead(A4) == HIGH)
{
calB = (0);
}
else{
calB = (1);
}
if (digitalRead(A5) == HIGH)
{
calC = (0);
}
else{
calC = (2);
}
if (digitalRead(A6) == HIGH)
{
calD = (0);
}
else{
calD = (3);
}
stall = calA+calB+calC+calD ;
Serial.println(minutes++);
Serial.println(stall);
{
duration = pulseIn(flowSensor, HIGH, 500000);
hall = 60000.0/duration*1000 ;
if (hall >1)
{
digitalWrite(led1, HIGH);
minutes++ ;
if (minutes > stall )
{
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(relay, HIGH);
delay(250);
Servo1.write(maxcal);
delay(250);
digitalWrite(relay, LOW);
digitalWrite(relay, LOW);
}
}
else
{
digitalWrite(led1, LOW);
digitalWrite(relay, LOW);
minutes = 0;
}
}
}