资讯详情

【雕爷学编程】Arduino动手做(88)---水流量传感器模块

37个传感器和执行器的提法在互联网上广泛传播。事实上,Arduino能兼容的传感器模块肯定不止这37种。鉴于我积累了一些传感器和执行模块,根据实践知识(必须做)的概念,为了学习和交流,这里准备逐一尝试一系列实验,无论成功(程序),都会记录——小进步或问题,希望能吸引玉。

【Arduino】168传感器模块系列实验(数据代码) 仿真编程 图形编程)

实验88: 霍尔水流传感器咖啡机直饮机流量监控模块

在这里插入图片描述 水流传感器 是指通过水流感应输出脉冲信号或电流、电压等信号的水流感应仪器。该信号的输出与水流成一定的线性比例,具有相应的转换公式和比较曲线。因此,可以进行水控管理和流量计算。在热方面,可以用传感器测量一段时间的介质能量损失,如热能表。水流传感器主要控制芯片、单片机甚至PLC配合使用。水流传感器具有精确的流量控制,可循环设置动作流量、水流显示和流量积累计算。

流量 是指单位时间内流经封闭管道或明渠有效截面的流量,又称瞬时流量。当流量以体积表示时,称为体积流量;当流量以质量表示时,称为质量流量。在单位时间内流过某段管道的流体的体积称为横截面的体积流量。简称为流量,用Q来表示。测量在一定通道内流动的流体的流量统称为流量计量。流量测量的流体是多样化的,如气体、液体和混合流体;流体的温度、压力和流量差异很大,所需的测量精度也不同。因此,流量测量的任务是研究各种相应的测量方法,以确保流量值的正确传输。比如河流流量,河流一秒钟就流过一定点的立方米。一般来说,下游流量越大,所以在区分地图上的河流方向时,通常从窄到宽。河流流量是指单位时间内通过河流某一横截(断)面的水量,一般每秒以立方米表示。流量也可以用一个月、一季、一年流出的总水量来表示。流量,从水力学的角度来看,应为:单位时间通过水体积,常用单位为每秒立方米,主要用于河流、湖泊进出水测量、流量测量方法,从水文站的角度来看,可分为浮标法、流量仪、超声波法等,流量仪测量精度最高。

水流传感器基本原理1 水流传感器利用霍尔元件的霍尔效应来测量磁物理量。负载电阻串入霍尔元件的正极,同时连接5V直流电压使电流方向与磁场方向正交。当水通过涡轮开关壳推动磁性转子旋转时,产生不同磁极的旋转磁场,切割磁感应线,产生高低脉冲电平。由于霍尔元件的输出脉冲信号频率与磁性转子的速度成正比,转子的速度与水流成正比,燃气热水器根据水流的大小启动。脉冲信号频率的经验公式见式(1)。

f=8.1q-3(1)

式中:f—脉冲信号频率,H2

q—水流量,L/min

水流传感器的反馈信号通过控制器判断。根据燃气热水器的不同型号,选择最佳启动流量,可实现超低压(0.02MPa以下)启动。

水流传感器工作原理2 水流传感器主要由铜阀体、水流转子组件、稳流组件和霍尔元件组成。它安装在热水器的进水端,水流量。当水流过转子组件时,磁性转子旋转,转速随流量线性变化。霍尔元件输出相应的脉冲信号反馈给控制器,控制器判断水流量,调整控制比例阀的电流,通过比例阀控制气体量,避免夏季温暖冬季凉爽的现象。水流传感器从根本上解决了压差式水气联动阀启动水压高、翻板式水阀误动干烧等缺点。反应灵敏,使用寿命长,动作快,安全可靠,连接方便,启动流量超低(1).5L/min)等优点,深受广大用户的喜爱。 水流转子组件主要由涡轮开关壳、磁性转子和制动环组成。使用水流开关时,其性能优于机械压差盘结构,当水流通过涡轮开关壳体时,大小明显缩小,以促进磁性转子的旋转。当不同的磁极靠近霍尔元件时,霍尔元件被导通,霍尔元件被切断。因此,可以测量转子转速。根据测量的水流、转子速度和输出信号(电压)曲线,可以确定热水器的启动水压,以及相应的启动水流和转子的启动速度。当转子转速大于启动转速时,由控制电路启动热水器;当转速小于启动转速时,热水器停止工作。这样热水器启动水压一般设定在0.01MPa,启动水流为3~5L/min(热水器标准对最高温升的限制)。此外,由于水在永磁材料磁场切割下变成磁化水,水中含氧量增加,洗澡后感觉清爽。制动环的作用是停止高速旋转的磁性转子旋转和脉冲信号输出。控制器无法接收脉冲信号,立即控制燃气比例阀关闭阀,切断气源,防止干烧。

水流传感器的作用

1.水流传感器(赛盛尔)具有开关信号输出和脉冲信号输出;

2.线性比例输出脉冲信号,与流量成比例关系,实现加热功率调节,达到恒温效果。大多数恒热器和气势水器都使用这种方法。现在一些电势水龙头和洗手宝也使用水流传感器。

3.水流传感器从根本上解决了压差式水气联动阀启动水压高、翻板式水阀容易误动、干烧等缺点。反映灵敏,使用寿命长,动作快,安全可靠,连接方便,启动流量超低(1.5L/min)等优点,深受广大用户的喜爱。

使用水流传感器时应注意的事项

1.当磁性数据或磁性数据接近传感器时它的特征可以改变。

2.为防止颗粒和杂物进入传感器过滤网必须安装在传感器的入口处。

3.水流传感器的装置应避免强烈轰动和摇晃的环境防止影响传感器的测量精度。

