数码之家

 找回密码
 立即注册
搜索
查看: 1525|回复: 15

YF-S201流量传感器代替水流开关,分享代码

[复制链接]
发表于 2023-10-28 19:06:07 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 慕名而来 于 2023-10-29 19:45 编辑

原本流量传感器是检测水流量的,多用于供水机的出水量的计量,工作场景为有水流动就有脉冲输出,累计脉冲数量就能换算出放出水的体积;原本水流开关是监测水管路中的水是否流动的元件,工作场景为管路中的水有流动时就有开关量输出可以作为开关使用,两个元件外形相仿但工作原理却不同。
家里常见的水流开关都是与增压水泵绑定使用的,可以实现出水即增压的效果,但使用水流开关的人不知道是否遇到过水泵不开或开泵不停的乌龙的情况,反正我遇到过,因为北方水硬度大阀内水垢或影响翻板的灵敏度,而水流开关的过水元件是一个叶轮,个人觉得每次使用时叶轮旋转可能会延长结垢的时间也增加了其可靠性,于是就有了用流量传感器代替水流开关的想法与制作,经过一年多的使用感觉挺可靠,今天从新升级了这个工程的代码,也在此分享给对此感兴趣或可能用到的朋友。
借用网上的图片
一、水流传感器:
cbed3dac3684afb7.jpg
二、水流开关:
de5fac043c2d86253461aeab889291c1.jpeg


硬件描述:(代替原理图)
单片机为8引脚的STC15W204S,P5.5引脚输出经三极管SS8550控制继电器(驱动水泵),YFS201的脉冲输出端直接怼到P3.2(外部中断INT0引脚),继电器线圈引脚并联一只100uf电容来延缓继电器的释放,另外继电器线圈还并联一只LED+470Ω电阻作为水泵工作指示灯。如果是直流低压水泵则根据水泵的工作电压选用一个DC-DC降压模块借用水泵电源降压至5V给单片机供电即可,如果是交流市电水泵就随便找一个手机充电头给单片机供电就齐活了。
代码分享:
提示:
1、使用STC15W204S单片机烧录代码时请将单片机时钟设置为12MHz
2、程序中的n0计数的目的是为了避免干扰等不明原因造成的瞬动,只有脉冲稳定输出时才启动水泵。
3、程序中的定时2分钟辅助监控功能如果不适合自己的应用场景可以去除功能,并不影响使用(有问题可跟帖交流)。
4、菜鸟编程难免简单粗糙,诚请高手大神临帖指点、更正,先谢过。
4、自己使用复制粘贴即可,转载或再分享请注明出处!


  1. #include <STC15W.h>
  2. //#include <intrins.h>

  3. #define uint unsigned int
  4. #define uchar unsigned char

  5. sbit JK = P5 ^ 5; //继电器控制端口
  6. uint t0 = 0, ts = 0, n0 = 0;
  7. bit FLAG;
  8. //------------------------------------------------------
  9. void delay_ms(uint a)        //@12.000MHz
  10. {
  11.     unsigned char data i, j;

  12.     while( a-- != 0)
  13.     {
  14.         i = 12;
  15.         j = 169;

  16.         do
  17.         {
  18.             while (--j);
  19.         }
  20.         while (--i);
  21.     }
  22. }
  23. //----定时器T0初始化函数(函数由stc_isp软件自动生成)----------
  24. //定时器T0的16位自动重装模式
  25. void INT0_T0_Init(void)                //12T-20毫秒@12MHz
  26. {
  27.     AUXR &= 0x7F;        //定时器时钟12T模式
  28.     TMOD = 0xF0;                //模式0@16位自动重装
  29.     TH0 = (65536 - 20000) / 256;
  30.     TL0 = (65536 - 20000) % 256;
  31.     ET0 = 1;                //使能定时器T0中断
  32.     TF0 = 0;                //清除T0中断标志
  33.     IT0 = 0; //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
  34.     EX0 = 1; //使能INT0中断
  35.     EA = 1;         //使能所有中断
  36. }
  37. //----INT0中断函数-------------------------------------------
  38. void exint0() interrupt 0
  39. {
  40.         FLAG = 1;
  41. }
  42. //----定时器T0中断函数---------------------------------------
  43. void T0_time() interrupt 1 //12MHz@20ms
  44. {
  45.     TH0 = (65536 - 20000) / 256;
  46.     TL0 = (65536 - 20000) % 256;
  47.     t0++;

  48.     if(t0 == 50)        //1秒计时
  49.     {
  50.         t0 = 0;
  51.         ts++;
  52.     }
  53. }
  54. //====主函数=============================
  55. main()
  56. {
  57.     INT0_T0_Init();        //T0设定初始化
  58.     JK = 0;
  59.     P5M1 &= 0x00;
  60.     P5M0 &= 0xFF;
  61.     while(1)
  62.     {
  63.         if(FLAG == 1)                 //如果有脉冲信号标志
  64.         {
  65.                         n0++;
  66.                         if(n0>200)
  67.                         {
  68.                         n0=200;
  69.             JK = 1;                         //启动水泵
  70.             t0 = 0;                         //定时器毫秒计数清零
  71.             ts = 0;                         //定时器秒计数清零
  72.             TR0 = 1;                //开启定时器
  73.             FLAG = 0;                //清除脉冲信号标志
  74.                         }
  75.         }

  76.         if(FLAG == 0)                 //如果无脉冲信号标志
  77.         {
  78.             delay_ms(100);        //等待100ms

  79.             if(FLAG == 0)        //如果仍然没有脉冲信号标志则视为无水流流动或者流动结束
  80.             {
  81.                 JK = 0;                //关闭水泵
  82.                 n0 = 0;                //预计数变量清零
  83.             }
  84.         }

  85.         if(ts >= 120)                //水泵每次工作时间约为1分钟,定时2分钟辅助监控水泵的运行时间
  86.         {
  87.             TR0 = 0;
  88.             JK = 0;
  89.             t0 = 0;
  90.             ts = 0;
  91.         }

  92.     }
  93. }
