Hy guys,
i'm beginner to Arduino i connected Arduino,PH sensor and oled connections properly. But My output of ph sensor is coming ph value is 0 as well as i,m getting voltage also 0 below is my code please help me out
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
#define SensorPin 0 // 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;
// OLED display height, in pixels
// Reset pin # (or -1 if sharing reset pin)
#define OLED_RESET 4
Adafruit_SH1106 display(OLED_RESET);
void setup()
{
pinMode(13,OUTPUT);
Serial.begin(9600);
Serial.println("Ready"); //Test the serial monitor
display.begin(SH1106_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
// init done
// Show image buffer on the display hardware.
// Since the buffer is intialized with an Adafruit splashscreen
// internally, this will display the splashscreen.
display.display();
delay(2000);
// Clear the buffer.
display.clearDisplay();
display.clearDisplay();
display.setTextColor(WHITE);
display.setTextSize(2);
display.setCursor(0,5);
display.print("PH Sensor");
display.display();
delay(3000);
}
void loop()
{
for(int i=0;i<10;i++) //Get 10 sample value from the sensor for smooth the value
{
buf*=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*>buf[j])_
_ {_
_ temp=buf;
buf=buf[j];
buf[j]=temp;
}
}
}
avgValue=0;
for(int i=2;i<8;i++) //take the average value of 6 center sample*
avgValue+=buf*;
float phValue=(float)avgValue5.0/1024/6; //convert the analog into millivolt_
_ phValue=3.5phValue; //convert the millivolt into pH value_
_ Serial.print(" pH:");
Serial.print(phValue,2);
Serial.println(" ");*_
* display.clearDisplay();*
* display.setTextSize(2);*
* display.setCursor(20,0);*
* display.println("Ph Value");*
* display.setTextSize(3);*
* display.setCursor(30,30);*
* display.print(phValue);*
* display.display(); *
* digitalWrite(13, HIGH); *
* delay(800);*
* digitalWrite(13, LOW); *
}