Está en la página 1de 6

hc sr04 con pic en ccs (Medida distancia

por sensor de ultrasonido)








#include <16F877.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)

#include <lcd.c>


int16 distancia, tiempo;
#define trig pin_B1
#define echo pin_B0
#USE standard_io(b)

void main()
{
lcd_init();
printf(LCD_PUTC, "\f Iniciando.");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando..");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando...");
delay_ms(500);

setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);

while(1)
{
output_high(trig);
delay_us(20);
output_low(trig);
while(!input(echo))
{}
set_timer1(0);
while(input(echo))
{}
tiempo=get_timer1();
distancia=(tiempo*10)/(58.0);
printf(LCD_PUTC, "\fTiempo :%Lu \nDistancia = %Lu",tiempo,distancia);
delay_ms(500);
}
}






1. amigo quisiera una ayuda, como haria para que al estar a
una distancia de unos 10 cm me encienda un led o una alerta
algo asi ayudame por fa
Responder
2.
delmides jose Navarro11 de julio de 2013, 14:44
amigo solo coloca debajo de la linea:
distancia=(tiempo*10)/(58.0);
if (distancia== 10cm){
output_high(pin_c0); // enciende el pin c0
}
output_high(pin_c0); // lo apaga si no esta en 10cm, si lo quieres
menor igual a 10cm solo coloca la condicion <= en vez de == .

Espero haber aclarado tu duda

esta con enteros, con decimales es asi: cambiando distancia a variable flotante

#include <16F877.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)

#include


int16 tiempo;
float distancia;
#define trig pin_B1
#define echo pin_B0
#USE standard_io(b)

void main()
{
lcd_init();
printf(LCD_PUTC, "\f Iniciando.");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando..");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando...");
delay_ms(500);

setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);

while(1)
{
output_high(trig);
delay_us(20);
output_low(trig);
while(!input(echo))
{}
set_timer1(0);
while(input(echo))
{}
tiempo=get_timer1();
distancia=(tiempo*10)/(58.0);
printf(LCD_PUTC, "\fTiempo :%Lu \nDistancia = %0.4f",tiempo,distancia);
delay_ms(500);
}
}




hola amigo! que buen proyecto, quiero saber como colocarle un aviso en la lcd
donde a los 3cm me diga cerca y a los 9cm lejos! gracias y espero que me
puedas ayudar
Responder
Respuestas
1.
Emmanuel ramirez2 de octubre de 2013, 22:08
Pasate por aqui amigo tal vez te pueda ayudar

http://campos-inventronica.blogspot.mx/2012/04/como-
usar-sensor-ultrasonico-hc-sr04.html
2.
delmides jose Navarro3 de octubre de 2013, 17:20
amigo solo coloca debajo de la linea:
distancia=(tiempo*10)/(58.0);
if (distancia<= 3cm){
printf(LCD_PUTC, "\f cerca...");
delay_ms(100);
}
if (distancia>= 9cm){
printf(LCD_PUTC, "\f lejos...");
delay_ms(100);
}

También podría gustarte