复制代码




打赏

参与人数 3家元 +70 收起 理由
aec + 30 謝謝分享
jf201006 + 30 謝謝分享
deyafe + 10 謝謝分享

查看全部打赏

发表于 2023-10-28 23:56:31 | 显示全部楼层
这个东西有用,就是不好做
回复 支持 反对

使用道具 举报

发表于 2023-10-29 13:00:57 | 显示全部楼层
流量传感器代替水流开关?流量传感器比水流开关成本多吧?
回复 支持 反对

使用道具 举报

发表于 2023-10-29 18:58:28 来自手机浏览器 | 显示全部楼层
lmn2005 发表于 2023-10-29 13:00
流量传感器代替水流开关?流量传感器比水流开关成本多吧?

楼主那个流量传感器不到10块,前几天刚买了一个,做流量计_转速表二合一玩的,下月打板试验。

IMG_20231029_185400.jpg

IMG20231029185500.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-29 19:53:48 | 显示全部楼层
aec 发表于 2023-10-29 18:58
楼主那个流量传感器不到10块,前几天刚买了一个,做流量计_转速表二合一玩的,下月打板试验。

是的,去年初拍的也是这个价格。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-29 19:58:41 | 显示全部楼层
本帖最后由 慕名而来 于 2023-10-29 19:59 编辑
lmn2005 发表于 2023-10-29 13:00
流量传感器代替水流开关?流量传感器比水流开关成本多吧?

应该不比水流开关贵,比竟水流开关是铜的而这个全是塑料。
555.jpg

回复 支持 反对

使用道具 举报

发表于 2023-10-30 06:57:16 | 显示全部楼层
aec 发表于 2023-10-29 18:58
楼主那个流量传感器不到10块,前几天刚买了一个,做流量计_转速表二合一玩的,下月打板试验。

这款流量传感器,两个方向流水都会有输出吗?还是只能单向流水的?
回复 支持 反对

使用道具 举报

发表于 2023-10-30 10:01:18 来自手机浏览器 | 显示全部楼层
lmn2005 发表于 2023-10-30 06:57
这款流量传感器,两个方向流水都会有输出吗?还是只能单向流水的?

单向的,就涡轮上嵌磁铁。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-10-30 10:31:15 | 显示全部楼层
lmn2005 发表于 2023-10-30 06:57
这款流量传感器,两个方向流水都会有输出吗?还是只能单向流水的?

楼上说的对,其实壳体上也是有箭头标志的,反向是否可用我没试过。
回复 支持 反对

使用道具 举报

发表于 2023-10-30 10:58:08 来自手机浏览器 | 显示全部楼层
慕名而来 发表于 2023-10-30 10:31
楼上说的对,其实壳体上也是有箭头标志的,反向是否可用我没试过。

虽然有箭头,但是反着也有脉冲,正反是否一样就不知道了,没对比。
回复 支持 反对

使用道具 举报

发表于 2023-10-31 09:40:11 | 显示全部楼层
这个能代替燃气热水器上的水流开关吗?
回复 支持 反对

使用道具 举报

发表于 2023-11-2 20:48:00 | 显示全部楼层
我之前也想买这个叶轮式的,但是买错了,买回来以为水流量是脉冲信号,试了才知道是个水流量开关,只要水流量超过一定值,就一直有信号,
前段时间设备过滤器滤芯堵塞造成冷却水水流量减少,这个水流量传感器并没有报警,还好同时安装了水温传感器,触发了高温报警,差点损失几千块,感觉单靠水流量传感器还是不太稳定。
回复 支持 反对

使用道具 举报

发表于 2023-11-2 21:13:04 | 显示全部楼层
这个在2018年做过,用在净水器放水到水桶。当时是用计量流量的方法定流量注水到桶。现在用到非接触水传感器不测量水满。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-3 21:35:38 | 显示全部楼层
zaj1970 发表于 2023-10-31 09:40
这个能代替燃气热水器上的水流开关吗?

燃气热水器没弄过不知道它的水流开关啥情况,热水器因安全问题最好按品牌找原配的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-3 21:52:07 | 显示全部楼层
fsss007 发表于 2023-11-2 21:13
这个在2018年做过,用在净水器放水到水桶。当时是用计量流量的方法定流量注水到桶。现在用到非接触水传感器 ...

我也是用在净水机浓水回收系统的,水桶水位开始用探针接触式的经常结垢,后来找了4个合适的弹簧和一个微波炉用的微动开关完美实现了称重控制,桶里水量过多就通过溢流管排入下水管道,桶里水太少了就会被弹簧弹起断开开关,很简单、很稳定,微动开关直接控制市电进而控制水流开关、水泵的电源,水泵是一个24V没啥扬程的微型静音泵,桶里的水经过文丘里三通自吸混入马桶供水管道,水泵只起到助力作用,整个系统用了4年多了很安静很省心,几乎可以忽视其存在了,这次用水流传感器代替水流开关只是兴趣使然也为了完善一下系统。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-3 21:56:50 | 显示全部楼层
z2091981 发表于 2023-11-2 20:48
我之前也想买这个叶轮式的,但是买错了,买回来以为水流量是脉冲信号,试了才知道是个水流量开关,只要水流 ...

多谢你的经验分享,看来涉水这些东西工况都比较恶劣长时间使用总会有隐患的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-29 06:52 , Processed in 0.234000 second(s), 17 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表