#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);
const int ProgButton1 = 4; // Program 1
const int ProgButton2 = 6; // Program 2
const int ProgButton3 = 8; // Program 3
const int ProgButton4 = 10; // Program 4
const int DrainButton = 12; // Drain Button
const int WaterButton = 14; // Water
const int FanButton = 16; // Fan
// Reset Button direct connection = Pin Reset
// Button input = 8 PINS
const int Ledpin = 18; // LED Panel power
const int Led1 = 5; // Program 1 led
const int Led2 = 7; // Program 2 led
const int Led3 = 9; // Program 3 led
const int Led4 = 11; // Program 4 led
const int Led5 = 13; // Press to Drain led
const int Led6 = 15; // Press to Fill Water led
const int Led7 = 17; // Fan Button Led
const int Led8 = 3; // lampu reset yg x guna
const int Led9 = 32; // Lampu merah lain kali
// LED PANEL = 10 PINS
const int C1pin = 32; // Contactor Wash Pump
const int C2pin = 34; // Contactor Heating Element Water
const int C3pin = 36; // Contactor Dryer Heater
const int C4pin = 38; // Contactor Dryer Fan
const int S1pin = 40; // Hot Water Valve
const int S2pin = 42; // Cold Water Valve
const int S3pin = 44; // Chem 1 Detergent Pump
const int S4pin = 46; // Drain Valve
const int S5pin = 47; // Chem 2 Rinse Aid Pump
// OUTPUT driver pins = 9 PINS
/* Total pins from controller 29 Pins including Ground and +5v
* power excluding analog input.
*/
// variables will change:
int ButtonState1 = 0; // variable for reading the pushbutton status
int ButtonState2 = 0;
int ButtonState3 = 0;
int ButtonState4 = 0;
int ButtonState5 = 0;
int ButtonState6 = 0;
int ButtonState7 = 0;
void setup()
{
// Init
lcd.init();
lcd.backlight();
// Print something
lcd.setCursor(0, 0);
lcd.print(" WELCOME matachana");
lcd.setCursor(0, 1);
lcd.print(" SELECT PROG to RUN");
// initialize the LED pin as an output:
pinMode(C1pin, OUTPUT);
pinMode(C2pin, OUTPUT);
pinMode(C3pin, OUTPUT);
pinMode(C4pin, OUTPUT);
pinMode(S1pin, OUTPUT);
pinMode(S2pin, OUTPUT);
pinMode(S3pin, OUTPUT);
pinMode(S4pin, OUTPUT);
pinMode(S3pin, OUTPUT);
pinMode(S5pin, OUTPUT);
pinMode(Ledpin, OUTPUT);
// LED Panel
pinMode(Led1, OUTPUT);
pinMode(Led2, OUTPUT);
pinMode(Led3, OUTPUT);
pinMode(Led4, OUTPUT);
pinMode(Led5, OUTPUT);
pinMode(Led6, OUTPUT);
pinMode(Led7, OUTPUT);
pinMode(Led8, OUTPUT);
pinMode(Led9, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(ProgButton1, INPUT_PULLUP);
pinMode(ProgButton2, INPUT_PULLUP);
pinMode(ProgButton3, INPUT_PULLUP);
pinMode(ProgButton4, INPUT_PULLUP);
pinMode(DrainButton, INPUT_PULLUP);
pinMode(WaterButton, INPUT_PULLUP);
pinMode(FanButton, INPUT_PULLUP);
digitalWrite(Ledpin, HIGH); // Enable LED panel power
digitalWrite(Led1, HIGH);
digitalWrite(Led2, HIGH);
digitalWrite(Led3, HIGH);
digitalWrite(Led4, HIGH);
digitalWrite(Led5, HIGH);
digitalWrite(Led6, HIGH);
digitalWrite(Led7, HIGH);
digitalWrite(Led8, HIGH);
digitalWrite(Led9, HIGH);
digitalWrite(C1pin, LOW);
digitalWrite(C2pin, LOW);
digitalWrite(C3pin, LOW);
digitalWrite(C4pin, LOW);
digitalWrite(S1pin, LOW);
digitalWrite(S2pin, LOW);
digitalWrite(S3pin, LOW);
digitalWrite(S4pin, LOW);
digitalWrite(S5pin, LOW);
}
void loop() {
// read the state of the pushbutton value:
ButtonState1 = digitalRead(ProgButton1);
ButtonState2 = digitalRead(ProgButton2);
ButtonState3 = digitalRead(ProgButton3);
ButtonState4 = digitalRead(ProgButton4);
ButtonState5 = digitalRead(DrainButton);
ButtonState6 = digitalRead(WaterButton);
ButtonState7 = digitalRead(FanButton);
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//---PROGRAM 1 -------- PHASE 1
if (ButtonState1 == LOW) {
digitalWrite(Led1, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 1 PHASE 1");
lcd.setCursor(0, 1);
lcd.print(" WASHING PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT Chem 1 Detergent Pump
lcd.clear();
lcd.print("Chem 1 Run");
// turn Chem 1 pump on:
digitalWrite(S3pin, HIGH);
delay(10000); //TIMER
digitalWrite(S3pin, LOW);
lcd.clear();
lcd.print("Chem Dosing Time");
delay(5000);
lcd.clear();
lcd.print(" Mixture READY");
delay(2000);
// OUTPUT Chem 1 Detergent Pump
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(180000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 1 PHASE 1 END");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 1 -------- PHASE 1 END
//---PROGRAM 1 -------- PHASE 2 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 1 PHASE 2");
lcd.setCursor(0, 1);
lcd.print(" RINSE PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(25000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan End");
delay(2000);
// OUTPUT Dryer Fan
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 1 PHASE 2 END");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 1 -------- PHASE 2 END
//---PROGRAM 1 -------- PHASE 3 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 1 PHASE 3");
lcd.setCursor(0, 1);
lcd.print(" 2ND RINSE PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(25000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan End");
delay(2000);
// OUTPUT Dryer Fan
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 1 PHASE 3 END");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 1 -------- PHASE 3 END
//---PROGRAM 1 -------- PHASE 4 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 1 PHASE 4");
lcd.setCursor(0, 1);
lcd.print("DISINFECTION PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT Chem 2 Rinse Aid Pump
lcd.clear();
lcd.print("Chem 2 Run");
// turn Chem 2 pump on:
digitalWrite(S5pin, HIGH);
delay(5000);
digitalWrite(S5pin, LOW);
lcd.clear();
lcd.print("Chem Dosing Time");
delay(10000);
lcd.clear();
lcd.print(" Mixture READY");
delay(2000);
// OUTPUT Chem 2 Rinse Aid Pump
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(180000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PROGRAM 1 COMPLETED");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 1 -------- PHASE 4 END
digitalWrite(Led1, HIGH); // OFF BUTTON LED
}
//---PROGRAM 1 END --------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//---PROGRAM 2 -------- PHASE 1
if (ButtonState2 == LOW) {
digitalWrite(Led2, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 2 PHASE 1");
lcd.setCursor(0, 1);
lcd.print(" WASHING PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(180000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 2 PHASE 1 END");
//---PROGRAM 2 -------- PHASE 1 END
//---PROGRAM 2 -------- PHASE 2 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 2 PHASE 2");
lcd.setCursor(0, 1);
lcd.print(" RINSE PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(25000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan End");
delay(2000);
// OUTPUT Dryer Fan
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 2 PHASE 2 END");
//---PROGRAM 2 -------- PHASE 2 END
//---PROGRAM 2 -------- PHASE 3 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 2 PHASE 3");
lcd.setCursor(0, 1);
lcd.print(" 2ND RINSE PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(25000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan End");
delay(2000);
// OUTPUT Dryer Fan
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 2 PHASE 3 END");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 2 -------- PHASE 3 END
//---PROGRAM 2 -------- PHASE 4 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 2 PHASE 4");
lcd.setCursor(0, 1);
lcd.print("CLEANSING PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(180000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PROGRAM 2 COMPLETED");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 2 -------- PHASE 4 END
digitalWrite(Led2, HIGH); // OFF BUTTON LED
}
//---PROGRAM 2 END --------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//---PROGRAM 3 -------- PHASE 1
if (ButtonState3 == LOW) {
digitalWrite(Led3, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 3 DRYING");
lcd.setCursor(0, 1);
lcd.print(" DRYING PROCESS");
delay(2000);
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan STOP");
delay(2000);
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("HOLD WASH FOR A MOMENT");
delay(5000);
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan STOP");
delay(2000);
// OUTPUT Dryer Fan
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PROGRAM 3 COMPLETED");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 3 -------- PHASE 4 END
digitalWrite(Led3, HIGH); // OFF BUTTON LED
}
//---PROGRAM 1 END --------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//---PROGRAM 4 -------- PHASE 1
if (ButtonState4 == LOW) {
digitalWrite(Led4, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 4 PHASE 1");
lcd.setCursor(0, 1);
lcd.print(" WASHING PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT Chem 1 Detergent Pump
lcd.clear();
lcd.print("Chem 1 Run");
// turn Chem 1 pump on:
digitalWrite(S3pin, HIGH);
delay(10000); //TIMER
digitalWrite(S3pin, LOW);
lcd.clear();
lcd.print("Chem Dosing Time");
delay(5000);
lcd.clear();
lcd.print(" Mixture READY");
delay(2000);
// OUTPUT Chem 1 Detergent Pump
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(180000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 4 PHASE 1 END");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 4 -------- PHASE 1 END
//---PROGRAM 4 -------- PHASE 2 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 4 PHASE 2");
lcd.setCursor(0, 1);
lcd.print(" RINSE PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(25000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan End");
delay(2000);
// OUTPUT Dryer Fan
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 4 PHASE 2 END");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 4 -------- PHASE 2 END
//---PROGRAM 4 -------- PHASE 3 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 4 PHASE 3");
lcd.setCursor(0, 1);
lcd.print(" 2ND RINSE PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(25000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Dryer Fan
lcd.clear();
lcd.print("Dryer Fan Run");
// turn Dryer Fan on:
digitalWrite(C4pin, HIGH);
delay(25000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.print("Dryer Fan End");
delay(2000);
// OUTPUT Dryer Fan
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PGRM 4 PHASE 3 END");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 4 -------- PHASE 3 END
//---PROGRAM 4 -------- PHASE 4 START
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROGRAM 4 PHASE 4");
lcd.setCursor(0, 1);
lcd.print("DISINFECTION PROCESS");
delay(2000);
// OUTPUT Lock Drain Valve (to retain water in tank)
// turn Drain Valve ON:
digitalWrite(S4pin, HIGH);
// OUTPUT Lock Drain Valve (to retain water in tank)
// OUTPUT VALVE 2 (Hot Water Valve 75c)
lcd.clear();
lcd.print("WATER FILLING (VAL-2)");
// turn HOT Water on:
digitalWrite(S1pin, HIGH);
delay(120000); //TIMER
digitalWrite(S2pin, LOW);
lcd.clear();
lcd.print(" WATER FILL DONE");
delay(2000);
// OUTPUT VALVE 2 (Hot Water Valve 75c)
// OUTPUT Chem 2 Rinse Aid Pump
lcd.clear();
lcd.print("Chem 2 Run");
// turn Chem 2 pump on:
digitalWrite(S5pin, HIGH);
delay(5000);
digitalWrite(S5pin, LOW);
lcd.clear();
lcd.print("Chem Dosing Time");
delay(10000);
lcd.clear();
lcd.print(" Mixture READY");
delay(2000);
// OUTPUT Chem 2 Rinse Aid Pump
// OUTPUT WASH PUMP
lcd.clear();
lcd.print("Wash Pump Run");
// turn Water Pump on:
digitalWrite(C1pin, HIGH);
delay(180000); //TIMER
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.print("Wash Pump End");
delay(2000);
// OUTPUT WASH PUMP
// OUTPUT Drain Valve (to DRAIN water in the tank)
// turn Drain Valve OFF:
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.print("Draining............");
delay(10000);
// OUTPUT Drain Valve (to DRAIN water in the tank)
lcd.clear(); //END STATUS LCD
lcd.setCursor(0, 0);
lcd.print("PROGRAM 1 COMPLETED");
lcd.setCursor(0, 1);
lcd.print("SEL PROGRAM to RUN");
//---PROGRAM 4 -------- PHASE 4 END
digitalWrite(Led4, HIGH); // OFF BUTTON LED
}
//---PROGRAM 4 END --------
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//---PUSH BUTTON DRAIN --------
if (ButtonState5 == LOW){
digitalWrite(Led5, LOW);
lcd.clear();
lcd.print("Draining............");
// turn Valve on:
digitalWrite(S4pin, HIGH);
delay(10000);
digitalWrite(S4pin, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" DRAINING STOPPED");
lcd.setCursor(0, 1);
lcd.print(" SEL PROGRAM to RUN");
digitalWrite(Led5, HIGH);
}
//---PUSH BUTTON DRAIN END --------
//---PUSH BUTTON WATER --------
if (ButtonState6 == LOW){
digitalWrite(Led6, LOW);
lcd.clear();
lcd.print(" WATER PRESSURE RUN");
// turn Water on:
digitalWrite(C1pin, HIGH);
delay(10000);
digitalWrite(C1pin, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" PROCESS END");
lcd.setCursor(0, 1);
lcd.print(" SELECT PROG to RUN");
digitalWrite(Led6, HIGH);
}
//---PUSH BUTTON WATER END --------
//---PUSH BUTTON FAN --------
if (ButtonState7 == LOW){
digitalWrite(Led7, LOW);
lcd.clear();
lcd.print("FAN is Running......");
// turn FAN on:
digitalWrite(C4pin, HIGH);
delay(5000);
digitalWrite(C4pin, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" FAN is STOP");
lcd.setCursor(0, 1);
lcd.print(" SELECT PROG to RUN");
digitalWrite(Led7, HIGH);
}
//---PUSH BUTTON FAN END --------
}