//Ejemplo sensor ultrasonidos
float DistanceCalc = 0;
int Echo=12;
int Trigger=13;
float readUltrasonicDistance(int triggerPin, int echoPin)
{
//Apagamos el emisor de sonido
digitalWrite(Trigger, LOW);
//Retrasamos la emision de sonido por 2 microsegundos
delayMicroseconds(2);
// Comenzamos a emitir sonido
digitalWrite(Trigger, HIGH);
//Retrasamos la emision de sonido por 10 microsegundos
delayMicroseconds(10);
//Apagamos el emisor de sonido
digitalWrite(Trigger, LOW);
//Comenzamos a escuchar el sonido y
//calculamos el tiempo que tardó en regresar el sonido
return pulseIn(Echo, HIGH);
}
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT); // coloca el LED_BUILTIN = GPIO2 del ESP32 en modo de salida
pinMode(Trigger, OUTPUT); // coloca el pin Trigger del sensor como salida del ESP32
pinMode(Echo, INPUT); // coloca el pin Echo del sensor como entrada del ESP32
}
void loop() {
// Calculo de la distancia en cm
// ((time)*(Velocidad del sonido))/ ida y vuelta al objeto)
DistanceCalc = ((readUltrasonicDistance(Trigger, Echo) /29) / 2); // Calculo en cm
//DistanceCalc = readUltrasonicDistance(Trigger, Echo) / 74 / 2; // Calculo en pulgadas
//Mostramos la disstancia
Serial.print("Distancia = "); // Escribimos por monitor
Serial.print(DistanceCalc,1);
Serial.println(" cm");
//Serial.println(" pulg");
//Si la distancia es menor a 20 cm encendemos el led
if ( DistanceCalc < 20) {
digitalWrite(LED_BUILTIN, HIGH);
}
//Si la distancia es mayor a 20 cm apagamos el led
else {
digitalWrite(LED_BUILTIN, LOW);
}
delay(10);
}