Esta librería sirve para obtener información del sensor ultrasónico HCSR04.
Definición de pines
El primer paso es definir los pines donde estará conectado el sensor en nuestra tarjeta, para ello tendremos que editar el archivo HCSR04.h
ECHO: Pin Eco del sensor ultrasónico
TRIGGER: Pin Trigger del sensor ultrasónico
Definición de constantes
Es importante definir el valor de la frecuencia del oscilador, ya que este valor se utilizará para realizar el cálculo de la distancia.
int32 fosc: Definir la frecuencia del oscilador que se estará utilizando.
Funciones
Las funciones definidas en la librería son las siguientes:
Inicialización
void HCSR04_init()
Esta función sirve para iniciarlizar el timer1, el cual se utilizará para calcular la distancia de los objetos.
Parámetros de entrada:
- Sin parámetros de entrada
Parámetros de salida:
- Sin parámetros de salida
Obtener distancia
float HCSR04_getDistance()
Con esta función obtendremos la distancia del objeto más cercano al sensor ultrasónico en centímetros.
Parámetros de entrada:
- Sin parámetros de entrada
Parámetros de salida:
- float: El valor de la distancia a la que se encuentra el objeto (en centímetros).
Código de ejemplo
#include <18f4550.h> #Fuses HSPLL, NOWDT, NOPROTECT, NOLVP, NODEBUG, USBDIV, PLL2, CPUDIV1, VREGEN #use delay (clock=48M) //Seleccionamos la frecuencia de reloj de 48MHz #include <MLCD.c> #include "HCSR04.c" #use standard_io(B) //PRECONFIGURACIÓN DEL PUERTO B void main(void){ float distance=0; //Variable para almacenar la distancia HCSR04_init(); //Inicializa el sensor (timer1) lcd_init(); //Inicializa la LCD printf(lcd_putc,"\fSensor Ultra"); //Escribe en la LCD while(true){ //Bucle infinito distance = HCSR04_getDistance(); //Obtiene la distancia y la almacena lcd_gotoxy(1,2); //Cursor en la posicion columna 1 fila 2 printf(lcd_putc,"\nDist: %1.2f cm", distance); //Imprime la distancia delay_ms(200); //Espera 200 milisegundos } }