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 |
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.
- Enviar un Pulso "1" de al menos de 10uS por el Pin Trigger (Disparador).
- 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.
- 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.
- Se recomienda dar un tiempo de aproximadamente 50ms de espera después de terminar la cuenta.
- La distancia es proporcional a la duración del pulso y puedes calcularla con las siguiente formula (Utilizando la velocidad del sonido = 340m/s):
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
Pablo_zone
16 May 2018 12:27