TDS水质及电导率计算方法及电路程序设计

      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℃为标准温度,温度每增加1℃,电导率上升2%,故温度作为补偿因子参与TDS计算,公式为:K=K(未温补)÷(1+0.02*(T-25))。T为测得溶液温度值。

       本模块采用TDS为488ppm的校准液进行校准,经计算得出电导池常数为437140.将电导池常数更新到计算公式后对溶液进行测量

      如上图为本模块TDS传感器接口电路,通过将TDS传感器两端接入TDS2和TDS3,TDS1和TDS3分别连接单片机的两个普通IO,TDS2连接至单片机AD测量IO。通过控制TDS1和TDS3进行高低电平交替输出,则等效于采用交流驱动TDS传感器。电流通过R13电阻和TDS探针及溶液形成回路,则可测量TDS2端的电压,根据电阻分压原理,即可求出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.外形尺寸

6. 通信协议

 波特率:9600,无校验位,1停止位,8位数据。

1

0x86

读传感器的AD值

向模块发送

0

1

2

3

4

5

6

7

8

起始位

地址

命令

--

--

--

--

--

校验值

0xFF

0x01

0x86

0

0

0

0

0

0x79

EXP.

FF 01 86 00 00 00 00 00 79

模块返回

0

1

2

3

4

5

6

7

8

起始位

命令

TDS

温度值

--

--

校验值

0xFF

0x86

高字节

低字节

整数

小数

0

0

--

EXP.

FF 86 00 5B 1A 02 00 00 03

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

  • 36
    点赞
  • 292
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

>行者<

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值