Цена:
Датчик потока воды FS400A предназначен для измерения количества пропускаемой через него жидкости с потоком от 1 до 60 литров в минуту. В датчике FS400A установлена крыльчатка, состоящая из нескольких лопастей которые толкает поток воды, магнит установленный на лопастях прокручиваясь каждый раз через датчик холла, установленный в датчике - создает импульсы, частота этих импульсов прямо пропорциональна пропускаемому объему воды в данный момент. Датчик выполнен из прочного пластика, и предназначен для применения с пищевыми жидкостями.
Основные параметры FS400A
Датчик в качестве информационного сигнала генерирует импульсы прямоугольной формы. Считав данный сигнал микроконтроллером и получив его частоту, мы можем определить объем расходуемой жидкости, её скорость и время протекания. Для вычисления объема необходимо использовать следующую формулу F = 4.8 x Q где F - частота сигнала в герцах (импульсов за 1 секунду), 4.8 - специальный коэффициент, Q - объем воды в литрах в секуду. Исходя из имеющийся у нас формулы и получив частоту сигнала с датчика FS400A мы можем легко определить сколько литров в секунду сейчас протекает через него - Q = F/4.8
//Пример кода для подключения FS400A к ARDUINO для вычисления скорости потока и объема воды
//Данный пример подходит к любым датчикам подобного типа, возможно только параметр factor_conversion будет другим
//Внимание данный код не проверялся, мы приводим его для понимания направления действий.
volatile int NumPulses ; //переменная для хранения импульсов
int PinSensor = 2 ; //Датчик подключен к выводу 2 (желтый провод от датчика)
float factor_conversion = 4.8 ; //тот самый коэффициент
float volume = 0 ; // При старте программы объем воды равен нулю
long dt = 0 ; //промежуточная переменная для вычисления объема жидкости
long t0 = 0 ; //millis() сюда будем записывать общее время работы контроллера
//---Эта функция будет выполнена по прерыванию---------------
void PulseCount ( )
{
NumPulses ++ ; //добавили единичку к текущему количеству импульсов
}
//---Функция получения частоты импульсов--------
int GetFrequency ( )
{
int frequency ;
NumPulses = 0 ; //Сбросим число импульсов в ноль 0
interrupts ( ) ; // Активируем прерывания
delay ( 1000 ) ; //контроллер в течении секунды считает импульсы - то есть отрабатывает функция PulseCount которая выше была
noInterrupts ( ) ; // Запрещаем прерывания
frequency = NumPulses ; //Частота в Герцах, так как мы ровно секунду считали импульсы.
return frequency ;
}
void setup ( ) // Инициализация при старте
{
t0 = millis ( ) ; //Записали время работы контроллера
}
void loop ( ) // Основной цикл
float frequency = GetFrequency ( ) ; //частота импульсов в Герцах
float flow_L_m = frequency / factor_conversion ; //вычисляем и переводим на литры в минуту
dt = millis ( ) - t0 ; //вычисляем точное время работы исключая возможные задержки на прерывания и прочее
t0 = millis ( ) ;
volume = volume + ( flow_L_m / 60 ) * ( dt / 1000 ) ; // Объем воды в литрах(L)=поток(L/s)*время(s)
//Итого у нас есть частота в Герцах - frequency,
//поток в литрах в минуту - flow_L_m,
//объем воды прошедший через датчик за время работы контроллера в литрах - volume
//Дальнейшие варианты использования, зависят от поставленной Вами задачи
}
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой!
© Все права защищены 2015 - 2025г https://compacttool.ru