简介
DFRobot Gravity:模拟电导率计V2专门用于测量水溶液的电导率值,评估水质状况,常用于水培、水产养殖、环境水检测等领域。
本产品作为电导率计V1的升级版本,极大的改善了用户体验与精度:支持3~5V的宽电压输入,兼容5V和3.3V主控板;输出信号经硬件滤波,抖动小;激励源采用交流信号,有效降低了极化效应,提高精度的同时延长了电极的寿命;配套软件库采用2点校准的方式,自动识别标准液,简单方便。
本产品配合主控板(如Arduino)与配套的软件库,就可迅速搭建出一套电导率检测仪,即插即用,无需焊接。DFRobot提供多种水质检测传感器产品,尺寸与接口统一,满足各类水质检测的需求,也适合搭建多参数水质检测仪。
电导率是电阻率的倒数,与物质传送电流能力的大小有关,在液体中常以电阻的倒数电导来衡量其导电能力的大小。水的电导是衡量水质的一个重要指标,它能反映出水中存在的电解质的程度。
本产品配套的电极为实验室级电极,请勿长时间放在液体中测量,否则会缩短电极的使用寿命。
本产品配套的电极的铂金片表面附着有铂黑层,应避免任何物体与其触碰,只能用蒸馏水冲洗,否则会损伤铂黑层,导致电极测量不准确。
技术规格
- 信号转换板(变送板)V2:
- 供电电压:3.0~5.0V
- 输出电压:0~3.4V
- 电极接口:BNC
- 信号接口:PH2.0-3Pin
- 测量精度:±5% F.S.
- 板子尺寸:42mm*32mm
- 电导率电极:
- 电极类型:实验室级电极
- 电极常数:1.0
- 支持检测范围:0~20ms/cm
- 推荐检测范围:1~15ms/cm
- 温度范围:0~40℃
- 电极寿命:>0.5年(实际寿命与使用频率、场景有关)
- 线缆长度:100cm
引脚说明
标号 | 名称 | 功能描述 |
---|---|---|
1 | - | 供电电源负极(0V) |
2 | + | 供电电源正极(3.0~5.0V) |
3 | A | 模拟量输出(0~3.4V) |
4 | BNC | 电导率电极接口 |
使用教程
本教程将演示如何使用这款电导率计进行校准和测量。请仔细阅读每个步骤。
-
为保证测量精度,强烈建议添加温度传感器,测量溶液温度,实现自动温补。可采用DS18B20防水温度传感器。
-
测量另一种溶液之前,务必清洗好电导率电极并用吸纸吸干残余水滴,防止污染溶液。可用蒸馏水冲洗电极。
-
Arduino主板建议外接电源,读数更精确稳定。
准备
- 硬件
- 1 x Arduino UNO主控板(或类似主控板)
- 1 x 电导率计V2(K=1)信号转换板(变送板)
- 1 x 电导率电极(K=1)
- 1 x 1413us/cm电导率标准液
- 1 x 12.88ms/cm电导率标准液
- 1 x 模拟传感器连接线(或杜邦线)
- 1 x 被测溶液
- 软件
- Arduino IDE (1.0.x 或1.8.x), 点击下载Arduino IDE
接线图
校准
为保证精度,初次使用的电极,或者使用了一段时间的电极,需要进行校准。
本教程采用2点校准,因此需要1413us/cm和12.88ms/cm的电导率标准液。
下面将详细说明如何进行2点校准。
-
1.上传样例代码至Arduino主控板中,上传完毕后,打开串口监视器,即可看到温度与电导率值。如自行添加了温度传感器,务必写好相应功能函数的代码并调用。
-
2.用蒸馏水清洗电极,然后用吸水纸吸干残余水滴。将电导率电极插入到1413us/cm标准液中,轻轻搅拌,等待数值稳定。
-
3.待数值稳定后,即可进行第一点的校准。具体步骤如下:
1.在串口监视器中输入enterec指令,进入校准模式。
2.输入calec指令进行校准,校准成功与否会有相应的提示。程序会自动识别2种标准液:1413us/cm和12.88ms/cm。本步骤中,会自动识别出1413us/cm标准液。
3.校准完毕后,输入exitec指令,保存好相关参数并退出校准模式。必须输入exitec指令后,相关参数才能保存下来。
4.经过上述步骤,第一点的校准就完成了。下面进行第二点的校准。
-
4.用蒸馏水清洗电极,然后用吸水纸吸干残余水滴。将电导率电极插入到12.88ms/cm标准液中,轻轻搅拌,等待数值稳定。
-
5.待数值稳定后,即可进行第二点的校准。与第一点校准步骤一致,具体步骤如下:
1.在串口监视器中输入enterec指令,进入校准模式。 2.输入calec指令进行校准,校准成功与否会有相应的提示。程序会自动识别2种标准液:1413us/cm和12.88ms/cm。本步骤中,会自动识别出12.88ms/cm标准液。 3.校准完毕后,输入exitec指令,保存好相关参数并退出校准模式。必须输入exitec指令后,相关参数才能保存下来。 4.经过上述步骤,第二点的校准就完成了。
-
6.完成上述步骤后,2点校准就完成了,之后就可用于实际的测量。校准过程中的相关参数已经保存至主控板的EEPROM中。
样例代码
请先下载DFRobot_EC库文件,然后安装。如何安装库?
/*
* file DFRobot_EC.ino
* @ https://github.com/DFRobot/DFRobot_EC
*
* This is the sample code for Gravity: Analog Electrical Conductivity Sensor / Meter Kit V2 (K=1.0), SKU: DFR0300.
* In order to guarantee precision, a temperature sensor such as DS18B20 is needed, to execute automatic temperature compensation.
* You can send commands in the serial monitor to execute the calibration.
* Serial Commands:
* enterec -> enter the calibration mode
* calec -> calibrate with the standard buffer solution, two buffer solutions(1413us/cm and 12.88ms/cm) will be automaticlly recognized
* exitec -> save the calibrated parameters and exit from calibration mode
*
* Copyright [DFRobot](https://www.dfrobot.com), 2018
* Copyright GNU Lesser General Public License
*
* version V1.0
* date 2018-03-21
*/
#include "DFRobot_EC.h"
#include <EEPROM.h>
#define EC_PIN A1
float voltage,ecValue,temperature = 25;
DFRobot_EC ec;
void setup()
{
Serial.begin(115200);
ec.begin();
}
void loop()
{
static unsigned long timepoint = millis();
if(millis()-timepoint>1000U) //time interval: 1s
{
timepoint = millis();
voltage = analogRead(EC_PIN)/1024.0*5000; // read the voltage
//temperature = readTemperature(); // read your temperature sensor to execute temperature compensation
ecValue = ec.readEC(voltage,temperature); // convert voltage to EC with temperature compensation
Serial.print("temperature:");
Serial.print(temperature,1);
Serial.print("^C EC:");
Serial.print(ecValue,2);
Serial.println("ms/cm");
}
ec.calibration(voltage,temperature); // calibration process by Serail CMD
}
float readTemperature()
{
//add your code here to get the temperature from your temperature sensor
}
常见问题
***Q1.***电导率电极使用多长时间后需要校准?
A. 校准的间隔和使用频率有关。通常情况下,一个月校准一次即可。如使用频繁,可一个星期校准一次。校准时,尽量使用新鲜的电导率标准液。
Q2. 自动温补如何实现?
A. DFRobot_EC软件库中,已经集成了温补算法,你只需将电压值和温度值同时传入 float readEC(float voltage, float temperature) 函数中,即可获得温补后的电导率值。因此,为保证精度,强烈建议你添加温度传感器,读取溶液的温度值,以执行自动温补。
Q3. 校准过程中,是否必须完成2点校准?可否只完成1点校准?
A. 必须完成2点校准,因为2个点分别对应1413us/cm和12.88ms/cm两种电导率标准溶液。通过2个点的校准,可保证整个测量范围内的精度,因此必须完成2点校准,不可只完成1点校准。
Q4. 第一次校准时,总是校准失败,可能是什么原因?
A.校准时,相关的参数是保存在EEPROM中指定的位置的。如果之前恰好有保存过其他参数到EEPROM中的这个地址,可能会有冲突,导致不能正常校准。可用下述代码,擦除EEPROM中指定位置的内容。运行一次即可,然后重新上传样例代码,再进行校准操作。
/*
This code will reset the corresponding EEPROM used by DFRobot Gravity EC Meter K=1. SKU:DFR0300
When uploaded this code, please open the serial monitor of the Ardino IDE. The correct value of the EEPROM block should be 255.
*/
#include <EEPROM.h>
#define ECADDR 0x0A
void setup()
{
Serial.begin(115200);
for(int i = 0;i < 8; i++ )
{
EEPROM.write(ECADDR+i, 0xFF);// write defaullt value to the EEPROM
delay(10);
}
}
void loop()
{
static int a = 0, value = 0;
value = EEPROM.read(ECADDR+a);
Serial.print(ECADDR+a,HEX);
Serial.print(":");
Serial.print(value);// print the new value of EEPROM block used by EC meter. The correct is 255.
Serial.println();
delay(10);
a = a + 1;
if (a == 8)
while(1);
}
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。
Mind+(基于Scratch3.0)图形化编程
1、下载及安装软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装
2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程
3、“扩展”中选择“主控板”中的“Arduino Uno”。 "扩展"“传感器”中搜索选择“EC计(V2)”。详细教程:Mind+基础wiki教程-加载扩展库流程
4、进行编程,程序如下图:
5、菜单“连接设备”,“上传到设备”
6、程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印