Севастополь

Датчик расхода воды, потока воды YF-S201 (G1/2)

Сколько воды тратите для того, чтобы приготовить обед? Или сходить в душ? Данный датчик даст ответ на эти и многие другие вопросы.
Подключить датчик и следить за тем, чтобы кран был закрыт? Легко! Перейти к полному описанию

 

Артикул: 24327385

 

нет

 

Сколько воды тратите для того, чтобы приготовить обед? Или сходить в душ? Данный датчик даст ответ на эти и многие другие вопросы.
Подключить датчик и следить за тем, чтобы кран был закрыт? Легко!

Общие сведения:

Датчик модели YF-S201 предназначен для измерения объёма проходящей жидкости в диапазоне от 1 до 30 литров в минуту при давлении не более 1,75 МПа. Датчик присоединяется к трубе или шлангу с помощью гайки с резьбой на ½ дюйма.

Датчик расхода воды YF-S201 состоит из пластикового корпуса, водяного ротора с магнитами и датчика Холла. Проходящая вода вращает магнит, что в свою очередь создает импульсы на проводе: 450 импульсов на 1 литр воды. Скорость вращения ротора прямо пропорциональна скорости водяного потока. Чем выше скорость, тем чаще магниты проходит рядом с датчиком Холла, тем больше импульсов на информационном выводе датчика.

Формула для расчёта импульсов и скорости потока воды: F = 7,5 Q => Q = F / 7,5

  • F - частота импульсов (Гц)
  • Q - скорость потока воды (л/мин)

Подключение:


Подключение датчика зависит от выбранного Вами алгоритма подсчета его импульсов

Если Вы будете подсчитывать количество импульсов с датчика используя внешнее прерывание, то информационный вывод датчика нужно подключить только к тому выводу Arduino, который используют внешние прерывание. Преимуществом данного метода является то, что все импульсы датчика будут, гарантированно, подсчитаны и для этого не требуется приостанавливать выполнение скетча. Недостаток данного метода заключается в том, что не все выводы Arduino используют внешние прерывания.

Если Вы будете подсчитывать количество импульсов с датчика измеряя длительность импульсов (пауз), то информационный вывод датчика можно подключить к любому выводу Arduino. Преимуществом данного метода является то, что количество подключаемых датчиков ограничено количеством свободных выводов Arduino. Еще одним преимуществом является то, что расчёт скорости происходит в режиме реального времени, после каждого импульса (паузы). Недостаток данного метода заключается в том, что в зависимости от выбранного алгоритма, либо возникнет риск пропустить импульс (паузу), либо потребуется приостанавливать выполнение скетча на время измерения длительности импульса (паузы).

Питание:

Входное напряжение 5 ... 18 В постоянного тока, подаётся на красный (Vcc) и чёрный (GND) провода датчика.


Характеристики:

Рабочее напряжение
5 - 18 V
Потребляемый ток
до 15 мА (при Vcc = 5 В)
Измеряемый диапазон расхода воды
1 - 30 л/мин
Погрешность измерений
 ± 3%
Рабочее давлениедо 1,75 Mpa 17,5 бар = 17,27 ст. атм.
Рабочая температура0 - 80 °C
Температура жидкостидо 120 °C
Влажность воздуха35 - 90 %
Размер патрубка
 ∅ 20 мм (внешний), ∅10 мм (внутренний)
Размер трубной резьбы
 G ½'' 1/2 трубного дюйма)
(внешний ∅ 20,955 мм / внутренний ∅ 18,631 мм / шаг 1,814 мм)
Габариты
65 x 36 x36 мм
Вес43 г

Комплектация:

  • Датчик расхода воды YF-S201

Примеры:

Скорость потока воды зависит от количества импульсов.

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("CEHCOP HE HA TOM HOMEPE");}  // Выводим сообщение о том, что датчик подключён к выводу не поддерживающему внешнее прерывание
}                                                              //
                                                               //
void loop(){                                                   //
    if((varTime+1000)<millis() || varTime>millis()){           // Если c момента последнего расчёта прошла 1 секунда, или произошло переполнение millis то ...
        varResult=varCount/7.5;                                // Рассчитываем скорость потока воды: Q = F/7,5 л/мин
        varCount=0; varTime=millis();                          // Сбрасываем счётчик и сохраняем время расчёта
    }                                                          // (количество импульсов от датчика varCount равно частоте в Гц, так как расчёт происходит 1 раз в секунду)
    Serial.println((String) "CKOPOCTb = "+varResult+" L/MIN"); // Выводим скорость потока воды, показания которой будут меняться 1 раз в секунду
}

Определение скорости потока воды, методом подсчёта длительности импульсов:

const uint8_t  pinSensor = 2;                                  // Определяем № вывода Arduino, к которому подключён датчик расхода воды
      uint32_t varPulse;                                       // Объявляем переменную для хранения длительности импульсов с датчика
      uint8_t  varResult;                                      // Объявляем переменную для хранения рассчитанной скорости потока воды
                                                               //
void setup(){                                                  //
    Serial.begin(9600);                                        // Инициируем передачу данных в монитор последовательного порта
    pinMode(pinSensor, INPUT);                                 // Конфигурируем вывод к которому подключён датчик, как вход
}                                                              //
                                                               //
void loop(){                                                   //
    varPulse=pulseIn(pinSensor, HIGH, 200000);                 // Считываем длительность импульса, но не дольше 0,2 сек
    if(varPulse){varResult=uint8_t(1000000/(15*varPulse));}    // Если длительность импульса считана, то рассчитываем скорость потока воды: Q = 1000000/(15L) л/мин
    else        {varResult=0;}                                 // Если длительность импульса не считана, то считаем что скорость потока воды = 0 л/мин
    Serial.println((String) "CKOPOCTb = "+varResult+" L/MIN"); // Выводим скорость потока воды, показания которой будут меняться после каждого импульса
}
  • В предыдущем примере скорость потока воды рассчитывалась по формуле: Q = F / 7,5 (л/мин)
  • Зная что период следования импульсов обратно пропорционален их частоте: T = 1 / F (сек.)
  • Длительность импульсов равна длительности пауз, равна половине периода: L = T / 2 (сек.)
  • Значит формулу можно изменить: Q = F / 7,5 = 1 / 7,5T = 1 / 15L (л/мин)
  • Так как длительность импульсов считывается в мкс, то: Q = 10/ 15L (л/мин)
Склад Москва нет в наличии
Склад Санкт-Петербург есть в наличии
Склад Севастополь нет в наличии