E sensor es el HC SR04, ya que es barato y muy fácil de usar.
El sensor ultrasónico es un sistema
que tiene 4 patitas en su sistema. Tierra, Voltaje TTL, Trigger y Ecco.
Trigger es un pin de entrada de datos
que manda a trabajar al sensor. Este recibe una señan de 10 uS para que el
sensor ultrasónico pueda enviar un pulso de 8 bits a 40 KHz.
Ecco es un pin de salida de datos, que
emite un pulso en alto de “N” tiempo, el cual equivale al factor de distancia
que puede ser dividido entre 58 para obtener su distancia en Centímetros, o
entre 148 para obtenerla en Pulgadas.
Este sistema se puede sensar de varias
maneras, primero con una espera hasta que exista un flanco de subida en un pin
de entrada de datos y luego poner en marcha el timer 1 del pic, o simplemente
aproximándonos con un while y una variable que sume +1 o ++ cada tiempo
determinado (58 o 148).
El sistema del pic se hizo de la
siguiente manera:
#include <16f877a.h>
#fuses HS, NOWDT
#use delay(clock=8000000)
#include <lcd.c> //incluye
librería del LCD
#define use_portd_lcd TRUE //Configuración puerto D control
lcd
int16 a=0;
void main()
{
set_tris_b(0XF0);
lcd_init(); //Se inicia el LCD
output_low(pin_b0);
while(true)
{
output_high(pin_b0);
delay_us(15);
output_low(pin_b0);
while(!input(pin_b7))
{
}
a=0;
while(input(pin_b7))
{
a=a+1;
delay_us(58);
}
if(a>200)
{
a=200;
}
delay_ms(30);
printf(lcd_putc,"\fDistancia=%lu
cm", a);
delay_ms(30);
}
}
Como se puede observar, se dejó una
protección de 2 metros, ya que si no existía nada enfrente del sistema, daba valores muy altos que no tenía caso censar. Cabe aclarar que este sensor puede sensar
hasta 4 metros con ángulo y precisión determinadas de 15° y 3cm respectivamente.
Diagrama
esquemático de conecciónes.
Display
funcionando
Sensor
midiendo
No hay comentarios:
Publicar un comentario