Опубликовано

Датчик уровня жидкости

По материалам руководства к набору “Умный дом на базе Arduino. Большой набор + КНИГА

Датчик уровня жидкости предназначен для определения уровня жидкости в различных емкостях. На датчике расположен резисторы, транзистор и чередующиеся оголенные проводящие контакты (рис. S6.1). Чем глубже датчик погружен в воду (большая часть длины контактов находится в воде), тем меньше сопротивление между проводящими контактами.

Внешний вид, назначение контактов

S6-1-уровень воды

Рис. S6.1. Датчик уровня воды (глубины)

Основные характеристики

Наименование Значение
Зона обнаружения, мм 16 ÷ 40
Напряжение питания, В 3,3 ÷ 5
Ток потребления, мА 20
Размеры, мм 62×20×8
Рабочая температура, °С 10 ÷ 30

Схема подключения

S6-2-уровень воды

Рис. S6.2. Схема подключения датчика уровня жидкости

Программный код

Листинг S6.1. Измерения уровня жидкости

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#define aPin A0 // пин для подключения аналогового выхода датчика
 
int avalue=0; //переменная
 
int levels[3]={600,500,400}; // значение уровней
 
void setup(){
 
pinMode(aPin, INPUT); // настройка аналогового пина на вход
 
Serial.begin(9600); // инициализация последовательного порта
 
}
 
void loop(){
 
// получение значения с аналогового вывода датчика
 
avalue=analogRead(aPin);
 
// вывод значения в монитор последовательного порта Arduino
 
Serial.print("avalue=");
 
Serial.print(avalue);
 
if (avalue>=levels[0]) Serial.println("->MAX");
 
if ((avalue>levels[2])&&(avalue<levels[0])) Serial.println("->NORM");
 
if (avalue<=levels[2]) Serial.println("->MIN");
 
// пауза перед следующим получением значения 1000 мс
 
delay(1000);
 
}

Результаты измерений

Значение аналоговых сигналов на аналоговом входе Arduino вы можете определить экспериментальным путем. Они могут оказаться такими, как показано на рис. S6.3.

2-06-3-уровень воды

Рис. S6.3. Экспериментальные значения аналоговых сигналов для разных уровней погружения

Добавить комментарий