SKU:RB-02S034 水流量传感器

来自ALSROBOT WiKi
跳转至: 导航搜索


02S03401.png

目录

产品介绍

Water Flow Sensor 水流传感器,主要由塑料阀体 、水流转子组件和霍尔传感器组成。此传感器应用于水的流量测控系统,例如安装在热水器进水端,对水的流量进行检测。Water Flow Sensor 外观轻巧灵便,体积小,便于安装,叶轮内部镶有不锈钢珠,永久耐磨,密封圈采用上、下受力的结构永不漏水。霍尔元件采用德国进口。并且用灌封胶封装防止进水,永不老化。所有原材料均有符合ROHS 检测标准。可以适合各种控制器和开发板,如:Arduino 控制器、STC 单片机、AVR 单片机等。

规格参数

  1. 进水口内径:8.5mm
  2. 进水口、出水口外径:20.12 mm
  3. 输出波形:方波
  4. 工作电压范围:DC +3V~+24V
  5. 最大工作电流:15mA(DC +5V)
  6. 负载能力:≤10mA(DC +5V)
  7. 使用温度范围:≤80℃
  8. 使用湿度范围:35%~90%RH(无结霜状态)
  9. 允许耐压:水压1.75Mpa 以下
  10. 保存温度:-25℃~80℃
  11. 保存湿度:25%~95%RH
  12. 输出脉冲高电平:>DC 4.5V(输入电压DC +5V)
  13. 输出脉冲低电平:<DC 0.5V(输入电压DC +5V)
  14. 精度(流量——脉冲输出):1~30L/min±1%以内
  15. 输出脉冲占空比:50±10%
  16. 输出上升时间:0.04uS
  17. 输出下降时间:0.18uS 流量
  18. 耐热性:在80±3℃环境中放置48h ,返回常温1-2h 无异常,且零件无裂纹、松驰、膨胀、变形等现象,精度变化10%以内。
  19. 耐寒性:在-20±3℃环境中放置48h ,返回常温1-2h 无异常,且零件无裂纹、松驰、膨胀、变形等现象,精度变化10%以内。
  20. 耐湿性:在40±2℃,相对湿度90%~95%RH 环境中放置72h 取出后,绝缘电阻1MΩ以上。
  21. 耐久性:在常温下,从水口通入0.1Mpa 水压,以接通1S,断开0.5S 为一循环。
  22. 流量---脉冲特性参照表
Water Flow Sensor02.jpg

引脚定义

  • 红色线(IN):接正极(+)
  • 黄色线(OUT):信号输出线
  • 黑色线(GND):接负极(-)

Water Flow Sensor模块结构图

Water Flow Sensor03.jpg

Water Flow Sensor使用注意事项:
此款水流传感器严禁剧烈冲击以及化学物质的侵蚀。严禁抛掷或碰撞。检测介质不宜超过120℃。安装方式为垂直于地面,且倾斜度不超过5度。

使用方法

工作原理

水流量传感器又可以叫做霍尔传感器,传感器整体是由 ABS 工程塑料制成,上下两端为 4 分螺牙,中间为一个圆柱体结构,并有三根导线接出,红色为正极、黑色负极、黄色信号输出端。其内部还有一个五叶轮和霍尔元件,背面有一个箭头,这个箭头表示水流的方向,所以如果更换的时候不能装反。
霍尔传感器中,五叶轮连接磁性转子,转子置于线圈中,线圈即为霍尔集成元件,当水通过水流转子组件时,磁性转子转动并且转速随着流量变化而变化,霍尔传感器输出相应脉冲信号,反馈给控制器,由控制器判断水流量的大小,进行调控。

编程原理

水流量传感器共引出三个引脚,分别是信号S、电源正Vcc、电源地GND,实际使用时可以将传感器连接到 Arduino UNO 控制器的数字引脚,例如数字引脚2号, 脉冲特性:水平测试脉冲频率(Hz)=[8.1Q -3 ]±10%(水平测试) (Q 为流量L/min )

硬件连接1

  • 水流量传感器的黄色线连接到 Arduino UNO 控制器的数字引脚 2
  • 水流量传感器的红色线连接到 Arduino UNO 控制器的电源正引脚 V 上
  • 水流量传感器的黑色线连接到 Arduino UNO 控制器的电源负引脚 G 上

例子程序1

volatile int NbTopsFan; //定义函数 NbTopsFan 为整形
int Calc; //定义函数 Calc 为整形变量
int hallsensor = 2; //定义 hallsensor 为数字口2
int flag; //定义 flag 为整形变量
void rpm ()
{
NbTopsFan++; //函数自动+1
}
void setup()
{
pinMode(hallsensor, INPUT); //定义hallsensor 为输入信号
Serial.begin(9600); //定义波特率为9600,
Serial.print("Welcome to www.robotbase.cn"); 
delay(1000);
attachInterrupt(0, rpm, RISING); //定义中断进程
}
void loop ()
{
NbTopsFan = 0; //NbTops 初始值为0
sei(); //初始化中断
delay (1000); //延迟1 秒
cli(); //禁用中断
Calc = (NbTopsFan * 60 / 8.1); //(脉冲频率×60)/ 8.1 Q,=流量L /小时
Serial.println(Calc);
}

