Arduino hc-sr04


Los sensores de ultrasonidos son dispositivos usados para detectar la distancia de los objetos, en este post te explicaremos como usar el sensor

oscar Escrito por oscar 05 June 2016 12805 1

Los sensores de ultrasonidos son dispositivos usados para detectar la distancia de los objetos, se encuentran en proyectos de robótica o en la industria, en este post vamos a explicar como usar un sensor de este tipo.

Video

A continuación, tenemos el video del circuito.

Sensor Ultrasonido

Los sensores de ultrasonido o sensores ultrasónicos son detectores de proximidad que trabajan libres de roces mecánicos y que detectan objetos a distancias que van desde pocos centímetros hasta varios metros[1]. El sensor emite un sonido y mide el tiempo que la señal tarda en regresar.

Sensor HC-SR04

El HC-SR04 es un sensor de distancias por ultrasonidos capaz de detectar objetos y calcular la distancia a la que se encuentra en un rango de 2 a 450 cm. El sensor funciona por ultrasonidos y contiene toda la electrónica encargada de hacer la medición. Su uso es tan sencillo como enviar el pulso de arranque y medir la anchura del pulso de retorno. De muy pequeño tamaño, el HC-SR04 se destaca por su bajo consumo, gran precisión y bajo precio por lo que esta reemplazando a los sensores polaroid en los robots mas recientes.

Para más información del sensor la encuentran en HC-SR04.

Circuito

En el siguiente circuito esta la forma de conectar el sensor al arduino como se describe en la tabla y en la imagen.

Arduino hcsr04
9 Trig
8 Echo
5V VCC
GND GND
Circuito arduino hc-sr04
Circuito arduino hc-sr04

Materiales

Para el ejercicio usaremos un arduino y el sensor ultrasonido.

Material Cantidad Descripción
Arduino 1 Usa el arduino que mas te guste.
HC-SR04 1 Sensor de ultrasonido.
Cables macho a macho 4 Para realizar la conexión del sensor a arduino

Código

El código lo tenemos en el repositorio de github por si deseas clonar el proyecto.

//Se declaran los pines para el sensor
int const TRIG = 9;
int const ECHO = 8;

//Variables de calculo
float distancia;
float tiempo;

void setup(){
  Serial.begin(9600);
  //Activación del pin como salida: para el pulso ultrasónico
  pinMode(TRIG, OUTPUT); 
  //Activación del pin como entrada: tiempo del rebote del ultrasonido
  pinMode(ECHO, INPUT); 
}

void loop(){
  //Por cuestión de estabilización del sensor
  digitalWrite(TRIG,LOW); 
  delayMicroseconds(5);
  //Envío del pulso ultrasónico
  digitalWrite(TRIG, HIGH); 
  delayMicroseconds(10);
  /* Función para medir la longitud del pulso entrante. 
  Mide el tiempo que transcurrido entre el envío
  del pulso ultrasónico y cuando el sensor recibe el rebote, e
  s decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
  deja de hacerlo, LOW, la longitud del pulso entrante*/
  tiempo = pulseIn(ECHO, HIGH); 
  /*fórmula para calcular la distancia obteniendo un valor entero*/
  /*Monitorización en centímetros por el monitor serial*/
  distancia = int(0.017 * tiempo); 
  Serial.print("Distancia ");
  Serial.print(distancia);
  Serial.print(" cm");
  Serial.println("");
  delay(1000);
}

Funcionamiento

Para poder entender un poco lo que hace el código anterior, debemos saber primero debemos saber como funciona nuestro sensor para ello lo e explicado en los siguientes pasos.

  1. Enviar un Pulso "1" de al menos de 10uS por el Pin Trigger (Disparador).
  2. El sensor enviará 8 Pulsos de 40KHz (Ultrasonido) y coloca su salida Echo a alto (seteo), se debe detectar este evento e iniciar un conteo de tiempo.
  3. La salida Echo se mantendrá en alto hasta recibir el eco reflejado por el obstáculo a lo cual el sensor pondrá su pin Echo a bajo, es decir, terminar de contar el tiempo.
  4. Se recomienda dar un tiempo de aproximadamente 50ms de espera después de terminar la cuenta.
  5. La distancia es proporcional a la duración del pulso y puedes calcularla con las siguiente formula (Utilizando la velocidad del sonido = 340m/s):
Distancia en cm (centímetros) = Tiempo medido en us x 0.017

Nota:

  • Tener en cuenta, que la distancia que recorre la onda es dos veces (x2) la distancia del objeto, al usar: "distancia recorrida = velocidad x tiempo transcurrido"
  • Conecte el pin GND primero antes de suministrar alimentación a VCC.
  • Por favor, asegúrese de que la superficie del objeto a detectar debe tener al menos 0,5m para un mejor rendimiento.

Referencias

[1] Wikipedia ultrasonido https://es.wikipedia.org/wiki/Ultrasonido, Consultado abril 2019


Comentario

Debe aceptar antes de enviar
Pablo_zone
Pablo_zone

16 May 2018 12:27

la variable que utilizas para meter la distancia del ultrasonico y hacerlo un valor para poder usarlo en una condicion por ejemplo if(distancia => a) { si se cumple la condicion que haga esto} es la de distancia verdad