Codigo para medir ph

Tengo este codigo de arduino. El cual hara funcionar un dispositivo para medir ph estoy usando un sensor PH-4502C. Este dispositivo mide el ph y este ph Y muestra el resultado en una pantalla lcd y reproduce un audio en especifico dependiendo del valor del ph.

Todo funciona bien al hacer una medicion mide correctamente el problema es que al hacer una medicion repite los valores y datos de la medicion anterior como si los datos se quedaran guardados en algo y hasta que vuelvo hacer otra vez la medicion es cuando dice los datos correctos

#include <LiquidCrystal.h> // Libreria para pantalla LCD
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // Pines donde va conectada la pantalla (RS, E, D4, D5, D6, D7)
#include <SD.h> // Libreria para interactuar con la tarjeta SD
#include <SPI.h> // Libreria encargada de la comunicacion con el arduino
#include <TMRpcm.h> // Libreria para la reproducción de audio.
#define pinSD 10 // Pin al que va conectada la SD
TMRpcm Audio; // Se crea un objeto de TMRpcm para controlar la reproducción de audio.

float voltage; // Variable para almacenar el valor de voltaje obtenido del sensor.
float ph; // Variable para almacenar el valor de pH.

bool primeraEjecucion = true;

int botonreseat = 1; // Pin definido para el boton del reseat del programa
int estadoBoton = 0; // Estado del boton de pin reseat

void setup() {

pinMode(botonreseat, INPUT);
//pinMode(botonrepeat, INPUT);

Serial.begin(9600);
lcd.begin(16, 2);

if (!SD.begin(pinSD)) {
return;
}

Audio.speakerPin = 9;
Audio.quality(1);
Audio.setVolume(6);
}

