Falla en el codigo o en la calibración de un medidor de pH

Hola comunidad, es la primera vez que hago un proyecto con un sensor que mide el pH de ciertas soluciones y las proyecta en un LCD de 16x2, pero quisiera conocer como podria solucionar este tipo de problema, me gustaria saber si es un error de hardware o software, por aqui les dejare el codigo que estuve utilizando.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define pH_PIN A0  // Pin al que está conectado el sensor de pH

LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección I2C de la pantalla LCD

void setup() {
  lcd.begin(16, 2);
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("pH Sensor Test");

  pinMode(pH_PIN, INPUT); // Configurar el pin del sensor como entrada
  delay(2000); // Espera de 2 segundos para que el sensor se estabilice
}

void loop() {
  int sensorValue = analogRead(pH_PIN);  // Lee el valor del sensor
  float voltage = sensorValue * (4.0 / 1023.0); // Convierte el valor a voltaje
  float pHValue = 2.5 * voltage; // Fórmula para convertir el voltaje en un valor de pH

  lcd.setCursor(0, 1);
  lcd.print("pH: ");
  lcd.print(sensorValue, 2); // Muestra el valor de pH con 2 decimales

  delay(1000); // Espera de 1 segundo antes de la siguiente lectura
}

He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español @emiliano_07.

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

¿Y cuál es la falla, problema o error?