Сегодня на рынке представлено большое количество разнообразных датчиков уровня воды, и некоторые из них являются весьма бюджетными. Но что, если вам срочно нужен подобный датчик для проектов, где не так важна точность, и вы не хотите ждать посылки или идти в магазин за покупным датчиком? В данном случае есть простое и самое дешевое решение – сделать датчик уровня воды из того, что есть под руками.

Для сборки самодельного датчика уровня воды понадобятся лишь провода и резисторы. Такой датчик уровня воды может обнаруживать низкий уровень содержания воды, высокий уровень содержания воды и нормальный уровень.
Соберите датчик в соответствии со следующим изображением и его эквивалентной мостовой схемой.

Давайте проверим наш датчик уровня воды. Возьмем Arduino Uno и RGB-светодиод. К линиям 6 и 7 подключим ответвления от мостовой схемы датчика уровня воды, а к линиям 8, 9 и 10 подключим выводы RGB-светодиода. Код для Arduino представлен далее.
int H_pin=7;
int L_pin=6;
int B=10;
int G=9;
int R=8;
int H_State=0;
int L_State=0;
long lasttimeLoop2=0;
long lasttimeLEDFalsh=0;
void setup() {
Serial.begin(115200);
pinMode(H_pin,INPUT);
pinMode(L_pin,INPUT);
pinMode(B,OUTPUT);
pinMode(G,OUTPUT);
pinMode(R,OUTPUT);
}
void loop() {
waterSensorLED();
waterDisplay();
}
void waterDisplay(){
if(millis()-lasttimeLoop2>1000){
Serial.print("H_State=");
Serial.print(H_State);
Serial.print(",L_State=");
Serial.print(L_State);
Serial.println();
lasttimeLoop2=millis();
}
}
void waterSensorLED(){
H_State=digitalRead(H_pin);
L_State=digitalRead(L_pin);
if(H_State==1 and L_State==1){
digitalWrite(G,1);
digitalWrite(B,0);
digitalWrite(R,0);
}
if(H_State==0 and L_State==1){
if(millis()-lasttimeLEDFalsh>0 and millis()-lasttimeLEDFalsh<500){
digitalWrite(G,1);
digitalWrite(B,0);
digitalWrite(R,1);
}
if(millis()-lasttimeLEDFalsh>500 and millis()-lasttimeLEDFalsh<1000){
digitalWrite(G,0);
digitalWrite(B,0);
digitalWrite(R,0);
}
if(millis()-lasttimeLEDFalsh>1000){
lasttimeLEDFalsh=millis();
}
}
if(H_State==0 and L_State==0){
digitalWrite(G,0);
digitalWrite(B,0);
digitalWrite(R,1);
}
}
Когда уровень воды низкий, светодиод меняет цвет на желтый и мигает каждую секунду. Когда уровень воды высокий, светодиод меняет цвет на зеленый. Когда уровень воды очень низкий, светодиод меняется на красный.
© digitrode.ru