Introduction: Ejemplo Básico Con HC-SR04

El sensor HC-SR04 nos permite detectar objetos en el entorno con una exactitud de hasta 3 milímetros. Puede detectar hasta a distancias de 4 metros y ofrece una respuesta rápida que puede emplearse a la hora de esquivar obstáculos por equipos autónomos o en cualquier otro proyecto que necesitemos detectar objetos y conocer la distancia a la que se encuentran del sensor.

Para más información sobre el sensor, dejamos aquí una explicación más detallada:

https://www.youtube.com/watch?v=-RnX-e9VGvg

Step 1: Materiales

Para el siguiente ejemplo vamos a emplear los siguientes elementos:

1x Placa de desarrollo Nano

1x Sensor HC-SR04

1x Breadboard de 400 puntos

4x Cables macho-macho para breadboard

Step 2: Entorno De Desarrollo

Para programar el microcontrolador (Atmega 328p) de la placa de desarrollo que vamos a emplear emplearemos el IDE Arduino con un código de ejemplo básico (archivos para descargar al final).

No será necesario emplear ninguna librería puesto que la comunicación con el sensor emplea funciones básicas del lenguaje Arduino.

Adicionalmente para cargar el software en el microcontrolador nos hará falta o bien un cable mini USB o bien un adaptador UART USB. Si no sabes lo que es lo segundo, recomendamos emplear simplemente el cable mini USB.

Asumimos que ya has descargado e instalado el entorno de desarrollo, así como los drivers para la conexión de la placa mediante USB de ser necesarios.

Step 3: Montaje

El montaje es muy sencillo, empezaremos por insertar los dos elementos en la placa de la manera que podemos ver en la imagen.

Ahora debemos conectar tanto la alimentación como la tierra. De la siguiente manera:

Vcc (sensor) -> 5V (placa)

Gnd (sensor) -> GND (placa)

Con ello el sensor recibirá ya la alimentación necesaria para su funcionamiento. Ahora pasamos a conectar los dos cables para la comunicación con el sensor.

Echo (sensor) -> Pin 9 (placa)

Trig (sensor) -> Pin 8 (placa)

Se podrían emplear otros pines distintos para hacer funcionar el sensor, siempre que tengan la capacidad de enviar señales digitales y de medir la longitud de las señales digitales recibidas para calcular la distancia.

Step 4: Código

long distancia;
long tiempo;
void setup(){
  Serial.begin(9600);
  pinMode(9, OUTPUT); 
  pinMode(8, INPUT);
  digitalWrite(9, LOW); 
}
void loop(){
  digitalWrite(9, HIGH); 
  delayMicroseconds(10);
  digitalWrite(9, LOW);
  tiempo=pulseIn(8, HIGH); 
  distancia= int(0.017*tiempo); 
  Serial.print(distancia);
  Serial.println(" cm");
  delay(1000);
}