TDS水质及电导率计算方法及电路程序设计 您所在的位置:网站首页 tds3水质检测笔数值 TDS水质及电导率计算方法及电路程序设计

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

#TDS水质及电导率计算方法及电路程序设计| 来源: 网络整理| 查看: 265

      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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有