模拟ORP计

概述

技术指标

ORP标准溶液温度系数特性

ORP_mV.jpg

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

维护及注意事项

clean.jpg

相关文档

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