Датчик уровня воды: различия между версиями
(Новая страница: «мини|Датчик уровня воды '''Датчик уровня воды''' предназначен...») |
мНет описания правки |
||
Строка 35: | Строка 35: | ||
Соберем схему. | Соберем схему. | ||
// Подключаем необходимые библиотеки | |||
#include <OneWire.h> | |||
#include <DallasTemperature.h> | |||
// Шину данных подключаем к выводу №2 Arduino | |||
#define ONE_WIRE_BUS 2 | |||
// Создаём экземпляр класса для нашей шины и ссылку на него | |||
OneWire oneWire(ONE_WIRE_BUS); | |||
DallasTemperature sensors(&oneWire); | |||
// ФУНКЦИЯ ПРЕДУСТАНОВОК | |||
void setup(void) | |||
{ | |||
Serial.begin(9600); // Инициализация серийного порта | |||
sensors.begin(); // Инициализация шины | |||
} | |||
// ОСНОВНОЙ ЦИКЛ | |||
void loop(void) | |||
{ | |||
Serial.print("Reading Temperature..."); | |||
// Подаём команду на чтение | |||
sensors.requestTemperatures(); | |||
Serial.println("Read"); | |||
Serial.print("Sensor Temperature 1: "); | |||
// Отображаем значение температуры | |||
Serial.print(sensors.getTempCByIndex(0)); | |||
} | |||
Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение аналоговых сигналов на аналоговом входе Arduino для трех уровней погружения были определены экспериментальным путем: > 400 – минимальное погружение; > 500 – средний уровень погружения; > 600 – большое погружение. Соответственно для каждого уровня погружения на динамике воспроизводится звуковой сигнал разной частоты: минимальное погружение – 293 Гц (нота ре 1 октавы); средний уровень погружения – 466 Гц (нота си-бимоль 1 октавы); большое погружение – 587 Гц (нота ре 2 октавы). При отсутствии погружения звуковой сигнал на динамике не воспроизводится. | Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение аналоговых сигналов на аналоговом входе Arduino для трех уровней погружения были определены экспериментальным путем: > 400 – минимальное погружение; > 500 – средний уровень погружения; > 600 – большое погружение. Соответственно для каждого уровня погружения на динамике воспроизводится звуковой сигнал разной частоты: минимальное погружение – 293 Гц (нота ре 1 октавы); средний уровень погружения – 466 Гц (нота си-бимоль 1 октавы); большое погружение – 587 Гц (нота ре 2 октавы). При отсутствии погружения звуковой сигнал на динамике не воспроизводится. |
Версия от 19:34, 31 мая 2021
Датчик уровня воды предназначен для определения уровня воды в различных емкостях, где недоступен визуальный контроль, с целью предупреждения перенаполнения емкости водой через критическую отметку.
Конструкции датчиков уровня воды могут быть различными – поплавковые, погруженные, врезные. Данный датчик воды – погруженный. Чем больше погружение датчика в воду, тем меньше сопротивление между двумя соседними проводами. Датчик имеет три контакта для подключения к контроллеру.
- + – питание датчика;
- - – земля;
- S - аналоговое значение.
На вывод S подается аналоговое значение, которое можно передавать в контроллер для дальнейшей обработки, анализа и принятия решений. Датчик имеет красный светодиод, сигнализирующих о наличие поступающего на датчик питания.
Технические характеристики
- Напряжение питания: 3.3-5 В;
- Ток потребления 20 мА;
- Выход: аналоговый;
- Зона обнаружения: 16×30 мм;
- Размеры: 62×20×8 мм;
- Рабочая температура: 10 – 30 °С.
Пример кода
Рассмотрим подключение датчика уровня воды к Arduino. Создадим проект звуковой сигнализации затопления помещения. При погружении датчика в воду, сигнализация издает три вида звуковых сигналов (небольшое затопление, средний уровень, критический уровень), соответствуюший трем уровням воды. Для воспроизведения звуковых можно к цифровому выводу подключить пьезоизлучатель - электроакустическое устройства воспроизведения звука. Но при этом звук получается очень тихий. Чтобы получить громкость более приличного уровня, к цифровому выводу Arduino динамик, но не напрямую, а через транзистор.
Для проекта нам понадобятся следующие детали:
- Плата Arduino Uno
- Датчик уровня воды
- Динамик 8 Ом
- Резистор 500 Ом
- Транзистор КТ503е
- Соединительные провода
Соберем схему.
// Подключаем необходимые библиотеки
- include <OneWire.h>
- include <DallasTemperature.h>
// Шину данных подключаем к выводу №2 Arduino
- define ONE_WIRE_BUS 2
// Создаём экземпляр класса для нашей шины и ссылку на него OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire);
// ФУНКЦИЯ ПРЕДУСТАНОВОК void setup(void) {
Serial.begin(9600); // Инициализация серийного порта sensors.begin(); // Инициализация шины
}
// ОСНОВНОЙ ЦИКЛ void loop(void) { Serial.print("Reading Temperature..."); // Подаём команду на чтение sensors.requestTemperatures(); Serial.println("Read"); Serial.print("Sensor Temperature 1: "); // Отображаем значение температуры Serial.print(sensors.getTempCByIndex(0)); }
Аналоговый вывод датчика подключен к аналоговому входу Arduino, который представляет собой аналого-цифровой преобразователь (АЦП) с разрешением 10 бит, что позволяет на выходе получать значения от 0 до 1023. Значение аналоговых сигналов на аналоговом входе Arduino для трех уровней погружения были определены экспериментальным путем: > 400 – минимальное погружение; > 500 – средний уровень погружения; > 600 – большое погружение. Соответственно для каждого уровня погружения на динамике воспроизводится звуковой сигнал разной частоты: минимальное погружение – 293 Гц (нота ре 1 октавы); средний уровень погружения – 466 Гц (нота си-бимоль 1 октавы); большое погружение – 587 Гц (нота ре 2 октавы). При отсутствии погружения звуковой сигнал на динамике не воспроизводится.