// клапана
int KL_1 = 1;
int KL_2 = 0;
int KL_3 = 0;
// открыт - 1
// закрыт - 0
// продукт счетчик заполнения типа
int oil = 0;
//датчики
// 0 - пустой, 1 - в процессе наполнения.
int Dy_1 = 1;
int Dy_2 = 1;
int Dy_3 = 1;
void setup() {
Serial.begin(9600);
//датчики
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
//светодиоды
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10,OUTPUT);
//Клапаны
pinMode(A3, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A5, OUTPUT);
// открыт - 1
// закрыт - 0
//Датчики уровня
// 0 - пустой, 1 - в процессе наполнения.
}
void loop() {
int Dy_1 = digitalRead(A0);
int Dy_2 = digitalRead(A1);
int Dy_3 = digitalRead(A2);
//рассмотрим все возможные случаи
//if (KL_1 == 1) {analogWrite(8,255);analogWrite(9,255);}
//if (KL_2 == 1) {analogWrite(5,255);analogWrite(6,255);}
//if (KL_3 == 1) {analogWrite(2,255); analogWrite(3,255);}
//if (Dy_1 == 0) {analogWrite(8,0);analogWrite(9,255);}
//if (Dy_2 == 0) {analogWrite(5,0);analogWrite(6,255);}
//if (Dy_3 == 0) {analogWrite(2,0);analogWrite(3,255);}
//if (Dy_1 == 1 && KL_1 == 0 ) {analogWrite(8,255);analogWrite(9,0);}
//if (Dy_2 == 1 && KL_2 == 0 ) {analogWrite(5,255);analogWrite(6,0);}
//if (Dy_3 == 1 && KL_3 == 0) {analogWrite(2,255);analogWrite(3,0);}
//oil++;
//if (oil > 500) {Dy_1 = 0}
//if (oil >1000) {Dy_2 = 0;}
//if (oil >1500) {Dy_3 = 0;}
//if (Dy_1 == 0) {
//KL_1 = 0;
//KL_2 = 1;
//}
//if (Dy_2 == 0) {
//KL_2 = 0;
//KL_3 = 1;
//}
//if (Dy_3 == 0) {
//KL_3 = 0;
//KL_1 = 1;
//}
if ( Dy_1 == 1 && Dy_2 == 1 && Dy_3 == 1) {
while (Dy_1 != 0 ) {
KL_1 = 1; analogWrite(2,255);analogWrite(3,255);
KL_2 = 0; analogWrite(5,255);
KL_3 = 0; analogWrite(8,255);
}
if (Dy_1 == 0) {analogWrite(3,255);analogWrite(2,0);analogWrite(4,0);}
}
if (Dy_1== 0 && Dy_2 == 1 && Dy_3 == 1) {
while (Dy_2 != 0) {
KL_1 = 0; analogWrite(3,255);
KL_2 = 1; analogWrite(5,255);analogWrite(6,255);
KL_3 = 0; analogWrite(8,255);
}
if (Dy_2 == 0) {analogWrite(6,255);analogWrite(5,0);analogWrite(7,0);}
}
if (Dy_1 == 0 && Dy_2 == 0 && Dy_3 == 1) {
while (Dy_3 !=0) {
KL_1 = 0; analogWrite(3,255);
KL_2 = 0; analogWrite(6,255);
KL_3 = 1; analogWrite(8,255); analogWrite (9,255);
}
if (Dy_3 == 0 ) {analogWrite(9,255);analogWrite(8,0);analogWrite(10,0);}
}
if (Dy_1 == 0 && Dy_2 == 0 && Dy_3 == 0) {
KL_1 = 0; analogWrite(3,255);
KL_2 = 0; analogWrite(6,255);
KL_3 = 0; analogWrite(9,255);
}
if (Dy_1 == 1 && Dy_2 == 0 && Dy_3 == 0) {
while (Dy_1 != 0 ) {
KL_1 = 1; analogWrite(3,255);analogWrite(2,255);
KL_2 = 0; analogWrite(6,255);
KL_3 = 0; analogWrite(9,255);
}
if (Dy_1 = 0) {analogWrite(3,255);analogWrite(2,0);analogWrite(4,0);}
}
if ( Dy_1 == 0 && Dy_2 == 1 && Dy_3 == 0) {
while (Dy_2 != 0) {
KL_1 = 0; analogWrite(3,255);
KL_2 = 1; analogWrite(5,255);analogWrite(6,255);
KL_3 = 0; analogWrite(8,255);
}
if (Dy_2 == 0 ) {analogWrite(6,255);analogWrite(5,0);analogWrite(7,0);}
}
if ( Dy_1 == 1 && Dy_2 == 0 && Dy_3 == 1) {
while (Dy_1 !=0) {
KL_1 = 1; analogWrite(2,255);analogWrite(3,255);
KL_2 = 0; analogWrite(6,255);
KL_3 = 0; analogWrite(8,255);
}
if (Dy_1 == 0 ) {analogWrite(2,0);analogWrite(3,255);analogWrite(4,0);}
}
if ( Dy_1 == 1 && Dy_2 == 1 && Dy_3 == 0) {
while (Dy_2 !=0 ) {
KL_1 = 0; analogWrite(2,255);analogWrite(3,0);
KL_2 = 1; analogWrite(6,255);analogWrite(5,255);
KL_3 = 0; analogWrite(9,255);
}
if (Dy_2 == 0 ) {analogWrite(6,255);analogWrite(5,0);}
}
delay(10);
Serial.print(oil );
Serial.print(" ");
Serial.print(Dy_1);
Serial.print(" ");
Serial.print(Dy_2);
Serial.print(" ");
Serial.println(Dy_3);
}