引出线方式:

1 红 IN 接正极

2 黄 OUT 信号输出线

3 黑 GND 接负极

实验开源代码

/*  【Arduino】168传感器模块系列实验(数据代码) 仿真编程 图形编程)  实验88: 霍尔水流传感器1号 直饮机流量监控模块  项目1:串口绘图器显示测量的波形  */    void setup()  {        Serial.begin(9600);      }    void loop()  {        Serial.println(analogRead(0));        delay(100);      } 

实验串口绘图器返回情况 【Arduino】168传感器模块系列实验(数据代码) 仿真编程 图形编程) 实验九十一: 霍尔水流传感器1号 直饮机流量监控模块 项目2:串口检查是否有工作流量

实验开源代码

/* 【Arduino】168传感器模块系列实验(数据代码) 仿真编程 图形编程) 实验九十一: 霍尔水流传感器1号 直饮机流量监控模块 项目2:串口检查是否有工作流量 */  int readpin = A0; int incoming = 0;  void setup (){ 
          pinMode (readpin, INPUT) ;  Serial.begin(9600); }  void loop (){ 
          incoming = analogRead(readpin) ;
 if (incoming > 500) { 
        
  Serial.println("没有检测到");
 }
 if (incoming < 500) { 
        
  Serial.println("检测到有流量");
 }
 delay(1000);
}

吹气实验,串口输出截图 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块 项目三:使用串口读取水流速传感器的累计脉冲数 实验接线:Uno D2接流量传感器OUT

实验开源代码

/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块 项目三:使用串口读取水流速传感器的累计脉冲数 实验接线:Uno D2接流量传感器OUT */

#define PIN 2

volatile long count = 0;//变量count声明为volatile类型

void setup() { 
        

 pinMode(PIN, INPUT);

 attachInterrupt(0, blinkA, FALLING);//当引脚电平由高电平变为低电平时触发中断服务程序

 Serial.begin(9600);

}

void loop() { 
        

 Serial.print("累计脉冲=");

 Serial.println(count);

 delay(1000);

}

void blinkA()

{ 
        

 count++;

}

实验串口输出截图

实验场景图 记录脉冲的原理是,在转盘上设置磁感应点,每次磁场穿过传感器时,输出一个电平信号: 采用外部中断函数计数,当传感器被磁铁触发,程序中断,执行计数函数,记录一次。把每1000毫秒的圈数,再乘以30(双磁铁)即为实时的转速。

/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块 项目四:通过外部中断简易测量转速(转/分钟) 实验接线:Uno D2接流量传感器OUT */

const byte interruptPin = 2;

const long taketime = 1000; // 每次测量的时间为1000毫秒

unsigned long time; //设置变量 time,计时

float Val = 0; //设置变量 Val,计数

void setup() { 
        

 Serial.begin(9600);

 attachInterrupt(digitalPinToInterrupt(interruptPin), count, FALLING);//触发信号必须是变化的,上升或下降皆可

 time = millis();//开始计时,time获得当前系统时间

}

void loop() { 
        

 if (millis() >= time)

 { 
        

  Serial.print("转速= ");

  Serial.println(Val * 30); //转换成rpm,单磁铁触发分辨率为60rpm,2个磁铁为30rpm

  time = millis() + taketime;//标记未来的时间点,1000ms后执行if判断,输出结果。另,降低刷新频率,可以提高分辨率

  Val = 0;//输出速度结果后清零,记录下一秒的触发次数

 }

}

void count() { 
        

 Val += 1;

}

实验串口输出 实验输出的实时转速波形

/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块 项目五:简易测速 */

int rpmcount; //一秒钟旋圈数

int rpm ;//速度(转/分钟)

unsigned long sj;//运行时间

void setup (){ 
        

 Serial.begin(9600);

 attachInterrupt(0, rpm_fun, CHANGE);

 rpmcount = 0;

 rpm = 0;

 sj = 0;

}

void loop()

{ 
        

 if ((millis() - sj) >= 1000) { 
        

  rpm = rpmcount * 3;

  rpmcount = rpmcount / 2;

  Serial.print("秒转:");

  Serial.print(rpmcount);

  Serial.println("圈");

  Serial.print("转速= ");

  Serial.print(rpm);

  Serial.println("转/分钟");

  Serial.println("");

  sj = millis();

  rpmcount = 0;

  rpm = 0;

 }

}

void rpm_fun()

{ 
        

 rpmcount++;

}

串口输出截图

/* 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 实验九十一: 1号霍尔水流量传感器 直饮机流量监控模块 项目六:累计脉冲大于等于50则点亮LED灯 实验接线:Uno D2接流量传感器OUT,LED接D13 */

#define pin 2

#define led 13

volatile long count = 0;//变量count声明为volatile类型

void setup() { 
        

 pinMode(pin, INPUT);

 pinMode(led, OUTPUT);

 attachInterrupt(0, blinkA, FALLING);//当引脚电平由高电平变为低电平时触发中断服务程序

 Serial.begin(9600);

 Serial.println("准备就绪OK");

 Serial.println("");

}

void loop() { 
        

 Serial.print("累计脉冲=");

 Serial.println(count);

 delay(1000);

 if (count >= 50) { 
        

  digitalWrite(led, HIGH);

  Serial.println("点亮LED灯");

 }

 else

  digitalWrite(led, LOW);

}

void blinkA()

{ 
        

 count++;

}

实验串口返回情况

标签: 水气两用的流量传感器水压传感器能调大小吗流量表传感器高精度plc传感器模块水流传感器流量开关5400系列轮力传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台