#define low_level_dat 3 // датчик нижнего уровня #define high_level_dat 4 // датчик верхнего уровня #define low_level_main 9 // датчик нижнего уровня резервуара #define relay_pin 5 //реле #define low_level_ind 7 //индикатор нижнего уровня #define high_level_ind 8 //индикатор верхнего уровня #define sirena_low_main 6 //звуковой сигнализатор нижнего уровня резервуара void setup() { pinMode(low_level_dat, INPUT_PULLUP); //инициализация входов-выходов pinMode(high_level_dat, INPUT_PULLUP); pinMode(low_level_main, INPUT_PULLUP); pinMode(low_level_ind, OUTPUT); pinMode(high_level_ind, OUTPUT); pinMode(sirena_low_main, OUTPUT); pinMode(relay_pin, OUTPUT); digitalWrite(relay_pin, LOW); digitalWrite(low_level_ind, LOW); digitalWrite(high_level_ind, LOW); digitalWrite(sirena_low_main, LOW); } void loop() { if(digitalRead(low_level_dat) && digitalRead(high_level_dat)){ // Воды нет ни на одном датчике, включаем насос digitalWrite(relay_pin,HIGH); digitalWrite(low_level_ind, HIGH); //поморгаем светодиодом нижнего уровня delay(500); digitalWrite(low_level_ind, LOW); delay(500); digitalWrite(low_level_ind, HIGH); delay(500); digitalWrite(low_level_ind, LOW); } else if(!digitalRead(high_level_dat)){ // Вода на верхнем датчике, отключаем насос digitalWrite(relay_pin,LOW); digitalWrite(high_level_ind, HIGH); //поморгаем светодиодом верхнего уровня delay(500); digitalWrite(high_level_ind, LOW); delay(500); digitalWrite(high_level_ind, HIGH); delay(500); digitalWrite(high_level_ind, LOW); } if(!digitalRead(low_level_main)){ //низкий уровень воды в резервуаре digitalWrite(sirena_low_main, HIGH); //включим сирену на 3 мин delay(500); digitalWrite(sirena_low_main, LOW); delay(500); digitalWrite(sirena_low_main, HIGH); delay(500); digitalWrite(sirena_low_main, LOW); delay(500); digitalWrite(sirena_low_main, HIGH); delay(1000); digitalWrite(sirena_low_main, LOW); } }