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.
- 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.
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.
Donaciones:
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:
- Cytron Technologies, "Product User’s Manual – HC-SR04 Ultrasonic Sensor", https://docs.google.com/document/d/1Y-yZnNhMYy7rwhAgyL_pfa39RsB-x2qR4vP8saG73rE
- MrChunckuee, "MPLAB X & XC8: LibrerÃa para pantalla LCD 16x2", https://mrchunckuee.blogspot.com/2017/02/mplabx-y-xc8-005.html
0 Comentarios