#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
// membaca nilai analog pin A0
const int phSensorPin = A0;
// hasil perhitungan = (TeganganPhA - TeganganPhB) / (phB - phA)
float kalibrasi = 0.165;
void setup() {
pinMode (phSensorPin, INPUT);
Serial.begin(9600);
//lcd.init();
lcd.begin();
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Monitoring");
lcd.setCursor(5,1);
lcd.print("PH Air");
delay(2000);
}
void loop() {
int nilaiPengukuranPh = analogRead(phSensorPin);
Serial.print("ADC Ph:");
Serial.print(nilaiPengukuranPh);
// rumus menentukan nilai TeganganPh
float TeganganPh = 5.0 / 1024.0 * nilaiPengukuranPh;
// rumus menentukan nilai pH cairan
float nilaiPh = 6.86+((2.68 - TeganganPh)/kalibrasi);
Serial.print(" Tegangan Ph:");
Serial.print(TeganganPh, 2);
Serial.print(" Nilai Ph:");
Serial.print(nilaiPh, 2);
lcd.clear();
lcd.setCursor(5, 0);
lcd.print(nilaiPh, 2);
lcd.setCursor(0,0);
lcd.print("PH : ");
lcd.setCursor(0,1);
lcd.print("Status : ");
if(nilaiPh > 7.5 ){
//pH basa lebih dari 7.5
lcd.setCursor(9, 1);
lcd.print("Basa");
Serial.println(" Status : Basa");
}
else if(nilaiPh > 6.4){
//pH netral 6.5 - 7.5
lcd.setCursor(9, 1);
lcd.print("Netral");
Serial.println(" Status : Netral");
}
else {
//pH asam kurang dari 6.5
lcd.setCursor(9, 1);
lcd.print("Asam");
Serial.println(" Status : Asam");
}
delay(2000);
}

Posted inrobotics



