#define trig 22
#define echo 23
int microsprevios ;
int tiempomax = 30000;
int tiempoDoble;
byte uni, dec, cen, um, dm, cm, m;
long dist, dist_t;
//lcd
void setup() {
Serial.begin(115200);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}
void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
microsprevios = micros();
// Cambiado de !digitalRead(echo) == LOW a digitalRead(echo) == HIGH
while (digitalRead(echo) == LOW && (micros() - microsprevios) <= tiempomax) {
// Espera a que el pin echo sea HIGH
}
microsprevios = micros();
// Cambiado de digitalRead(echo) == HIGH a digitalRead(echo) == LOW
while (digitalRead(echo) == HIGH && (micros() - microsprevios) <= tiempomax) {
// Espera a que el pin echo sea LOW
}
tiempoDoble = micros() - microsprevios;
dist = tiempoDoble / 58.32; // Fórmula para calcular la distancia en centímetros
uni = dist % 10;
dist_t = dist / 10;
dec = dist_t % 10;
dist_t = dist_t / 10;
cen = dist_t % 10;
dist_t = dist_t / 10;
um = dist_t % 10;
dist_t = dist_t / 10;
dm = dist_t % 10;
dist_t = dist_t / 10;
cm = dist_t % 10;
m = dist_t / 10;
Serial.print("Distancia: ");
Serial.print(m);
Serial.print(cm);
Serial.print(dm);
Serial.print(um);
Serial.print(cen);
Serial.print(dec);
Serial.print(uni);
Serial.println(" cm");
delay(1000);
}