Импульсный датчик потока позволяет определить расход воды в диапазоне от 1 до 25 литров в минуту. Перейти к полному описанию
Артикул: 39385795
YF-201C - импульсный датчик потока позволяет определить расход воды в диапазоне от 1 до 25 литров в минуту. Диаметр 1/2" DN15. Датчик использует трехпроводное подключение (VCC (красный), GND (черный) и OUT (желтый)). Корпус датчика выдерживает давление до 1.75 МПа и температуру от -25 до +80℃. Благодаря этому данный датчик может использоваться в системах водоснабжения многоквартирных домов (при условии соблюдения разрешенных температур не более 75℃ и давления 0.6-0.7 МПа).
Для расчета скорости потока используется формула Q = F/5, где Q - скорость потока в литрах в минуту, а F - частота импульсов. Определить частоту импульсов удобнее всего по прерыванию.
Скетч для определения скорости потока по прерыванию
const uint8_t pinSensor = 2; // Определяем № вывода Arduino, к которому подключён датчик расхода воды uint8_t intSensor; // Объявляем переменную для хранения № прерывания для вывода pinSensor volatile uint16_t varCount = 0; // Определяем переменную для подсчёта количества импульсов поступивших от датчика uint32_t varTime = 0; // Определяем переменную для хранения времени последнего расчёта uint8_t varResult = 0; // Определяем переменную для хранения рассчитанной скорости потока воды // void funCountInt(){varCount++;} // Определяем функцию, которая будет приращать значение счётчика импульсов // void setup(){ // Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта pinMode(pinSensor, INPUT); // Конфигурируем вывод к которому подключён датчик, как вход intSensor = digitalPinToInterrupt(pinSensor); // Определяем № прерывания который использует вывод pinSensor attachInterrupt(intSensor, funCountInt, RISING); // Назначаем функцию funCountInt как обработчик прерываний intSensor при каждом выполнении условия RISING - переход от 0 к 1 if(intSensor<0){Serial.print("Датчик YF-201C подключен к пину, не поддерживающему прерывание");} // Выводим сообщение о том, что датчик подключён к выводу не поддерживающему внешнее прерывание } // // void loop(){ // if((varTime+1000)<millis() || varTime>millis()){ // Если c момента последнего расчёта прошла 1 секунда, или произошло переполнение millis то ... varResult=varCount/5; // Рассчитываем скорость потока воды: Q = F/7,5 л/мин varCount=0; varTime=millis(); // Сбрасываем счётчик и сохраняем время расчёта Serial.println((String) "Cкорость = "+varResult+" L/MIN"); // Выводим скорость потока воды, показания которой будут меняться 1 раз в секунду } // (количество импульсов от датчика varCount равно частоте в Гц, так как расчёт происходит 1 раз в секунду) }