PIC18F4620 & XC8: Uso del sensor ultrasonico HC-SR04


Siguiendo con los ejemplos de código en XC8 toca el turno de usar el sensor ultrasonico HC-SR04, usare el proceso descrito en el datasheet para leer la distancia en centímetros y el valor lo mostrare en una pantalla LCD16x2, sera un ejemplo básico para leer un solo sensor, si se desea usar mas sensores probablemente en un futuro haga otra entrada hablando al respecto.

Para hacer una lectura de distancia con el HC-SR04 seguiremos los siguientes pasos:
  • Enviar un pulso de 10us por el pin TRIG para indicarle al sensor que iniciara la lectura.
  • El sensor enviara una trama de 8 pulsos y colocara su salida ECHO en alto, aquí es donde detectaremos este cambio e iniciaremos un conteo de tiempo.
  • Este pin ECHO estará en alto hasta recibir el eco reflejado por el obstáculo, después se pondrá en estado bajo y se termina de contar el tiempo.
 La distancia es proporcional a la duración del pulso y puedes calcularla con las siguientes formulas:
  • Distancia en CM = tiempo medido en us / 58
  • Distancia en PULGADAS = tiempo medido en us / 148
  • Si el tiempo medido es mayor a 30ms entonces se asume que no hay obstáculo. 
Después de un pequeño repaso de teoría seguimos con el circuito de conexión y el código que hace posible esto.

Circuito:
El circuito no es nada complejo, usaremos la LCD a 4bits así que todos los pines estarán conectados al PORTB de nuestro MCU similar a como se conecto en la publicación donde se hablo este tema, ahora bien los pines del HC-SR04 los conectaremos al PORTD, como se muestra en el siguiente esquemático.

Código:
En el código se tiene la función unsigned int HCSR04_GetDistance(void) que es la encargada de devolver la distancia en centímetros, simplemente ponemos en alto Trigger 10uS y esperamos a que Echo cambien, mientras hacemos el conteo, el retardo __delay_us(58) es lo que le tarda en viajar los ultrasonicos dos centímetros (uno de ida y uno de vuelta), el código mide centímetros completos, en caso de necesitar mas precisión es cuestión de mejorar la rutina pero eso ya es otro tema.

Resultados:
Acá un par de fotos con algunas mediciones.

Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.


Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Bibliografía:

Publicar un comentario

0 Comentarios