程序效果1

将例子程序上传到 Arduino UNO 控制器中,如果上传无误,Arduino IDE 的串口监视器中会显示当前测试的流量值,如下图所示:

02S03404.png

例子程序2

硬件设备

  • Starduino UNO R 3 控制器 * 1个
  • Arduino 传感器扩展板 V5.0 * 1个
  • Water Flow Sensor * 1个
  • RS360 齿轮自吸直流小水泵 * 1个
  • 继电器模块 * 1个
  • 大按钮模块 * 1个
  • Serial LCD1602 * 1个
  • 7.4V 锂电池 * 1个
  • 3P 传感器连接线 * 2个
  • Water Flow Sensor 连接转接线 * 1个
  • 水泵进水管 * 1根
  • 水泵出水-Water Flow Sensor 进水转接管(自制,实际应接6 分管)
  • Water Flow Sensor 输水管(自制,实际应接6 分管)
  • 9V 1A 电源适配器 * 1个

接线示意图

Water Flow Sensor04.jpg

具体连接顺序为:

  • Water Flow Sensor连接到传感器扩展板的数字口2
  • 继电器连接到传感器扩展板数字口3(另一端连接电源连接线上)
  • 大按钮连接到传感器扩展板数字口4
  • 串行1602液晶连接到串口

应用程序

volatile int NbTopsFan; //定义函数NbTopsFan 为整形
int Calc; //定义函数Calc 为整形变量
int on = 3; //定义on 为数字口3
int key = 4; //定义key 为数字口4
int hallsensor = 2; //定义hallsensor 为数字口2
int flag; //定义flag 为整形变量
void rpm ()
{
NbTopsFan++; //函数自动+1
}
void setup()
{
pinMode(key,INPUT); //定义key 为输入信号
pinMode(on, OUTPUT); //定义on 为输出入信号
digitalWrite(on,HIGH); //定义on 初始信号为高电平
pinMode(hallsensor, INPUT); //定义hallsensor 为输入信号
Serial.begin(9600); //定义波特率为9600,
Serial.print("$CLEAR\r\n"); //清屏
Serial.print("$GO 1 4\r\n");//显示的地址为第1 行第4 列
Serial.print("$PRINT Welcome to\r\n"); //打印字符Welcome to
Serial.print("$GO 2 1\r\n");//显示的地址为第2 行第1 列
Serial.print("$PRINT www.robotbase.cn\r\n");//打印字符www.robotbase.cn
Serial.print("$CURSOR 1 1\r\n");//光标移动到第1 行第1 列
delay(1000);
attachInterrupt(0, rpm, RISING); //定义中断进程
}
void loop ()
{
NbTopsFan = 0; //NbTops 初始值为0
sei(); //初始化中断
delay (1000); //延迟1 秒
cli(); //禁用中断
Calc = (NbTopsFan * 60 / 8.1); //(脉冲频率×60)/ 8.1 Q,=流量L /小时
cc();
if(flag != Calc)
{
Serial.print("$CLEAR\r\n"); //清屏
Serial.print("$CLEAR\r\n"); //清屏
Serial.print("$GO 1 6\r\n");//显示的地址为第1 行第6 列
Serial.print("$PRINT ");
Serial.print(Calc);Serial.print(" L/h \r\n"); //打印字符" L/h "
Serial.print("$GO 2 1\r\n");//显示的地址为第2 行第1 列
Serial.print("$PRINT Flow Measurement\r\n");//打印字符" Flow Measurement "
Serial.print("$CURSOR 1 1\r\n");//光标移动到第1 行第1 列
flag = Calc;
}
}
void cc()
{
if (LOW == digitalRead(key))//如果digitalRead 为低电平则执行下面的语句
{digitalWrite(on,LOW);}//on 输出低电平
else if (HIGH == digitalRead(key))//如果digitalRead 为高电平则执行下面的语句
{digitalWrite(on,HIGH);}//on 输出高电平
}

程序效果

完成以上步骤后,首先给系统上电。系统上电后,按下大按钮(使水泵运转),从而让水流流过水流传感器,系统就可以测试流量了。
下图为水流流量测试系统初始时串行1602液晶显示图:

Water Flow Sensor05.jpg

下图为水流流量测试系统测试时串行1602液晶显示图:

Water Flow Sensor06.jpg

应用视频

Shui liu liang 01.png

产品相关推荐

Erweima.png

购买地址

水流量传感器

周边产品推荐

Arduino 旋转角度传感器
水蒸气传感器 雨水探测器 液位开关
通用传感器连接线 3P杜邦连接线

相关问题解答

水流量传感器输出什么信号?

相关学习资料

奥松机器人技术论坛