Помогите с датчиками уровня воды

mavrin_88
Offline
Зарегистрирован: 28.09.2017

Друзья,не получается выполнить код программы 2 датчика в бочке с водой,верх и низ.

// ""СЛЕДИМ ЗА УРОВНЕМ ВОДЫ В БОЧКЕ""" 

if(digitalRead(up_sensor) && digitalRead(down_sensor)){ // Воды нет ни на одном датчике, включаем насос 

digitalWrite(RELAY_PIN,HIGH); 

Serial.println("БОЧКА ПУСТАЯ"); 

} else if(!digitalRead(up_sensor)){ // Вода на верхнем датчике, отключаем насос 

digitalWrite(RELAY_PIN,LOW); 

Serial.println("БОЧКА НАПОЛНЕНА ВОДОЙ"); 

}

Алгоритм такой что опрашивается состояния двух датчиков,если верхний и нижний в верхнем состоянии - значит вода в бочке полная,если оба внизу то бочка пуста и включается насос и соответственно как оба датчика будут в верхнем положении насос выключается

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

1. http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii и это не шутка, либо Вы это делаете, либо дальнейшего разговора не будет

mavrin_88 пишет:

если верхний и нижний в верхнем состоянии - значит вода в бочке полная,если оба внизу то бочка пуста и включается насос и соответственно как оба датчика будут в верхнем положении насос выключается

Сравните этот Ваш текст с кодом - в коденаписано совем другое. В коде у Вас: если оба датчика HIGH - мотор включается, иначе,  если датчик up_sensor- LOW, то выключается.

Приведите код в соответсвие с текстом и будем много счастья.

mavrin_88
Offline
Зарегистрирован: 28.09.2017

Не нашёл как редактировать тему чтоб привести ка правильному виду

if(digitalRead(up_sensor) && digitalRead(down_sensor)){ // Вода на верхнем датчике, отключаем насос

digitalWrite(RELAY_PIN,LOW); 

Serial.println("БОЧКА ПОЛНАЯ"); 

} else if(!digitalRead(down_sensor)){   // Вода на нижнем датчике,включаем насос

digitalWrite(RELAY_PIN,HIGH); 

Serial.println("БОЧКА ПУСТАЯ"); 

}

Такой код будет работать по алгоритму?

 

b707
Offline
Зарегистрирован: 26.05.2017

Я бы предусмотрел еще защиту от ошибок. Если показания датчиков противоречат друг другу (например, верхний "полный" а нижний "пустой") - высвечивать сигнал об ошибке и насос не включать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да Бог его знает, будет работать или нет. Вашему тексту это не соответсвует. В тексте написано "если оба внизу", а это не проверяется.