如何用Ai-M61-32S监测水位
扫描二维码
随时随地手机看文章
通过从IO接口读取模拟值并进行电压转换,可以得到检测到的电压值。
用Ai-M61-32S监测水位
项目解决方案
通过从IO接口读取模拟值并进行电压转换,可以得到检测到的电压值。进一步的电压-水位校准使串行印刷和水位高度绘图,实现实时水位监测。
电压转换
根据欧姆定律,V = I / R,电压与电阻成正比。通过得到3.3 v和GND对应的模拟值(测量值为3199和21),推导出实际电压转换公式为:voltage = val *(3.3 /(3199-21))。
代码
长按IO2键,短按EN键进入下载模式。配置端口后,上传项目并重置以运行程序。
效果
水位传感器可以检测水位高度(检测范围:0 - 40mm),也可以作为雨滴传感器用于天气监测,检测降雨量和强度。广泛应用于汽车雨刷系统、智能照明系统、洗衣机、智能天窗系统等。
模块的介绍
上电后,电源指示灯LED亮起。工作电压:直流3.3V - 5V。输出类型:模拟信号。
传感器有10根外露铜线,其中5根电源铜线和5根传感铜线呈交错平行排列,每根电源铜线之间有一根传感铜线。
模块示意图
引脚的定义
•S (Signal)为模拟量输出;
•+ (VCC)为传感器电源;
•—(GND)表示地。
工作原理
当平行铜线之间有水时,不同的浸入高度导致不同的电流。铜线之间的电阻随水位的变化而变化。
电阻与水的高度成反比(传感器浸入越深,电导率越好,电阻越低,电流越大)。因此,水位可以通过测量传感器的输出电压通过ADC来确定。
硬件连接
S -> io19, + - >3v3, - >gnd。
硬件连接完成后,打开串口。此时,输出电压应为0。
水位校正
由于水质和电导率的差异,需要校准。每次校准前,将PCB表面平行铜线干燥。当电压读数为0时,将传感器放入水中,记录水位和电压。收集多组数据进行平均。
校准数据收集
当水位为10mm时,对应的串口输出电压为1.25 V。
增加水位,收集多个电压-水位数据对。假设电压V与水位高度mm为线性关系,用Excel对数据进行拟合,得到公式y = 41.774 x - 38.686。
项目代码
在代码中添加水位高度定义:
保存代码,构建项目,上传固件,然后重置以运行。打开串口助手,连接目标串口,获取实时IO模拟量、电压(V)和水位(mm)。
数字管显示水位
在前面的电压读取和基于水位传感器的电压-水位高度转换的基础上,增加了一个4位共阳极数字管显示水位高度。
硬件连接
采用两个74HC595驱动的4位共阳极数字管,支持3.3V至5V的宽电压输入,仅需3个信号引脚即可驱动。
水浸传感器_ S -> IO19,水浸传感器_ + -> 3V3,水浸传感器_ - -> GND。
4Bit - segment_ SCLK - b> IO23, 4Bit - segment_ RCLK - b> IO24, 4Bit - segment_ DIO -> IO11。
项目代码
注意需要定义shiftOut函数。
●为了避免由于每个采样值的显著波动而导致数码管的过度动态刷新,增加了一个循环以延长数据刷新间隔。
●或者,取多个样本并平均它们,以减少水位波动,实现更稳定的数码管显示。
示范
●数字管显示水位。
●静态水位演化曲线。
本文编译自hackster.io