Sensor de distancia HCSR04 - javierre/nodemcu GitHub Wiki

Sensor de distancia HCSR04

Este sensor nos devuelve la distancia a la que se encuentra un objeto, para ello hace uso de ultrasonidos como se ve en la imagen a continuación.

Si conectamos los pines de la siguiente forma, podremos usar el código que aparece a continuación. En este código se mide el tiempo que el ultrasonido tarda en rebotar contra el obstáculo y se calcula la distancia a la que se encuentra el mismo.

/*
* Ultrasonic Sensor HC-SR04 and Arduino Tutorial
*
* by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/

// defines pins numbers
const int trigPin = D7;
const int echoPin = D8;

// defines variables
long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  Serial.begin(9600); // Starts the serial communication
}

void loop() {
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);

  // Calculating the distance
  distance= duration*0.034/2;

  // Prints the distance on the Serial Monitor
  Serial.print("Distance: ");
  Serial.println(distance);
}


Hay que tener en cuenta que el sensor emite los ultrasonidos en haz lobular y por tanto puede detectar obstáculos con distinta precisión en distinto ángulo o incluso interferir con otro sensor.

Códigos de ejemplo