Сторінка 1 з 1

Датчик потока воды с эффектом Холла YF-S201

Додано: 06 грудня 2019 09:15
Arduino
Расходомеры зарекомендовали себя как отличные устройства для измерения расхода воды, и теперь очень просто построить систему управления водой с использованием известного датчика расхода воды YF-S201. Этот датчик находится на одной линии с линией воды и содержит датчик вращения, чтобы измерить, сколько воды прошло через него. Есть встроенный магнитный датчик Холла, который выдает электрический импульс при каждом обороте. Датчик потока воды с эффектом Холла YFS201 поставляется с тремя проводами: красный / VCC (вход постоянного тока 5-24 В), черный / GND (0 В) и желтый / OUT (импульсный выход). Подсчитывая импульсы с выхода датчика, мы можем легко рассчитать расход воды (в литрах / час - л / час), используя подходящую формулу преобразования.
YF-S201.jpg
Аппаратное обеспечение Датчика потока воды

Подключение датчика потока воды к Arduino требует минимального присоединения. Подключите провода VCC (красный) и GND (черный) датчика потока воды к 5 В и Gnd Arduino, и соедините провод импульсного выхода (желтый) датчика потока воды с цифровым выводом 2 Arduino. Обратите внимание, что датчик потока воды не властолюбивый тип; он потребляет максимум 15-20 мА при входе 5 В постоянного тока!
Здесь можно Купить YF‐ S201 Датчик расхода воды

Подготовка программного обеспечения

Скетч Arduino (код) использует внешнее прерывание (int 0) на цифровом выводе 2 Arduino (D2). Это используется для считывания выходных импульсов с датчика потока воды. Когда Arduino обнаруживает импульс, он немедленно запускает функцию pulseCounter (). Затем эта функция подсчитывает общее количество обнаруженных импульсов.
/*
YF‐ S201 Water Flow Sensor
Water Flow Sensor output processed to read in litres/hour
*/
volatile int flow_frequency; // Measures flow sensor pulses
unsigned int l_hour; // Calculated litres/hour
unsigned char flowsensor = 2; // Sensor Input
unsigned long currentTime;
unsigned long cloopTime;
void flow () // Interrupt function
{
flow_frequency++;
}
void setup()
{
pinMode(flowsensor, INPUT);
digitalWrite(flowsensor, HIGH); // Optional Internal Pull-Up
Serial.begin(9600);
attachInterrupt(0, flow, RISING); // Setup Interrupt
sei(); // Enable interrupts
currentTime = millis();
cloopTime = currentTime;
}
void loop ()
{
currentTime = millis();
// Every second, calculate and print litres/hour
if(currentTime >= (cloopTime + 1000))
{
cloopTime = currentTime; // Updates cloopTime
// Pulse frequency (Hz) = 7.5Q, Q is flow rate in L/min.
l_hour = (flow_frequency * 60 / 7.5); // (Pulse frequency x 60 min) / 7.5Q = flowrate in L/hour
flow_frequency = 0; // Reset Counter
Serial.print(l_hour, DEC); // Print litres/hour
Serial.println(" L/hour");
}
}
Датчики потока воды / жидкости обычно выдают серию импульсов, пропорциональных мгновенному расходу, что означает, что для их интерпретации необходимо реализовать простой частотомер. Поскольку в этом проекте используется датчик потока воды, содержащий датчик Холла, который выдает частоту пульса, пропорциональную скорости потока, он не только полезен сам по себе, но также демонстрирует очень полезную технику, которую можно использовать в широкий спектр проектов, в которых необходимо измерять скорость, с которой что-то происходит (например, электронный духовой инструмент).

Чтобы измерить количество воды, прошедшей через определенное время через датчик потока воды, ее сначала пропустили через датчик потока воды, который был выбран в качестве входного интерфейса в потоке. Формулы применяются для измерения количества оборотов / импульсов в минуту вращения.

Скорость потока может быть определена косвенно различными методами, такими как изменение скорости или кинетической энергии. Здесь мы определили скорость потока по изменению скорости воды. Скорость зависит от давления, которое проталкивает сквозные трубопроводы. Поскольку площадь поперечного сечения трубы известна и остается постоянной, средняя скорость является показателем скорости потока. Основным соотношением для определения расхода жидкости в таких случаях является Q = VxA , где Q - расход / общий поток воды через трубу, V - средняя скорость потока, а А - площадь поперечного сечения трубы ( вязкость, плотность и трение жидкости в контакте с трубой также влияют на расход воды).

Частота импульсов (Гц) = 7,5Q, Q - скорость потока в литрах / мин
Скорость потока (литров / час) = (частота импульсов x 60 мин) / 7,5Q
Другими словами:

Частота датчика (Гц) = 7,5 * Q (литров / мин)
Литры = Q * прошедшее время (секунды) / 60 (секунды / минута)
Литров = (Частота (Импульсы / секунда) / 7,5) * прошедшее время (секунды) / 60
Литров = импульсов / (7,5 * 60)

Датчик потока жидкости YF-S201

Додано: 06 грудня 2019 09:49
Arduino
Такий датчик добре підходить для труб більших за тоненькі сіліконові. Може використовуватися в трубопроводі побутововму :shock:
Для дуже точних вимірів води треба брати модель https://arduinka.biz.ua/ru/datchik-rash ... 81c74.html