You are on page 1of 1

// no es autoria mia, solo estoy difundiendo la palabra.

//********************************************************************
// Cabecera del programa, depende del pic que uses
//********************************************************************
//********************************************************************
// Funcion de mide distancia de sensor ultrasonico
#define trig pin_c6
#define echo input(pin_c7)
int16 mide_distancia(void){
int16 centimetros=0;
//pulso de disparo:
output_high(trig);
delay_us(50);
output_low(trig);
//espera flanco de subida por el pin echo
while(echo==0);
//comienza a contar centimetros hasta que pin echo sea cero
while(echo==1){
centimetros++;
delay_us(58);
}
//demora de seguridad y retorna con el valor de centimetros contados
delay_ms(50);
return(centimetros);
}
//********************************************************************
//********************************************************************
// Funcion principal del programavoid main( void ){
int16 distancia;
int8 i;
lcd_init(); // inicializa lcd
while (true){ // lazo infinito
distancia=mide_distancia(); // AQUI USAMOS NUESTRA PODEROSA FUNCION!!!
lcd_gotoxy(1,1);
if(distancia>500){ // si lectura > 500cm entonces no es valida, osea no hay obje
to
lcd_putc('\f'); // Borra LCD
printf(lcd_putc,"NO DETECTED!");
output_low(pin_c0);
}
else{ // si distancia fue < 500cm es una distancia valida y la imprime en LCD
printf(lcd_putc,"%03lucm ",distancia);
output_high(pin_c0);
}
}// cierra lazo infinito
}// cierra main
//********************************************************************
************************************************************

You might also like