Sensores Ultrasónicos

Un transductor ultrasónico es un detector de proximidad, capaz de calcular la distancia a la que se encuentran los objetos que lo rodean. Dependiendo del modelo de sensor utilizado, las distancias que mide pueden ir desde pocos centímetros hasta varios metros. El transductor emite un ultrasonido, es decir, una onda acústica con frecuencia por encima del límite perceptible del ser humano (20 KHz), que rebotará sobre el objeto más cercano en esa dirección. Estos transductores sólo trabajan en el aire, y pueden detectar objetos con diferentes formas, colores, superficies y materiales.
Funcionamiento:
El funcionamiento básico de los transductores de ultrasonidos para la medición de distancia se muestra en el siguiente esquema, donde se tiene un receptor que emite un pulso de ultrasonido que rebota sobre un determinado objeto y la reflexión de ese pulso es detectada por un receptor de ultrasonidos, tal como se muestra en la figura.
El transmisor genera ráfagas de impulsos de una frecuencia y duración concretas, y al detectar la onda reflejada se genera una interrupción la cual detiene un timer.
Midiendo el tiempo que el eco tarda en regresar desde que se emitió el pulso, puede saberse a que distancia estaba el objeto que produce la reflexión de la onda.
La siguiente fórmula calcula la distancia según el tiempo de recepción del eco en el transductor ultrasónico.
Donde V es la velocidad del sonido en el aire, (unos 340 m/s) y t es el tiempo transcurrido entre la emisión y recepción del pulso medido en segundos.
Cosas a tener en cuenta:
Los transductores ultrasónicos presentan una zona ciega, que depende de la frecuencia del transductor. Los objetos ubicados dentro de la zona ciega no se pueden detectar de manera fiable. Aun sin estar un objeto dentro de la zona ciega, y aunque el funcionamiento de estos transductores es sencillo, hay que saber que las mediciones pueden ser erróneas en ciertas circunstancias puesto que las ondas de ultrasonido obedecen a las leyes de reflexión de las ondas, por lo que tienen el mismo ángulo de incidencia y reflexión respecto a la normal a la superficie. Esto puede generar diversos errores:
- Si la orientación relativa de la superficie reflectora con respecto al eje del transductor es mayor que un cierto umbral, este nunca recibirá el pulso de sonido que emitió.
Otro factor de error muy común es el conocido como falsos ecos. Estos falsos ecos se pueden producir por razones diferentes:
- Puede darse el caso en que la onda emitida por el transductor se refleje varias veces en diversas superficies antes de que vuelva a incidir en el transductor (si es que incide). Este fenómeno, conocido como reflexiones múltiples, implica que la lectura del transductor evidencia la presencia de un obstáculo a una distancia proporcional al tiempo transcurrido en el viaje de la onda; es decir, una distancia mucho mayor que a la que está en realidad el obstáculo más cercano, que pudo producir la primera reflexión de la onda.
- Otra fuente más común de falsos ecos, se produce cuando se emplean varios transductores ultrasónicos simultáneamente. En este caso ocurre con frecuencia que un transductor emita un pulso y este es recibido por otro transductor que estuviese esperando el eco del pulso que él había enviado con anterioridad.
Transductores ultrasónicos de la familia SRFXX
Como transductores ultrasónicos se han utilizado el srf08 y el sfr10:
SRF08:
SRF10:
Ambos transductores son de la misma familia, SRF, con un alcance que va desde los 3cm hasta los 6m. Otra de las ventajas que presentan es que es muy fácil comunicarse con ellos mediante I2C, pudiendo conectarse varios de ellos al mismo bus.
Tienen una alimentación de 5V, y un consumo de 15 mA en funcionamiento, viéndose reducido hasta los 3mA en reposo.
Margen de detección:
Sus dimensiones son 43 x 20 x 17 mm para el SRF08 y de 32 x 15 x 10 mm para el SRF10
Otra de las diferencias entre ambos transductores es que el SRF08 presenta un transductor de luz que no presenta el SRF10, por lo que depende de las necesidades del proyecto en el que estemos trabajando puede sernos de utilidad o no.
Conexión del transductor:
Ambos transductores poseen 5 pines. Uno de ellos no se conecta, mientras que del resto, dos de ellos son de alimentación (Vcc, y GND), y los otros dos son los de la comunicación I2C (el de datos (SDA) y el del reloj (SCL)).
Funcionamiento de los transductores ultrasónicos de la familia SRFXX:
Cada uno de los transductores posee un microcontrolador en la placa, en este caso un pic16F, con el que establecer la comunicación I2C, así como 4 registros:
Ubicación | Lectura | Escritura |
---|---|---|
0 | Revisión de software | Registro de comando |
1 | Sin uso (lee 0x80) en el SRF10, y registro de luminosidad en el SRF08 | Registro de ganancia máxima (por defecto 16) |
2 | Byte alto del valor medido | Registro de alcance de distancia (por defecto 255) |
3 | Byte bajo del valor medido | No disponible |
Para iniciar la primera medida existen distintos comandos a utilizar, según las unidades en las que se quiera que el transductor devuelva la medida. (En hexadecimal los comandos a utilizar son los siguientes)
- 0x50: Calculo de la distancia, con resultado en pulgadas
- 0x51: Calculo de la distancia, con resultado en centímetros
- 0x52: Calculo de la distancia, con resultado en microsegundos
Se escribe el comando decidido en el registro 0, y tras unos 65 us, es posible leer el valor de vuelta en las unidades correspondientes.
Otro modo de saber cuándo el dato de vuelta está listo, es hacer lecturas continuadas al registro 0, puesto que mientras el valor leído, sea 0xFF, significa que está realizándose la medida y aún no ha terminado.
Si te ha interesado esta entrada, puedes ver aquí para que hemos utilizado estos sensores.