void loop() {

int sensorValue = analogRead(A0);
voltage = analogRead(sensorValue);
voltage = (sensorValue * (5.00 / 1023.00));
ph = (voltage * - 5.70) + 21.34;

estadoBoton = digitalRead(botonreseat); // Lectura del estado actual del botón
// botonEstado = digitalRead(botonrepeat); // Lectura del estado actual del botón

if (primeraEjecucion) {
delay(3000);
Audio.play("33.wav");
lcd.setCursor(6, 0);
lcd.print("HOLA");
delay(30000);
lcd.clear();

primeraEjecucion = false;

}

lcd.setCursor(1, 0);
lcd.print("PARA UNA NUEVA");
lcd.setCursor(4, 1);
lcd.print("MEDICION");
delay(5000);
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("PRESIONE BOTON");
lcd.setCursor(8, 1);
lcd.print("1");
Audio.play("1.wav");

while (digitalRead(botonreseat) == HIGH) {
delay(100); //se agrega un retardo para evitar lecturas erróneas del botón  
}
    
Audio.play("2.wav");
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("INSERTE EL");
lcd.setCursor(3, 1);
lcd.print("ELECTRODO");
delay(15000);
lcd.clear();

lcd.setCursor(1, 0);
lcd.print("EN LA SUSTANCIA");
delay(7000);
lcd.clear();

if (ph > 0 && ph < 14) {

Audio.play("3.wav");
lcd.setCursor(3, 0);
lcd.print("Calculando");
lcd.setCursor(7, 1);
lcd.print("PH");
delay(30000);
lcd.clear();
Audio.play("3.wav");


  if (ph >= 13.76 && ph <= 14) {
    lcd.setCursor(0, 0);
    lcd.print("PH:");
    lcd.print(ph);
    lcd.setCursor(0, 1);
    lcd.print("PH MUY ALCALINO");
    Audio.play("4.wav");
    delay(10000);
    lcd.clear();
  }
      else{
    
      if (ph >= 13.26 && ph <= 13.75) {
      lcd.setCursor(0, 0);
      lcd.print("PH:");
      lcd.print(ph);
      lcd.setCursor(0, 1);
      lcd.print("PH MUY ALCALINO");
      Audio.play("5.wav");
      delay(10000);
      lcd.clear();
  }
        else{

        if (ph >= 12.76 && ph <= 13.25) {
        lcd.setCursor(0, 0);
        lcd.print("PH:");
        lcd.print(ph);
        lcd.setCursor(0, 1);
        lcd.print("PH MUY ALCALINO");
        Audio.play("6.wav");
        delay(10000);
        lcd.clear();
  }

          else{
                
          if (ph >= 12.26 && ph <= 12.75) {
          lcd.setCursor(0, 0);
          lcd.print("PH:");
          lcd.print(ph);
          lcd.setCursor(0, 1);
          lcd.print("PH MUY ALCALINO");
          Audio.play("7.wav");
          delay(10000);
          lcd.clear();
  }
            else{

            if (ph >= 11.76 && ph <= 12.25) {
            lcd.setCursor(0, 0);
            lcd.print("PH:");
            lcd.print(ph);
            lcd.setCursor(0, 1);
            lcd.print("PH MUY ALCALINO");
            Audio.play("8.wav");
            delay(10000);
            lcd.clear();
  }
              else{

              if (ph >= 11.26 && ph <= 11.76) {
              lcd.setCursor(0, 0);
              lcd.print("PH:");
              lcd.print(ph);
              lcd.setCursor(0, 1);
              lcd.print("PH MUY ALCALINO");
              Audio.play("9.wav");
              delay(10000);
              lcd.clear();
              }
  
                else{
                  
                if (ph >= 10.76 && ph <= 11.25) {
                lcd.setCursor(0, 0);
                lcd.print("PH MODERADAMENTE");
                lcd.setCursor(4, 1);
                lcd.print("ALCALINO");
                Audio.play("10.wav");
                delay(8000);
                lcd.clear();
                lcd.setCursor(0, 0);
                lcd.print("PH:");
                lcd.print(ph);
                delay(5000);
                lcd.clear();
  }
                  else{
                    
                  if (ph >= 10.26 && ph <= 10.75) {
                  lcd.setCursor(0, 0);
                  lcd.print("PH MODERADAMENTE");
                  lcd.setCursor(4, 1);
                  lcd.print("ALCALINO");
                  Audio.play("11.wav");
                  delay(8000);
                  lcd.clear();
                  lcd.setCursor(0, 0);
                  lcd.print("PH:");
                  lcd.print(ph);
                  delay(5000);
                  lcd.clear();
 }                
                    else{

                    if (ph >= 9.76 && ph <= 10.25) {
                    lcd.setCursor(0, 0);
                    lcd.print("PH MODERADAMENTE");
                    lcd.setCursor(4, 1);
                    lcd.print("ALCALINO");
                    Audio.play("12.wav");
                    delay(8000);
                    lcd.clear();
                    lcd.setCursor(0, 0);
                    lcd.print("PH:");
                    lcd.print(ph);
                    delay(5000);
                    lcd.clear();
  }
                      else{

                      if (ph >= 9.26 && ph <= 9.75) {
                      lcd.setCursor(0, 0);
                      lcd.print("PH MODERADAMENTE");
                      lcd.setCursor(4, 1);
                      lcd.print("ALCALINO");
                      Audio.play("13.wav");
                      delay(8000);
                      lcd.clear();
                      lcd.setCursor(0, 0);
                      lcd.print("PH:");
                      lcd.print(ph);
                      delay(5000);
                      lcd.clear();
  }
                        else{

                        if (ph >= 8.76 && ph <= 9.25) {
                        lcd.setCursor(1, 0);
                        lcd.print("PH LIGERAMENTE");
                        lcd.setCursor(4, 1);
                        lcd.print("ALCALINO");
                        Audio.play("14.wav");
                        lcd.clear();
                        delay(8000);
                        lcd.setCursor(0, 0);
                        lcd.print("PH:");
                        lcd.print(ph);
                        delay(5000);
                        lcd.clear();
  }
                          else{
                            
                          if (ph >= 8.26 && ph <= 8.75) {
                          lcd.setCursor(1, 0);
                          lcd.print("PH LIGERAMENTE");
                          lcd.setCursor(4, 1);
                          lcd.print("ALCALINO");
                          Audio.play("15.wav");
                          delay(8000);
                          lcd.clear();
                          lcd.setCursor(0, 0);
                          lcd.print("PH:");
                          lcd.print(ph);
                          delay(5000);
                          lcd.clear();
  }
                            else{

                            if (ph >= 7.76 && ph <= 8.25) {
                            lcd.setCursor(0, 0);
                            lcd.print("PH LIGERAMENTE");
                            lcd.setCursor(4, 1);
                            lcd.print("ALCALINO");
                            Audio.play("16.wav");
                            delay(8000);
                            lcd.clear();
                            lcd.setCursor(0, 0);
                            lcd.print("PH:");
                            lcd.print(ph);
                            delay(5000);
                            lcd.clear();
  }
                              else{

                              if (ph >= 7.26 && ph <= 7.75) {
                              lcd.setCursor(4, 0);
                              lcd.print("PH NEUTRO");
                              lcd.setCursor(4, 1);
                              lcd.print("PH:");
                              lcd.print(ph);
                              Audio.play("17.wav");
                              delay(10000);
                              lcd.clear();
  }
                                else{
                                  
                                if (ph >= 6.76 && ph <= 7.25) {
                                lcd.setCursor(4, 0);
                                lcd.print("PH NEUTRO");
                                lcd.setCursor(4, 1);
                                lcd.print("PH:");
                                lcd.print(ph);
                                Audio.play("18.wav");
                                delay(10000);
                                lcd.clear();
  }
                                  else{
                                    
                                  if (ph >= 6.26 && ph <= 6.75) {
                                  lcd.setCursor(4, 0);
                                  lcd.print("PH NEUTRO");
                                  lcd.setCursor(4, 1);
                                  lcd.print("PH:");
                                  lcd.print(ph);
                                  Audio.play("19.wav");
                                  delay(10000);
                                  lcd.clear();
  }
                                    else{

                                    if (ph >= 5.76 && ph <= 6.25) {
                                    lcd.setCursor(1, 0);
                                    lcd.print("PH LIGERAMENTE");
                                    lcd.setCursor(5, 1);
                                    lcd.print("ACIDO");
                                    Audio.play("20.wav");
                                    lcd.clear();
                                    delay(8000);
                                    lcd.setCursor(0, 0);
                                    lcd.print("PH:");
                                    lcd.print(ph);
                                    delay(5000);
                                    lcd.clear();
  }
                                      else{
    
                                      if (ph >= 5.26 && ph <= 5.75) {
                                      lcd.setCursor(1, 0);
                                      lcd.print("PH LIGERAMENTE");
                                      lcd.setCursor(5, 1);
                                      lcd.print("ACIDO");
                                      Audio.play("21.wav");
                                      delay(8000);
                                      lcd.clear();
                                      lcd.setCursor(1, 0);
                                      lcd.print("PH:");
                                      lcd.print(ph);
                                      delay(5000);
                                      lcd.clear();
  }
                                        else{

                                        if (ph >= 4.76 && ph <= 5.25) {
                                        lcd.setCursor(1, 0);
                                        lcd.print("PH LIGERAMENTE");
                                        lcd.setCursor(5, 1);
                                        lcd.print("ACIDO");
                                        Audio.play("22.wav");
                                        delay(8000);
                                        lcd.clear();
                                        lcd.setCursor(1, 0);
                                        lcd.print("PH:");
                                        lcd.print(ph);
                                        delay(5000);
                                        lcd.clear();
  }
                                          else{

                                          if (ph >= 4.26 && ph <= 4.75) {
                                          lcd.setCursor(0, 0);
                                          lcd.print("PH MODERADAMENTE");
                                          lcd.setCursor(5, 1);
                                          lcd.print("ACIDO");
                                          Audio.play("23.wav");
                                          delay(8000);
                                          lcd.clear();
                                          lcd.setCursor(1, 0);
                                          lcd.print("PH:");
                                          lcd.print(ph);
                                          delay(5000);
                                          lcd.clear();
  }
                                            else{

                                            if (ph >= 3.76 && ph <= 4.25) {
                                            lcd.setCursor(0, 0);
                                            lcd.print("PH MODERADAMENTE");
                                            lcd.setCursor(5, 1);
                                            lcd.print("ACIDO");
                                            Audio.play("24.wav");
                                            delay(8000);
                                            lcd.clear();
                                            lcd.setCursor(0, 0);
                                            lcd.print("PH:");
                                            lcd.print(ph);
                                            delay(8000);
                                            lcd.clear();
  }
                                              else{

                                              if (ph >= 3.26 && ph <= 3.75) {
                                              lcd.setCursor(0, 0);
                                              lcd.print("PH MODERADAMENTE");
                                              lcd.setCursor(5, 1);
                                              lcd.print("ACIDO");
                                              Audio.play("25.wav");
                                              delay(8000);
                                              lcd.setCursor(0, 0);
                                              lcd.print("PH:");
                                              lcd.print(ph);
                                              delay(8000);
                                              lcd.clear();
  }
                                                else{

                                                if (ph >= 2.76 && ph <= 3.25) {
                                                lcd.setCursor(0, 0);
                                                lcd.print("PH MODERADAMENTE");
                                                lcd.setCursor(5, 1);
                                                lcd.print("ACIDO");
                                                Audio.play("26.wav");
                                                delay(8000);
                                                lcd.clear();
                                                lcd.setCursor(0, 0);
                                                lcd.print("PH:");
                                                lcd.print(ph);
                                                delay(5000);
                                                lcd.clear();
  }
                                                  else{

                                                  if (ph >= 2.26 && ph <= 2.75) {
                                                  lcd.setCursor(2, 0);
                                                  lcd.print("PH MUY ACIDO");
                                                  lcd.setCursor(5, 1);
                                                  lcd.print("PH:");
                                                  lcd.print(ph);
                                                  Audio.play("27.wav");
                                                  delay(10000);
                                                  lcd.clear();
  }
                                                    else{

                                                    if (ph >= 1.76 && ph <= 2.25) {
                                                    lcd.setCursor(2, 0);
                                                    lcd.print("PH MUY ACIDO");
                                                    lcd.setCursor(5, 1);
                                                    lcd.print("PH:");
                                                    lcd.print(ph);
                                                    Audio.play("28.wav");
                                                    delay(10000);
                                                    lcd.clear();
  }
                                                      else{

                                                      if (ph >= 1.26 && ph <= 1.75) {
                                                      lcd.setCursor(2, 0);
                                                      lcd.print("PH MUY ACIDO");
                                                      lcd.setCursor(0, 1);
                                                      lcd.print("PH:");
                                                      lcd.print(ph);
                                                      Audio.play("29.wav");
                                                      delay(10000);
                                                      lcd.clear();
  }
                                                        else{

                                                        if (ph >= 0.76 && ph <= 1.25) {
                                                        lcd.setCursor(2, 0);
                                                        lcd.print("PH MUY ACIDO");
                                                        lcd.setCursor(0, 1);
                                                        lcd.print("PH:");
                                                        lcd.print(ph);
                                                        Audio.play("30.wav");
                                                        delay(10000);
                                                        lcd.clear();
  }
                                                          else{

                                                          if (ph >= 0.01 && ph <= 0.76) {
                                                          lcd.setCursor(2, 0);
                                                          lcd.print("PH MUY ACIDO");
                                                          lcd.setCursor(0, 1);
                                                          lcd.print("PH:");
                                                          lcd.print(ph);
                                                          Audio.play("31.wav");
                                                          delay(10000);
                                                          lcd.clear();
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }

}
if (ph < 0 || ph > 14) {

  Audio.play("32.wav");
  lcd.clear();
  lcd.setCursor(4, 0);
  lcd.print("RECUERDA");
  lcd.setCursor(3, 1);
  lcd.print("INTRODUCIR");
  delay(4500);
  lcd.clear();

  lcd.setCursor(2, 0);
  lcd.print("EL ELECTRODO");
  lcd.setCursor(6, 1);
  lcd.print("(..)");
  delay(4500);
  lcd.clear();
  }

}

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

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.

Moderador:
Por favor, lee las Normas del foro y edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en (<CODE/>)


En el futuro ten mas cuidado donde posteas tus consultas.
Si usas el foro en inglés solo usa ese idioma.
De lo contrario debes postear aqui en el foro en Español.

Cuando edites responderé tu consulta.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.