const int PIN_Echo = 4; const int PIN_Trigger = 3; const int PIN_Led = 2; void setup() { Serial.begin(115200); pinMode(PIN_Trigger, OUTPUT); pinMode(PIN_Echo, INPUT); pinMode(PIN_Led, OUTPUT); } void loop() { int cm = ping(PIN_Trigger, PIN_Echo); digitalWrite(PIN_Led, LOW); delay(800); Serial.print("Distance: "); Serial.println(cm); digitalWrite(PIN_Led, HIGH); delay(200); } int ping(int PIN_Trigger, int PIN_Echo) { long duration, distanceCm; digitalWrite(PIN_Trigger, LOW); //para generar un pulso limpio ponemos a LOW 4us delayMicroseconds(4); digitalWrite(PIN_Trigger, HIGH); //generamos Trigger (disparo) de 10us delayMicroseconds(10); digitalWrite(PIN_Trigger, LOW); duration = pulseIn(PIN_Echo, HIGH); //medimos el tiempo entre pulsos, en microsegundos distanceCm = duration * 10 / 292/ 2; //convertimos a distancia, en cm return distanceCm; }