模拟ORP计

概述

  • 想DIY一个ORP计吗?还在为没有一款价格低廉、使用方便的ORP计而烦恼吗?我们推出了一款专为Arduino控制器设计的模拟ORP计,具有连线简单、方便实用等特点。按照示意图连线后,再通过程序控制,就可以非常方便的测量溶液的ORP。

  • ORP是英文Oxidation-Reduction Potential的缩写,即氧化还原电位。ORP是氧化还原能力的测量指标,表征氧化性或还原性的相对程度,其单位是mV。氧化还原电位越高,氧化性越强;氧化还原电位越低,氧化性越弱。电位为正表示介质显示出一定的氧化性,电位为负则说明介质显示出一定的还原性。

  • ORP是水质检测中一个重要的指标,它虽然不能独立反应水质的好坏,但是能够综合其他水质指标来反映水族系统中的生态环境。

  • 测量元件是ORP复合电极,由金或铂电极与参比电极组合成复合电极,用以测量溶液的氧化还原电位。

技术指标

  • 模块电源:+5.00V
  • 模块尺寸:40mmX27mm
  • 测量范围:-2000mV—2000mV
  • 适用温度:5-70℃
  • 精度:±10mV(25℃)
  • 响应时间:≤20sec
  • BNC接口型ORP电极
  • PH2.0接口(3脚贴片)
  • 零点校准按钮
  • 电源指示灯

ORP标准溶液温度系数特性

ORP_mV.jpg

ORP计的使用

连接图

使用步骤

注意:

  • 请使用高品质开关电源,电压尽量接近+5.00V,电压越准,精度越高!

  • ORP电极使用时无需标定,直接使用即可。只有对ORP电极的品质或测试结果有疑问时,可用ORP标准溶液检查电极电位,以判断ORP电极或仪器的好坏。

  • ORP电极每测一种溶液,都需要使用清水清洗,建议使用去离子水清洗。

  • ORP电极连接到ORP meter电路板上时,严禁按下calibration按键,否则会损坏ORP电极!

**(1)**用模拟连接线,把ORP meter电路板右边的接口连接到Arduino主控器的模拟口1,对Arduino主控器供电后,可以看到ORP meter电路板的蓝色指示灯变亮。

**(2)**对Arduino主控器烧写样例代码(注意:此时样例程序中应该是#define OFFSET 0)。

**(3)**打开Arduino IDE的串口监视器,可以看到当前打印出的ORP值。按下ORP meter电路板上的calibration按键保持不放,应该能看到打印出的值是一个很小的值,然后根据这个打印值,修改样例程序中的偏移量。比如,串口打印出:“ORP: 8mV”,那么把样例程序中的“#define OFFSET 0”修改成“#define OFFSET 8”即可。修改偏移量的目的是为了消除运算放大器产生的零漂电压,提高测量精度。修改完样例程序后,重新编译下载即可,这样便完成了校准。

**(4)**把ORP电极连接到ORP meter电路板的BNC接口。完整的连线图请对照连接示意图。经过校准后,ORP电极就能测量溶液的ORP值了,通过串口监视器,能很方便的查看当前溶液的ORP值。

样例代码

下载样例代码后,打开Arduino IDE的串口监视器,即可看到结果。

    /*
    # This sample codes is for testing the ORP meter V1.0.
     # Editor : YouYou
     # Date   : 2013.11.26
     # Product: ORP meter V1.0
     # SKU    : SEN0165
    */
    #define VOLTAGE 5.00    //system voltage
    #define OFFSET 0        //zero drift voltage
    #define LED 13         //operating instructions

    double orpValue;

    #define ArrayLenth  40    //times of collection
    #define orpPin 1          //orp meter output,connect to Arduino controller ADC pin

    int orpArray[ArrayLenth];
    int orpArrayIndex=0;

    double avergearray(int* arr, int number){
      int i;
      int max,min;
      double avg;
      long amount=0;
      if(number<=0){
        printf("Error number for the array to avraging!/n");
        return 0;
      }
      if(number<5){   //less than 5, calculated directly statistics
        for(i=0;i<number;i++){
          amount+=arr[i];
        }
        avg = amount/number;
        return avg;
      }else{
        if(arr[0]<arr[1]){
          min = arr[0];max=arr[1];
        }
        else{
          min=arr[1];max=arr[0];
        }
        for(i=2;i<number;i++){
          if(arr[i]<min){
            amount+=min;        //arr<min
            min=arr[i];
          }else {
            if(arr[i]>max){
              amount+=max;    //arr>max
              max=arr[i];
            }else{
              amount+=arr[i]; //min<=arr<=max
            }
          }//if
        }//for
        avg = (double)amount/(number-2);
      }//if
      return avg;
    }


    void setup(void) {
      Serial.begin(9600);
      pinMode(LED,OUTPUT);
    }

    void loop(void) {
      static unsigned long orpTimer=millis();   //analog sampling interval
      static unsigned long printTime=millis();
      if(millis() >= orpTimer)
      {
        orpTimer=millis()+20;
        orpArray[orpArrayIndex++]=analogRead(orpPin);    //read an analog value every 20ms
        if (orpArrayIndex==ArrayLenth) {
          orpArrayIndex=0;
        }
        orpValue=((30*(double)VOLTAGE*1000)-(75*avergearray(orpArray, ArrayLenth)*VOLTAGE*1000/1024))/75-OFFSET;   //convert the analog value to orp according the circuit
      }
      if(millis() >= printTime)   //Every 800 milliseconds, print a numerical, convert the state of the LED indicator
      {
        printTime=millis()+800;
        Serial.print("ORP: ");
        Serial.print((int)orpValue);
            Serial.println("mV");
            digitalWrite(LED,1-digitalRead(LED));
      }
    }

Mind+(基于Scratch3.0)图形化编程

1、下载及安装软件。下载地址:https://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装
2、切换到“上传模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程
3、“扩展”中选择“主控板”中的“Arduino Uno”。 "扩展"“传感器”中搜索选择“ORP传感器”。详细教程:Mind+基础wiki教程-加载扩展库流程
4、进行编程,程序如下图:
5、菜单“连接设备”,“上传到设备”
6、程序上传完毕后,打开串口即可看到数据输出。详细教程:Mind+基础wiki教程-串口打印

维护及注意事项

  • 测量前和测量后,都应用去离子水清洗电极,以保证测量精度,在粘稠试样中测定时,电极需用热去离子水反复冲洗几次,以除去黏在铂金片上的试样,或先用适宜的溶剂清洗,再用去离子水洗去溶剂。
  • 电极经长期使用后会发生钝化,其现象是敏感梯度降低,响应变慢,读数不准,此时可将电极下端铂金片用0.1M稀盐酸浸泡24小时。
  • 电极污染或者液接面堵塞,也会使电极钝化,此时,应根据污染物的性质选择适当溶液清洗,如下(仅供参考):

clean.jpg

  • 电极使用周期为一年左右,老化后应及时更换新的电极。

相关文档

  • 资料包(原理图、布局图、样例代码、ORP复合电极使用说明书)

<File:nextredirectltr.png>购买 模拟ORP计(SKU:SEN0165)