Librería HCSR04 – Miuva

Descargar librería en español

Descargar librería en inglés

 

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
   }  
}

 

Menú