Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino UNO Based pH Meter Interface

Image of Arduino UNO Based pH Meter Interface

Circuit Documentation

Summary

This circuit integrates an Arduino UNO microcontroller with a PH Meter sensor. The Arduino UNO is responsible for reading the analog signal from the PH Meter and calculating the pH value of the solution being measured. The calculated pH value is then output to the serial monitor for observation. The circuit is powered by the 5V supply from the Arduino UNO, which is also used to power the PH Meter.

Component List

Arduino UNO

  • Description: A microcontroller board based on the ATmega328P.
  • Pins: UNUSED, IOREF, Reset, 3.3V, 5V, GND, Vin, A0 to A5, SCL, SDA, AREF, D13 to D0.
  • Purpose: Acts as the central processing unit for the circuit, reading sensor data and executing embedded code to calculate and display pH levels.

PH Meter

  • Description: A sensor that measures the hydrogen-ion activity in water-based solutions, indicating its acidity or alkalinity expressed as pH.
  • Pins: Signal, VCC, GND.
  • Purpose: Provides an analog voltage output proportional to the pH level of the solution it is measuring.

Wiring Details

Arduino UNO

  • 5V: Provides power to the PH Meter.
  • GND: Common ground with the PH Meter.
  • A1: Reads the analog signal from the PH Meter.

PH Meter

  • VCC: Connected to the 5V output from the Arduino UNO.
  • GND: Connected to the ground (GND) on the Arduino UNO.
  • Signal: Outputs an analog signal to A1 on the Arduino UNO.

Documented Code

#define SensorPin A1         // the pH meter Analog output is connected with the Arduino’s Analog
unsigned long int avgValue;  //Store the average value of the sensor feedback
float b;
int buf[10],temp;

void setup()
{
  pinMode(13,OUTPUT);  
  Serial.begin(9600);  
  Serial.println("Ready");    //Test the serial monitor
}
void loop()
{
  for(int i=0;i<10;i++)       //Get 10 sample value from the sensor for smooth the value
  { 
    buf[i]=analogRead(SensorPin);
    delay(10);
  }
  for(int i=0;i<9;i++)        //sort the analog from small to large
  {
    for(int j=i+1;j<10;j++)
    {
      if(buf[i]>buf[j])
      {
        temp=buf[i];
        buf[i]=buf[j];
        buf[j]=temp;
      }
    }
  }
  avgValue=0;
  for(int i=2;i<8;i++)                      //take the average value of 6 center sample
    avgValue+=buf[i];
  float phValue=(float)avgValue*5.0/1024/6; //convert the analog into millivolt
  phValue=3.5*phValue;                      //convert the millivolt into pH value
  Serial.print("    pH:");  
  Serial.print(phValue,2);
  Serial.println(" ");
  digitalWrite(13, HIGH);       
  delay(800);
  digitalWrite(13, LOW); 
 
}

Filename: sketch.ino

Description: This code is written for the Arduino UNO to read the analog signal from the PH Meter sensor. It takes 10 samples of the sensor output, sorts them, and then averages the middle six values to get a stable reading. This average is then converted into a pH value using a calibration factor and is printed to the serial monitor. Additionally, the onboard LED connected to pin 13 is blinked with each reading cycle.