About Author

Ultrasonido HC-SR04 (uC: ATmega16)

Un sensor ultrasonido puede ser usado para medir distancias a objetos o detectarlos, el principio de funcionamiento es muy sencillo.

 

Un pequeño pulso ultrasónico es transmitido a los cero segundos, reflejado en un objeto, el sensor recibe esta señal y la convierte en una señal eléctrica. El siguiente pulso puede ser transmitido cuando cuando el eco se desvanece. Este periodo es llamado periodo de ciclo. La recomendación es que el periodo de ciclo no sea mas de 50ms.

Si un pulso de 10us de ancho es enviado al pin trigger, el ultrasonido enviará ocho señales de 40KHz y detectará el eco. La medida de la distancia es proporcional al ancho de pulso del eco que puede ser calculado por fórmula. Si ningún obstáculo es detectado, el pulso que se generará será de 38ms.


Ejemplo:
Configurar un ultrasonido para que mida distancias en centímetros.


 

El ultrasonido está siendo simulado por una señal a una frecuencia determinada.
 
Pseudocódigo:
- Configuramos el ICP1 para capturar con flanco de subida.
- Enviamos un pulso de 10us por el PD7
- Al capturar el flanco de subida iniciamos el contador y configuramos el ICP1 para capturar flancos de bajada.
- Al detectar el flanco de bajada detenemos el contador y configuramos el ICP1 para capturar flancos de subida.


Para saber el valor de TCNT1 las distancias o la frecuencia de prueba, adjunto un archivo en excel que nos ayudará a calcular estos valores.

Descargas:
Datasheet ATmega16A
Datasheet HD44780
Lib-LCD
Datasheet HC-SR04
Cálculos
Ejemplo