tengo problemas para poder leer la distancia con un sensor sfr10 con un pic16f877, ya programe el microcontrolador con un ejemplo del sfr08 que se supone trabaja perfectamente, pero a mi me muestra solo hasta aproximadamente 20cm, que estara pasando¿
este es mi programa:
#include <16F877A.h>
#fuses PUT,HS,NOWDT,NOLVP,NOPROTECT
#use delay( clock = 12000000 )
#use fast_io(C)
#use i2c( master , scl = PIN_C3 , sda = PIN_C4 )
#include <lcd.c>
void main()
{
int16 distancia;
char distancia_L, distancia_H, Luz;
int16 range[17];
int i;
lcd_init();
set_tris_c( 0x00 );
output_float( PIN_C3 );
output_float( PIN_C4 );
while (1)
{
i2c_start();
i2c_write( 0xE0 );
i2c_write( 0x00 );
i2c_write( 0x51 );
i2c_stop();
delay_ms( 100 );
i2c_start();
i2c_write( 0xE0 );
i2c_write( 0x02 ); //alcance
i2c_stop();
i2c_start();
i2c_write( 0xE1 );
distancia_H = i2c_read( 1 );
distancia_L = i2c_read(0);
i2c_stop();
distancia = make16( distancia_L , distancia_H );
printf( lcd_putc , " %lu cm" , distancia );
}
}