¿Qué
es un Sensor ultrasónico(HC-SR04)?
Es un dispositivo capaz de medir distancias por medio de una frecuencia ultrasónica, este funciona a través del envío de pulsos de alta frecuencia, no audible para el oído humano. Normalmente este pulso (frecuencia) rebota en los objetos que se encuentran alrededor y es reflejado hacia el sensor (captado por un micrófono adecuado para la frecuencia especifica). El tiempo entre pulsos es medido conociendo la velocidad del sonido podemos calcular la distancia de un objeto contra la superficie que reflejaron los pulsos. Los sensores ultrasónicos HC-SR04 son capaces de medir entre 2 centímetros y 400 centímetros, con una resolución de 0.3 centímetros. Dentro de la practica el rango de medición es entre 4 centímetros y 200 centímetros.
Los
sensores ultrasónicos son sensores de baja precisión. La orientación de la
superficie a medir puede provocar que la onda se refleje, dando una falsa
medición. Es importante verificar en un entorno el resultado de un numero de
objetos, ya que el sonido rebota en las superficies de los objetos generando
ecos y falsas mediciones.
Figura 1.-Angulo para la detección de un
objeto con sensor ultrasónico.
Aunque
este dispositivo es de baja precisión, podemos conocer con alguna imprecisión
la distancia a un objeto, los sensores de ultrasonidos son ampliamente
empleados. En robótica es habitual montar uno o varios de estos sensores, por
ejemplo, para detección de obstáculos, determinar la posición del robot, crear
mapas de entorno, resolver laberintos entre otros.
Figura 2.- Funcionamiento de sensor ultrasónico.
Para
una aplicación que se requiera una precisión mayor en la medición de la
distancia, suelen acompañarse de medidores de distancia por infrarrojos o
sensores ópticos.
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 es dividir
por dos el tiempo (además de la velocidad del sonido en las unidades
apropiadas, que hemos calculado antes) 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 típica con un Arduino uno:
Figura 3.-Conexión típica Arduino Uno con Sensor Ultrasónico
HC-SR04.
Programación Arduino:
const
int EchoPin = 5;
const
int TriggerPin = 6;
const
int LedPin = 13;
void
setup() {
Serial.begin(9600);
pinMode(LedPin, OUTPUT);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void
loop() {
int cm = ping(TriggerPin, EchoPin);
Serial.print("Distancia: ");
Serial.println(cm);
delay(100);
}
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 a distancia, en cm
return distanceCm;
}