Gravity: Analog pH Sensor / Meter Kit For Arduino

Pendahuluan

Gravity: Analog pH Sensor merupakan sebuah kit yang dibuat oleh dfrobot untuk mendeteksi pH dalam air. Kit ini kompatibel dengan Arduino board dan juga praktis penggunaannya. Menggunakan konektor BNC pada probe sensor pH (pH Electrode) dan pada menggunakan konektor PH2.0 pada output modul sensor PH. Keluaran pada Sensor tersebut berupa tegangan analog.

Sumber : dfrobot.com

Aplikasi

  • Water quality testing
  • Aquaculture

Spesifikasi

  • Tegangan Inpur Modul : 5.0V
  • Ukuran Modul : 43mm×32mm
  • Pengukuran : 0 – 14PH
  • Akurasi : ± 0.1pH (25 ℃
  • Response Time :  ≤ 1min
  • Konektor PH Sensor (pH Electrode) : BNC konektor
  • Output konektor modul: PH2.0 3 Pin
  • Gain Adjustment Potentiometer
  • Led untuk Indikator Tegangan Input
  • Panjang Kabel Sensor ke konektor BNC : 660mm

Board Overview

pH Electrode Size

Sumber : dfrobot.com

Karakteristik pH Electrode

Tegangan output yang dikeluarkan pH Electrode sangat kecil. Berikut Tabel hubungan antara nilai pH dengan Tegangan yang di hasilkan oleh pH Electrode.

Sumber:dfrobot.com

Tutorial

Connecting Diagram

Sumber dfrobot.com

Langkah Penggunaan pH Meter

Perhatian:

  • Agar Akurasi Pembacaan sensor semakin akurat, gunakan external switching power supply +5V. Semakin Output Tegangan power supply mendekati +5V, akurasi sensor akan semakin akurat.
  • Sebelum Menggunakan kit ini, kita harus melakukan proses kalibrasi terlebih dahulu dengan cairan yang sudah memiliki nilai pH standard agar mendapatkan hasil yang lebih akurat dan juga suhu lingkungan yang baik dalam melakukan proses kalibrasi yaitu pada suhu 25⁰C.
  • Sebelum pH Electrode di masukan kedalam larutan pH, kita harus mencuci pH Electrode dengan air. Di rekomendasikan menggunakan air terdeionisasi (deionized water).
  1. Hubungkan kit sensor dengan arduino board seperti gambar diatas. Output modul kit sensor harus di sambungkan ke pin ADC arduino board. ketika Arduino board telah mendapatkan tegangan, LED pada modul sensor akan menyala.
  2. Upload sample code ke arduino board.
  3. Letakan pH electrode ke Larutan pH yang memiliki nilai pH 7.00 , atau bisa juga dengan men-shortkan input konektor BNC ke ground (GND) seperti gambar dibawah ini. Buka serial monitor Arduino IDE untuk melihat nilai pH nya. Nilai pH pada serial monitor harus 7.00. jika nilai pH tidak 7.00 kita harus menambahkan nilai “error” ke dalam sketch sample code. Masukan nilai error tersebut ke variable “Offset” yang ada pada sketch sample code. contoh: Nilai pH yang tebaca pada serial monitor adalah 6.80, artinya kita memiliki error sebesar 0.2 . Nilai 0.2 ini kita masukan ke dalam variable “Offset”. sehingga di sketch example code menjadi “#define Offset 0.20”.
  4. Letakan pH electrode ke dalam larutan pH bernilai 4.00 dan tunggu 1 menit. Jika nilai pH belum mendekati 4.00, putar potensiometer yang ada pada modul pH sampai mendepatkan nilai yang stabil disekitar 4.0. Note: pH electode harus di bersihkan terlebih dahulu sebelum masuk kedalamm larutan.
  5. Jika kita lihat dari karekteristik linear dari pH electrode, setelah melakukan kalibrasi diatas kita seharusnya sudah bisa melakukan pengukuran pH basa. tetapi jika ingin mendapatkan akurasi yang lebih baik, kita dapat melakukan kalibrasi ulang. Caranya yaitu dengan memasukan pH electrode ke dalam cairan yang memilik nilai 9.18. tunggu 1 menit. Jika nilai pH belum mendekati 9.18, putar potensiometer yang ada pada modul pH sampai mendepatkan nilai yang stabil disekitar 9.18.
Cara Melakukan Hubung Singkat pada Modul pH

Sample Code

/*
 # This sample code is used to test the pH meter V1.0.
 # Editor : YouYou
 # Ver    : 1.0
 # Product: analog pH meter
 # SKU    : SEN0161
*/
#define SensorPin A0            //pH meter Analog output to Arduino Analog Input 0
#define Offset 0.00            //deviation compensate
#define LED 13
#define samplingInterval 20
#define printInterval 800
#define ArrayLenth  40    //times of collection
int pHArray[ArrayLenth];   //Store the average value of the sensor feedback
int pHArrayIndex=0;
void setup(void)
{
  pinMode(LED,OUTPUT);
  Serial.begin(9600);
  Serial.println("pH meter experiment!");    //Test the serial monitor
}
void loop(void)
{
  static unsigned long samplingTime = millis();
  static unsigned long printTime = millis();
  static float pHValue,voltage;
  if(millis()-samplingTime > samplingInterval)
  {
      pHArray[pHArrayIndex++]=analogRead(SensorPin);
      if(pHArrayIndex==ArrayLenth)pHArrayIndex=0;
      voltage = avergearray(pHArray, ArrayLenth)*5.0/1024;
      pHValue = 3.5*voltage+Offset;
      samplingTime=millis();
  }
  if(millis() - printTime > printInterval)   //Every 800 milliseconds, print a numerical, convert the state of the LED indicator
  {
    Serial.print("Voltage:");
        Serial.print(voltage,2);
        Serial.print("    pH value: ");
    Serial.println(pHValue,2);
        digitalWrite(LED,digitalRead(LED)^1);
        printTime=millis();
  }
}
double avergearray(int* arr, int number){
  int i;
  int max,min;
  double avg;
  long amount=0;
  if(number<=0){
    Serial.println("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;
}

Tindakan Pencegahan

  1. Konektor pH elecrtode harus dalam keadaan bersih dan kering
  2. Larutan pH harus bersih agar tidak berefek pada akurasi pengukuran.
  3. Cairan yang terdapat pada wadah electrode merupakan Electrode reference,yaitu 3NKCL.
  4. Tidak disarankan pH Electrode terlalu lama di letakan pada larutan pH.

Was this article helpful?

Related Articles

Leave A Comment?