const int EchoPin = 5;
const int TriggerPin = 6;
const int PulseDuration = 10; // Duración del pulso en microsegundos
const float SpeedOfSound = 292.0; // Velocidad del sonido en aire en metros por segundo
const unsigned long interval = 1000; // Intervalo de tiempo en milisegundos
unsigned long previousMillis = 0;
void setup() {
Serial.begin(9600);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void delayMicros(unsigned long microseconds) {
unsigned long start = micros();
while (micros() - start < microseconds) {}
}
void loop() {
long duration, distanceCm;
unsigned long currentMillis = millis();
// Generar pulso limpio para el sensor ultrasónico
digitalWrite(TriggerPin, LOW);
delayMicros(4);
digitalWrite(TriggerPin, HIGH);
delayMicros(PulseDuration);
digitalWrite(TriggerPin, LOW);
// Medir el tiempo entre pulsos (echo)
duration = pulseIn(EchoPin, HIGH);
// Calcular la distancia en centímetros
distanceCm = duration * PulseDuration / (2.0 * SpeedOfSound);
// Imprimir la distancia si ha pasado el intervalo de tiempo
if (currentMillis - previousMillis >= interval) {
Serial.print("Distancia: ");
Serial.println(distanceCm);
previousMillis = currentMillis;
}
}