TDS 用来表示所有溶解在水中的固体物质,包括矿物质、盐和溶解在水中的小金属物质。说白了,它的价值反映了水质的质量,所以我们设计了一种基于电极测量的方法TDS水质检测模块。以下是模块的设计原理和功能介质。
1.模块功能概述
TDS采用水质检测模块TDS传感器(钛合金)和NTC(3950_10K)热敏电阻配合8 高性价比单片机(STM8S003F4P6)内部已完成 AD (10位)采集,并通过算法计算相应的TDS用户只需值,用户只需通过串口读数据,此外,可连接数字管显示模块,可循环显示TDS值和温度值,方便用户快速使用。
2.TDS定义简介
TDS 用于测定溶解在水中的所有固体物质,包括矿物质、盐和溶解在水中的微小金属。测量单位为 ppm 或 mg/L,它表明 1 升水中溶解多少毫克溶解固体?水越纯净,可溶性固体越少,电阻越大,电导越小,纯水几乎不能导电。TDS 值与电导率直接相关,TDS 值一般为电导率 0.55倍。
TDS 水质检测广泛应用于评价净水器滤芯性能、饮用水质量等水质分析相关领域。
3.模块TDS测量方法
TDS 主要通过输入交变驱动电压进行测量(防止探头极化),在被测液体中产生小电流,从而获得被测液体的电导率。通过测量温度测量 NTC 负温度系数的热敏电阻值计算当前环境温度。TDS通过获得的温度在相应的温度范围内补偿传感器在不同温度范围内的特性差异。
当两个电极插入溶液时,可以测量两个电极之间的电阻R。根据欧姆定律,温度一定时,有R=pL/A,p是电阻率,L为电极间距,A是电极的截面积。A、L是固定的,所以L/A是常数,称为电导池常数Q,即R=pQ.
电导S与电阻R成倒数关系:S=1/R
电导率K与电阻率p成倒数关系:K=1/p
K=1/p=Q/R
用标准溶液校准,获得电导池常数Q,然后测量水样,获得电阻R,即可求出K,即可得到TDS=0.55K。
25.注意温度的影响℃为标准温度,温度每℃,电导率上升2%,因此温度作为补偿因素参与TDS公式为:K=K(未温补)*(1 0.02*(T-25))。T测量溶液温度值。
本模块采用TDS为488ppm校准液校准后,计算出电导池常数为437140。将电导池常数更新到计算公式后,测量溶液。
如上图所示TDS通过传感器接口电路TDS接入传感器两端TDS2和TDS3,TDS1和TDS三是连接单片机的两个普通单片机IO,TDS连接到单片机AD测量IO。通过控制TDS1和TDS3高低电平交替输出相当于交流驱动TDS传感器。电流通过R13电阻和TDS探针和溶液形成回路可以测量TDS根据电阻分压原理,可以找到两端的电压TDS两探针之间的电阻值,即溶液的电阻值。
TDS 测量主要通过向测试电极输入交变驱动电压,在测量液体中产生小电流,从而获得测量液体的电导率。温度测量是通过测量的 NTC 负温度系数的热敏电阻值计算当前环境温度,如下图所示。
本模块的总体电路原理图如下:
以下为模块mcu进行计算TDS值的关键算法代码:
#define POLAR_CONSTANT (513385) /* 电导池常数,通过和标准TDS测量仪对比计算反推 */ #define TDS_COEFFICIENT (55U) /* TDS = 0.55 * 电子传导率*/ //TDS 的计算 输入TDS传感器分压的平均电压 // adc_avg_value: 采集到的TDS传感器分压AD值 void R_TDS_Calculate(u16 adc_avg_value) { float tds_resister=0,siemens_value=0;//西门子值 float electornic_conductor=0,temperature=0; //获得温度值 temperature=(u16)((u16)(g_Temperature[0]*10) g_Temperature[1])/10; /*AD限值处理*/ if(adc_avg_value >=998) //998 { tds_Value = 0; } else { //计算溶液电阻值 /* 1.5k的串联液体TDS电阻值 */ tds_resister =1.0*adc_avg_value * 1500 / (1024 - adc_avg_value); /* 计算电导率值 。 其中POLAR_CONSTANT 电导池常数*/ siemens_value =(1.0* POLAR_CONSTANT / tds_resister); /* temperature adjust */ ////温度补偿后的电导率值 electornic_conductor= siemens_value *(1 0.02*(temperature-25)); // 计算出TDS值,TDS_COEFFICIENT为转换系数 tds_Value =(u16)(1.0* electornic_conductor * TDS_COEFFICIENT / 100); } }
4.技术指标
产品型号 |
KM-TDS-NTC1 |
检测对象 |
TDS、温度 |
通信方式 |
UART(TTL)+microUSB串口 |
工作电压 |
5V (DC) |
工作电流 |
10-30mA |
检测温度 |
0~81℃ |
检测TDS |
0-9999PPM |
TDS检测方式 |
交变电压驱动 |
外形尺寸 |
26.4*33.3(mm) |
数据接口 |
4 针单排直插+MicroUSB接口 |
显示接口 |
4P排座(接数码管模块) |
模块主控MCU |
STM8S003F3P6(10位AD分辨率) |
5.外形尺寸
波特率:9600,无校验位,1停止位,8位数据。
TDS:91ppm。 温度:26.2℃
//校验值算法 起始位后 86 00 85 00 00 00 00 到校验值前相加求和取低八
//位,再取反加一
uint8_t getCheck(uint8_t *data,uint8_t iLength)
{
uint8_t sum=0; uint8_t iFor=0;
for(iFor=0;iFor<iLength;iFor++)
{
sum+=data[iFor];
}
return (0xff-sum+1);
}
7.上位机和数码管显示应用
模块板载USB转TTL电平芯片和micro-usb接口,可直接通过micro-usb数据线将电脑与模块连接,即可在电脑查看模块所使用的串口端口号,请到电脑设备管理器查看,端口号因个人电脑而异,如下图:
板上另有串口TTL接口引出,方便用户与其他mcu进行连接读取数据。
接下来可打开上位机软件,并选择相应串口号,如下图:
上位机发送及接收数据协议按照模块协议编写,上位机每1秒向模块获取一次数据。
模块载有串行控制四位数码管接口,只要模块上电,将数码管显示模块直接插在模块接口上即可显示所测温度值及TDS值,TDS和温度显示时间为:3S+2S。显示效果如下图:
8.测试数据对比
下图是关于TDS水硬度标准的说明,用户可根据图中标准对照查看所测水质符合哪种等级,以达到直观判断水质优劣的目的。
以下为采用本模块和小米TDS检测仪分别对两种不同TDS值水进行测试对比所得的实验效果图:
1.左图为小米TDS检测笔所测数据为376ppm,右图为本模块所测数据为372ppm。
2.左图为小米TDS检测笔所测数据为74ppm,右图为本模块所测数据为78ppm。
9.使用注意事项
1、TDS探头不能用于55℃以上的水中。
2、TDS探头放置位置不能太靠近容器边缘,否则会影响测量结果。
3、TDS 探头头部与导线为防水,可浸入水中,但连线接口处与信号转接板不防水,请注意使用。
https://item.taobao.com/item.htm?spm=a2126o.success.result.1.36854831z6hzrj&id=624980370218