对于液体,浊度是一个重要术语。因为它在液体动力学中起着重要的作用,也用于测量 水质。所以在本教程中,让我们讨论什么是浊度,如何使用 arduino 测量液体的浊度。
什么是液体浊度?
浊度是液体浑浊或浑浊的程度或水平。这是由于存在大量类似于空气中的白烟的不可见颗粒(用肉眼)。当光穿过液体时,由于这些微小颗粒的存在,光波会被散射。液体的浊度与游离悬浮颗粒成正比,即如果颗粒数量增加,浊度也会增加。
如何使用 arduino 测量浊度?
正如我前面提到的,浊度是由于光波的散射而发生的,为了测量浊度,我们应该测量光的散射。浊度通常以比浊法浊度单位 (ntu)或杰克逊浊度单位 (jtlj) 进行测量,具体取决于用于测量的方法。两个单位大致相等。
现在让我们看看浊度传感器是如何工作的,它有两个部分, 发射器和接收器。发射器由一个光源(通常是一个 led)和一个驱动电路组成。在接收端,有一个光检测器,如光电二极管或 ldr。我们将解决方案置于发射器和接收器之间。
发射器只是传输光,光波穿过溶液,接收器接收光。通常(不存在溶液)透射光在接收器侧完全接收。但是在存在混浊溶液的情况下,透射光的量非常低。也就是说,在接收端,我们只得到低强度的光,而这种强度与浊度成反比。因此,我们可以通过测量光强来测量浊度,如果光强高,则溶液浊度较低,如果光强非常低,则意味着溶液更混浊。
制作浊度计所需的组件
浊度模块
阿杜诺
16*2 i2c液晶屏
共阴极rgb led
面包板
跳线
浊度传感器概述
本项目中使用的浊度传感器如下图所示。
如您所见,此浊度传感器模块包含 3 个部分。防水引线、驱动电路、连接线。测试探头由发射器和接收器组成。
上图显示,这种模块使用红外二极管作为光源,红外接收器作为检测器。但工作原理和以前一样。驱动器部分(如下所示)由一个运算放大器和一些放大检测到的光信号的组件组成。
实际传感器可以使用 jst xh 连接器连接到该模块。它具有三个引脚,vcc、地和输出。vcc 连接到 5v 并接地。该模块的输出是一个模拟值,它根据光强度而变化。
浊度模块的主要特点
工作电压:5vdc。
电流:30ma(最大)。
工作温度:-30°c 至 80°c。
兼容 arduino、raspberry pi、avr、pic 等。
将浊度传感器与 arduino 接口 - 电路图
将浊度传感器连接到 arduino 的完整示意图如下所示,该电路是使用 easyeda 设计的。
这是一个非常简单的电路图。浊度传感器的输出是模拟的,因此连接到 arduino 的 a0 引脚,i2c lcd 连接到 arduino 的 i2c 引脚,即 scl 到 a5,sda 到 a4。然后将 rgb led 连接到数字引脚 d2、d3 和 d4。连接完成后,我的硬件设置如下所示。
将传感器的 vcc 连接到 arduino 5v,然后将地线连接到地线。传感器的输出引脚到 arduino 的模拟 0。接下来,将 lcd 模块的 vcc 和地连接到 arduino 的 5v 和地。然后sda转a4,scl转a5,这两个管脚就是arduino的i2c管脚。最后将rgb led的地连接到arduino的地,并将绿色连接到d3,蓝色连接到d4,红色连接到d5。
编程 arduino 以测量水中的浊度
计划是显示从 0 到 100 的浊度值。即仪表应显示 0 表示纯液体,100 表示高度混浊的液体。这个arduino代码也很简单,完整的代码可以在这个页面的底部找到。
首先,我包含了 i2c 液晶库,因为我们使用 i2c lcd 来最小化连接。
#包括
然后我为传感器输入设置整数。
int sensorpin = a0;
在设置部分,我定义了引脚。
pinmode(3,输出);pinmode(4,输出);pinmode(5,输出);
在循环部分,正如我之前提到的,传感器的输出是模拟值。所以我们需要读取这些值。借助 arduino analogread函数,我们可以读取循环部分的输出值。
int sensorvalue =analogread(sensorpin);
首先,我们需要了解传感器的行为,这意味着我们需要读取浊度传感器的最小值和最大值。我们可以使用serial.println 函数在串行监视器上读取该值。
要获得这些值,首先,自由读取没有任何解决方案的传感器。我得到一个大约 640 的值,然后在发射器和接收器之间放置一个黑色物质,我们得到一个最小值,通常该值为零。所以我们得到了 640 的最大值和 0 的最小值。现在我们需要将这些值转换为 0-100
为此,我使用了 arduino 的地图功能。
int 浊度 = map(sensorvalue, 0,640, 100, 0);
然后我在 lcd 显示屏上显示了这些值。
lcd.setcursor(0, 0); lcd.print(浊度:); lcd.print(); lcd.setcursor(10, 0); lcd.print(浊度);
之后,借助if条件,我给出了不同的条件。
if (浊度 20) && (浊度 50) { digitalwrite(2, low); digitalwrite(3, high); digitalwrite(4, low); lcd.setcursor(0, 1); lcd.print(它的脏); }
如果浊度值大于 50,这将激活红色 led 并在 lcd 上显示“它很脏”,如下所示。
只需按照电路图并上传代码,如果一切正常,您应该可以测量水的浊度,并且 lcd 应该会显示水的质量,如上图所示。
#include
liquidcrystal_i2c lcd(0x27, 2, 16);
int sensorpin = a0;
无效设置()
{
序列号.开始(9600);
液晶显示器开始();
pinmode(2,输出);
pinmode(3,输出);
pinmode(4,输出);
}
无效循环(){
int sensorvalue = 模拟读取(sensorpin);
serial.println(sensorvalue);
int 浊度 = map(sensorvalue, 0, 750, 100, 0);
延迟(100);
lcd.setcursor(0, 0);
lcd.print(浊度:);
lcd.print();
lcd.setcursor(10, 0);
lcd.print(浊度);
延迟(100);
如果(浊度 20) && (浊度 50){
数字写入(2,低);
数字写入(3,低);
数字写入(4,高);
lcd.setcursor(0, 1);
lcd.print(它的脏);
}
}
从产业经济学角度看美国制裁华为
LSI通过1TB希捷闪存达到百万次IOPS性能水平
安全不小事,选择电源还是选择「安规电源」
Windows10迎来对更多微软产品的Windows Update更新支持
“日本制造”被质疑 造假事故不断
如何使用Arduino测量液体的浊度
与众不同是快餐店:它的主要员工是机器人
iPhone 16或添拍摄按钮,支持空间视频录制
FAIR何恺明团队近日发表神经结构搜索NAS方面的最新力作
2017至2022年预计:CMOS图像传感器销售量将以11.7%以上的速度增长
连接器十大重要参数及详解
福特制造了可笑的1400马力电动野马Mach-E
PLC无线数据传输到服务器怎么实现
物联网网关设计助推智能城市发展
LED行业常用测试方法详解
RFID技术在电力计能表仓储管理系统中的应用
小米6真机图曝光?骁龙835+摄像头回归顶部
怎样在冷却器内装收音机
听说这是示波器操作的扫盲神器?
英创信息技术使用QML进行界面开发简介