El sensor ultrasónico HC-SR04 #arduino

Un sensor de ultrasonidos es un dispositivo para medir distancias. Su funcionamiento se base en el envío de un pulso de alta frecuencia, no audible por el ser humano. Este pulso rebota en los objetos cercanos y es reflejado hacia el sensor, que dispone de un micrófono adecuado para esa frecuencia.

Midiendo el tiempo entre pulsos, conociendo la velocidad del sonido, podemos estimar la distancia del objeto contra cuya superficie impactó el impulso de ultrasonidos.

FUNCIONAMIENTO

El sensor se basa simplemente en medir el tiempo entre el envío y la recepción de un pulso sonoro. Sabemos que la velocidad del sonido es 343 m/s en condiciones de temperatura 20 ºC, 50% de humedad, presión atmosférica a nivel del mar. Transformando unidades resulta:

Es decir, el sonido tarda 29,2 microsegundos en recorrer un centímetro. Por tanto, podemos obtener la distancia a partir del tiempo entre la emisión y recepción del pulso mediante la siguiente ecuación.

El motivo de divir por dos el tiempo es porque hemos medido el tiempo que tarda el pulso en ir y volver, por lo que la distancia recorrida por el pulso es el doble de la que queremos medir.

CONEXIÓN ELÉCTRICA
CÓDIGO ARDUINO
const int EchoPin = 11;
const int TriggerPin = 12;void setup() {
Serial.begin(9600);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
}void loop() {
int cm = ping(TriggerPin, EchoPin);
Serial.print(“Distancia: “);
Serial.println(cm);
delay(1000);
}

int ping(int TriggerPin, int EchoPin) {
long duration, distanceCm;
digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
delayMicroseconds(4);
digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);
duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos   
distanceCm = duration * 10 / 292/ 2;   //convertimos la distancia, en cm
return distanceCm;
}

Otra opción es emplear una librería para facilitarnos el proceso, como por ejemplo la libreria Ultrasonic proporcionada por Leantec.

CÓDIGO ARDUINO CON LIBRERIA ULTRASONIC
// incluimos la librerias:
#include <Ultrasonic.h>
Ultrasonic sensor(12,11,30000); // (Trig PIN,Echo PIN, microsegundos max “distancia máxima”) 30000us = 5 metros
int distancia=0//Declaramos la variable donde guardaremos la distanciavoid setup() {
Serial.begin(9600)//Inicializamos el puerto serie
}void loop() {
distancia=sensor.Ranging(CM);  // Medimos la distancia y la guardamos en la variable
Serial.print(“Distancia “)// Imprimimos la palabra distancia en el monitor serial
Serial.print(distancia)// Imprimimos la variable distancia
Serial.println(” cm”)//Imprimimos las letras cm y saltamos de linea.
delay (2000)//Esperamos 2 segundos para repetir el proceso.
}

Fuentes consultadas:

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.