Не проверен в деле!!! Наработки будущего проекта...
T_in Период времени подсчета импульсов для усреднения (мс)
K_flow Коэффициент расходомера (мл/импульс)
alpha Коэффициент фильтра (0-1)
PinN Номер цифрового пина.
usePullUp = true Использовать внутренний подтягивающий резистор
boardType 1=UNO, 2=MEGA2560, 3=LEONARDO
Выход Q_final ml/sec
Выбор параметра Альфа находится в диапазоне от 0 до 1.
- Если альфа близка к 1, то фильтр больше доверяет мгновенным показаниям (F_inst). Это дает быстрый отклик на изменения расхода, но показания могут быть "шумными" и прыгать.
- Если альфа близка к 0, то фильтр больше доверяет усредненным показаниям (F_avg). Это дает очень стабильные и плавные показания, но медленный отклик на изменения расхода.
На практике для измерения расхода обычно выбирают альфа в диапазоне 0.1 до 0.3.
// Таблица соответствия пинов и прерываний для разных плат
* Arduino UNO:
* Пин 2 -> INT0 (прерывание 0)
* Пин 3 -> INT1 (прерывание 1)
* Arduino Leonardo:
* Пин 2 -> INT0 (прерывание 0)
* Пин 3 -> INT1 (прерывание 1)
* Пин 7 -> INT4 (прерывание 4)
* Пин 8 -> INT5 (прерывание 5)
* Arduino MEGA2560:
* Пин 2 -> INT0 (прерывание 0)
* Пин 3 -> INT1 (прерывание 1)
* Пин 21 -> INT2 (прерывание 2)
* Пин 20 -> INT3 (прерывание 3)
* Пин 19 -> INT4 (прерывание 4)
* Пин 18 -> INT5 (прерывание 5)
Описание... блока..
Гибридный профессиональный алгоритм измерения расхода
Составляющие:
Точное усреднение (Фон): Мы используем подсчет импульсов за длительный интервал (например, 10-60 секунд) для получения эталонного, точного значения средней частоты F_avg.( Расход за время)
Быстрый отклик (Передний план): Мы постоянно измеряем период между последними импульсами для расчета мгновенной частоты F_inst. (Мгновенный расход)
Слияние данных (Фильтр): Мы "подтягиваем" мгновенные показания к эталонным, но позволяем им отклоняться при реальных изменениях расхода.
Преимущества этого гибридного метода:
Высокая точность на низких расходах:
Достигается за счет длительного интервала усреднения T_in.
Отсутствие скачков "±1 импульс": Погрешность усреднения составляет ±1 / T_in импульс. Например 30 секунд это всего ±0.033 импульса что ничтожно мало.
Быстрая реакция на изменение расхода:
Как только поток начинает меняться, F_inst изменяется сразу же, и комплиментарный фильтр начинает плавно "вести" точное значение F_avg за собой.
Плавность показаний: Фильтр эффективно убирает шумы и скачки, связанные с дискретностью импульсов и турбулентностью потока.
1,Причина редактирования, подобраны незначительные хвосты в коде , добавлено описание внутри кода на русском..
2. Добавлено включение подтягивающего резистора..
