Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
.....es muy basica mi pregunta: el lm35 capta por aproximacion verdad?
Pensando que el lm35 mide hasta 150 C, entregando 1500mv decidi poner en el ADC la tension Vref+ a 1,5V, pensando que de esta forma iva a mejorar la precicion, agraeceria que me confirmara si esto es correcto.
Luego para hacer el calculo lo que hice: ValorADC=ValorADC/((0.01*1024)/1.5)
Es esto correcto?
El problema surge que cuando pongo por ejemplo en el simulador, 56 C el display me muestra 56.2.
void temperatura(void)
{
float ValueADC;
float temp[5];
float temprom;
char tempres[10];
adc_init(); //Inicializacion de ADC
lcd_puts("Temperatura:");
lcd_goto(64);
lcd_puts("Obteniendo Datos");
DelayBigMs(500);
for(char i=0; i<5; i++)
{
//procesando();
ADRESH=0b00000000;// no se si sera necesaro hacer esto pero por las dudas
ADRESL=0b00000000;
GODONE = 1; // Inicia conversión
while(GODONE); // Espera a fin de converción
ValueADC = 0;
ValueADC = (ADRESH<<8)+ADRESL; // Reune el valor en una varible
ValueADC = ValueADC/((0.01*1024)/2.048);
temp[i]= ValueADC; //se obtienen 5 muestras oara mejor precicion, luego se saca el promedio
}
temprom = (temp[0] + temp[1] + temp[2] + temp[3] + temp[4])/5;
sprintf(tempres,"%4.1f", ValueADC);
lcd_goto(64);
lcd_puts(" ");
lcd_goto(64);
lcd_puts(tempres);lcd_puts(" C");
DelayBigMs(450);
lcd_clear();
ADON=0;//apago el modulo ADC
void temperatura(void)
{
float ValueADC;
float temp[5];
float temprom;
char tempres[10];
adc_init(); //Inicializacion de ADC
lcd_puts("Temperatura:");
lcd_goto(64);
lcd_puts("Obteniendo Datos");
DelayBigMs(500);
for(char i=0; i<5; i++)
{
//procesando();
GODONE = 1; // Inicia conversión
while(GODONE); // Espera a fin de conversión
ValueADC = (ADRESH<<8)+ADRESL; // Reune el valor en una varible
ValueADC = ValueADC*2 // solo se multiplica por el Vpaso
temp[i]= ValueADC; //se obtienen 5 muestras oara mejor precicion, luego se saca el promedio
}
temprom = (temp[0] + temp[1] + temp[2] + temp[3] + temp[4])/5;
sprintf(tempres,"%4.1f", temprom);
lcd_goto(64);
lcd_puts(" ");
lcd_goto(64);
lcd_puts(tempres);lcd_puts(" C");
DelayBigMs(450);
lcd_clear();
ADON=0;//apago el modulo ADC