const int startswitch = 25;
int startswitchstate =0;
//const int stopswitch = 2;
//int stopswitchstate = 0;
const int grinder1on = 22; const int grinder2on = 34; const int grinder3on = 35;
int grinder1onstate = 0; int grinder2onstate = 0; int grinder3onstate =0;
const int grinder1start = 21; const int grinder2start = 19; const int grinder3start =18;
int grinder1startstate = 0; int grinder2startstate = 0; int grinder3startstate = 0;
const int grinder1stop = 5; const int grinder2stop = 32; const int grinder3stop = 33;
int grinder1stopstate = 0; int grinder2stopstate = 0; int grinder3stopstate = 0;
const int grinder1valve = 4; const int grinder2valve = 2; const int grinder3valve = 15;
int currentmachine = 1;
int runtimepot = 13;
int seconds = 0;
int ontimeread = 0;
int timestartcurrent = 0;
int timestartprevious = 0;
int runcheckcurrent = 0;
int runcheckprevious = 0;
int runcheckinterval = 13000;
int valveon = 0;
void setup() {
Serial.begin(115200);
pinMode(startswitch, INPUT); //pinMode(stopswitch, INPUT);
pinMode(grinder1on, INPUT); pinMode(grinder2on, INPUT); pinMode(grinder3on, INPUT);
pinMode(grinder1start, INPUT); pinMode(grinder2start, INPUT); pinMode(grinder3start, INPUT);
pinMode(grinder1stop, INPUT); pinMode(grinder2stop, INPUT); pinMode(grinder3stop, INPUT);
pinMode(grinder1valve, OUTPUT); pinMode(grinder2valve, OUTPUT); pinMode(grinder3valve, OUTPUT);
}
void loop() {
timestartcurrent= millis();
ontimeread = analogRead(runtimepot);
seconds = map(ontimeread, 0, 4096, 1, 10);
grinder1stopstate = digitalRead(grinder1stop);
Serial.println(currentmachine);
startswitchstate = digitalRead(startswitch);
grinder1onstate = digitalRead(grinder1on);
if (grinder1onstate == LOW) {
digitalWrite(grinder1valve, LOW);
}
grinder2onstate = digitalRead(grinder2on);
if (grinder2onstate == LOW) {
digitalWrite(grinder2valve, LOW);
}
grinder3onstate = digitalRead(grinder3on);
if (grinder3onstate == LOW) {
digitalWrite(grinder3valve, LOW);
}
delay(50);
if (startswitchstate == HIGH) {
if (grinder1onstate == HIGH && currentmachine == 1) {
grinder1startstate = digitalRead(grinder1start);
grinder1stopstate = digitalRead(grinder1stop);
if ( grinder1startstate == HIGH){
timestartprevious = timestartcurrent;
digitalWrite(grinder1valve, HIGH);
Serial.println("Vlave 1 on");
valveon = 1;
}
if (grinder1stopstate == HIGH && valveon == 1 or timestartcurrent - timestartprevious >= 5000 ) {
//timestartprevious = timestartcurrent;
digitalWrite(grinder1valve, LOW);
Serial.println("Vlave 1 off");
currentmachine = 2;
runcheckprevious = millis();
valveon = 0;
}
}
else if (grinder1onstate == 0 && currentmachine == 1) {
currentmachine = 2;
}
//Serial.println(grinder2onstate);
if (grinder2onstate == HIGH && currentmachine == 2) {
grinder2startstate = digitalRead(grinder2start);
grinder2stopstate = digitalRead(grinder2stop);
if ( grinder2startstate == HIGH){
digitalWrite(grinder2valve, HIGH);
Serial.println("Vlave 2 on");
valveon = 1;
}
if (grinder2stopstate == HIGH && valveon == 1) {
digitalWrite(grinder2valve, LOW);
Serial.println("Vlave 2 off");
currentmachine = 3;
runcheckprevious = millis();
valveon = 0;
}
}
else if (grinder2onstate == 0 && currentmachine == 2) {
currentmachine = 3;
}
if (grinder3onstate == HIGH && currentmachine == 3) {
grinder3startstate = digitalRead(grinder3start);
grinder3stopstate = digitalRead(grinder3stop);
if ( grinder3startstate == HIGH){
digitalWrite(grinder3valve, HIGH);
Serial.println("Vlave 3 on");
valveon = 1;
}
if (grinder3stopstate == HIGH && valveon == 1) {
Serial.println("Vlave 3 off");
digitalWrite(grinder3valve, LOW);
currentmachine = 1;
runcheckprevious = millis();
valveon = 0;
}
}
else if (grinder3onstate == 0 && currentmachine == 3) {
currentmachine = 1;
}
runcheckcurrent = millis();
//if (runcheckcurrent - runcheckprevious >= runcheckinterval) {
// currentmachine ++;
// if (currentmachine == 4){
// currentmachine = 1;
// }
//}
}
if (startswitchstate == LOW){
digitalWrite(grinder1valve, LOW);
digitalWrite(grinder2valve, LOW);
digitalWrite(grinder3valve, LOW);
}
// Serial.println(valveon);
//Serial.println(startswitchstate);
// Serial.println(grinder1onstate);
//Serial.println(grinder2onstate);
//Serial.println(grinder3onstate);
//Serial.println(grinder2startstate);
}