int ButtonStatus = LOW;
//PIN ID
int WaterIn = 2;
int CausticIn = 3;
int CausticReturn= 4;
int SanitizerIn = 5;
int SanitizerReturn = 6;
int CO = 7;
int heaterPin = 8;
int WaterDrain = 9;
int CausticDrain = 10;
int SanitizerDrain = 11;
int button = 13;
int KegAir = 12;
//CYCLE TIMES
int WaterWashTime = 3000;
int WaterDrainTime = 3000;
int CausticWashTime = 3000;
int CausticDrainTime = 3000;
int SanitizerWashTime = 3000;
int SanitizerDrainTime = 3000;
int COTime = 3000;
int CycleDelay = 1000;
int COSanitizer = 2000;
int SanitizerReturnTime = 2000;
int CausticReturnTime = 2000;
int airtime = 500;
void setup() {
pinMode(WaterIn,OUTPUT);
pinMode(CausticIn, OUTPUT);
pinMode(CausticReturn, OUTPUT);
pinMode(SanitizerIn, OUTPUT);
pinMode(SanitizerReturn, OUTPUT);
pinMode(CO, OUTPUT);
pinMode(heaterPin, OUTPUT);
pinMode(WaterDrain, OUTPUT);
pinMode(CausticDrain, OUTPUT);
pinMode(SanitizerDrain, OUTPUT);
pinMode(12, OUTPUT);
pinMode(button, INPUT_PULLUP);}
void cycle1() {(digitalWrite(WaterIn, HIGH)); //water in valve opens
(digitalWrite(WaterDrain, HIGH)); //water drain valve opens
(delay(WaterWashTime)); //cycle 1 time
(digitalWrite(WaterIn, LOW)); //water in valve closes
(digitalWrite(KegAir, HIGH)); //air pushes water out
(delay (airtime)); //time air to keg
(digitalWrite(KegAir, LOW)); //air to keg off
(delay(WaterDrainTime)); //water drain time
(digitalWrite(WaterDrain, LOW)); //water drain closes
}
void cycle2(){
(digitalWrite(CausticIn, HIGH)); //Caustic in opens, caustic supply air opens, caustic reciever tank vents
(digitalWrite(CausticDrain, HIGH)); //Caustic Drain Valve opens
(delay(CausticWashTime)); //Cycle 2 time
(digitalWrite(CausticIn, LOW)); //Caustic in closes, caustic supply air closes, caustic reciever vent closes
(digitalWrite(KegAir, HIGH)); //air pushes water out
(delay (airtime)); //time air to keg
(digitalWrite(KegAir, LOW)); //air to keg off
(delay(CausticDrainTime)); //Caustic Drain Time
(digitalWrite(CausticDrain, LOW)); //Caustic Drain Closes
}
void cycle3(){
(digitalWrite(SanitizerIn, HIGH)); //Sanitizer in valve opens, Sanitizer supply air opens, Sanitizer reciever vents
(digitalWrite(SanitizerDrain, HIGH)); //Sanitizer Drain Opens
(delay(SanitizerWashTime)); //Cycle 3 time
(digitalWrite(SanitizerIn, LOW)); //Sanitizer in valve closes, Sanitizer supply air closes, Sanitizer reciever vent closes
(delay(SanitizerDrainTime)); //Sanitizer Drains
(digitalWrite(CO, HIGH)); //CO2 pushes out Sanitizer
(delay(COSanitizer)); //CO2 and Sanitizer Drain time
(digitalWrite(SanitizerDrain, LOW)); //Sanitizer Drain Closes
(delay(COTime)); //CO2 Pressurizes Keg
(digitalWrite(CO, LOW)); //CO2 off
}
void sanitizerreturn(){
(digitalWrite(SanitizerReturn, HIGH));
delay(SanitizerReturnTime);
(digitalWrite(SanitizerReturn, LOW));
}
void causticreturn(){
(digitalWrite(CausticReturn, HIGH)); //Caustic returns to supply tank
delay(CausticReturnTime);
(digitalWrite(CausticReturn, LOW)); //Caustic return off
}
void loop(){
int currentstatus = digitalRead(button);
if (currentstatus == LOW && ButtonStatus == LOW)
{(digitalWrite(heaterPin, HIGH));}
else {(digitalWrite(heaterPin, LOW)); //heater turns off
(delay(CycleDelay)); //cycle switch delay
cycle1();
(delay(CycleDelay)); //cycle switch delay
cycle2();
(delay(CycleDelay));
cycle1();
(delay(CycleDelay));
cycle3();
causticreturn();
sanitizerreturn();
}
}