Calcular distancia Sensor ultrasonico + pantalla LCD

Hola!
Tengo un problema con el calculo de distancia de mi sensor ultrasonico. Calcula bien la distancia pero al parecer de vez en cuando aparece un valor: 72cm/0,72cm al perder la senyal. He intentado hacer un reset para que no aparezca este numero y se mantenga el valor anterior pero no funciona.
Adjunto codigo:

#include <LiquidCrystal_I2C.h>

#include <LiquidCrystal.h>


int VO = 3;
int RS = 4;
int E = 5;
int D4 = 6;
int D5 = 7;
int D6 = 8;
int D7 = 9;
LiquidCrystal lcd (RS, E, D4, D5, D6, D7);

int pin_TRIG = 10; //Pin para enviar pulsos
int pin_ECHO = 11; //Pin para recibir la señal de rebote

int tiempoSenal;
int distanciaCM;
float distanciaM;
int ultimaDistancia = 0;

void setup() {

 pinMode(pin_TRIG, OUTPUT);
  pinMode(pin_ECHO, INPUT);
  lcd.begin(16, 2);

  analogWrite(VO, 0);
}
  
  



void loop() {
  
 digitalWrite(pin_TRIG, LOW);
  delayMicroseconds(5); //Estabiliza el sensor

  digitalWrite(pin_TRIG, HIGH); //Envia el pulso para iniciar el sensor
  delayMicroseconds(10);

  tiempoSenal = pulseIn(pin_ECHO, HIGH); //Tiempo que dura el pin ECHO en HIGH
  distanciaCM = (0.034 * tiempoSenal) / 2; //Convierte el tiempo en distancia (cm)
  distanciaM = ((0.034 * tiempoSenal) / 2) / 100; //Convierte el tiempo en distancia (m)

if(distanciaCM != ultimaDistancia);
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("not found");   
  lcd.print(distanciaCM);       //Muestra en la pantalla la distancia en centímetros
  lcd.print(" :(");
  ultimaDistancia = distanciaCM;
  
  }


  lcd.setCursor(0, 0);
  lcd.print("Distancia: ");   
  lcd.print(distanciaCM);       //Muestra en la pantalla la distancia en centímetros
  lcd.print("cm ");

  
  lcd.setCursor(0, 1);
  lcd.print("Distancia: ");
  lcd.print(distanciaM);       //Muestra en la pantalla la distancia en metros
  lcd.print("m");

  delay(500);

}

También adjunto foto de la instalación:


Posible error

  if (distanciaCM != ultimaDistancia);
  {

el condicioinal no puede terminar en ; sino con el comienzo de la llave que indica que cosas se van a ejecutar cuando se cumpla la condición.
Elimina el ;

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