Autor Tema: .visualizar valor decimal del LCD a número entero (Termometro: pic16f877a)  (Leído 1247 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Buenas estimados

ultimamente me he estado cabeceando para que no muestre el 0.30(como se ve en la foto), mi objetivo es que muestre los 30 con sus respectivos decimales cuando lo conecte en la vida real y en la simulación en proteus via LCD.
estoy usando un lm35 y un pic 16f877a.

aquí va el código:

#include <16F877a.h>
#device adc=10 //Ponemos que se usen 10 bits para A/D
#use delay(clock=4000000) //Frecuencia de reloj de 4MHz
#include <LCD420.c>

void main()
{
   int16 lectura;
   float voltios;
   
 
  /************************Configuración delPIC*****************************/
   
   setup_adc_ports(ALL_ANALOG); //Todos los puertos A como analogicos
   setup_adc(ADC_CLOCK_INTERNAL); //Reloj interno para laconversion ADC
   setup_comparator(NC_NC_NC_NC);
   set_tris_a (0b11111111); //Configuramos todo el puerto A como entrada
   /************************************************************************/

  lcd_init(); //Inicializamos el display LCD
       
       
   while(true)
      {
         set_adc_channel(0);              //PIN_A0 como canal analogico
         delay_us(20);
         lectura=read_adc();              //Leemos el nivel del PIN
     
         voltios=5.0*lectura/1024.0;      //
                  //10mV/1K -273= ºC
         printf(lcd_putc,"\f");           //Limpiamos la LCD
         delay_ms(1);
       
         printf(lcd_putc,"Temperatura ");
         printf(lcd_putc,"\n %1.2f C", voltios);
         delay_ms(500);
       
       
 
      }
}


espero su ayuda, por favor.


* todopicduda.png
(116.52 kB, 1366x728 - visto 306 veces)


saludos cordiales

Daniel Villavicencio

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:.visualizar valor decimal del LCD a número entero (Termometro: pic16f877a)
« Respuesta #1 en: 19 de Noviembre de 2015, 02:20:00 »
Salida del LM: 0 mV + 10.0 mV/°C

Es decir 30ºC son 300mV o 0.3V

Tu formula:

 voltios=5.0*lectura/1024.0; 

Solo calcula la tension en el pin de entrada analogica, es decir te calcula que hay 0.3V y eso es lo que ves. Multiplicalo por 100 y vas a tener tu temperatura

 voltios=500.0*lectura/1024.0; 

o

 voltios=125.0*lectura/256.0; 

Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Re:.visualizar valor decimal del LCD a número entero (Termometro: pic16f877a)
« Respuesta #2 en: 19 de Noviembre de 2015, 11:32:22 »
Muchas Gracias!, te pasaste!  :o


 

anything