Wenas peña, haber si me podeis ayudar, resulta que quiero hacer un sensor de CO2, y necesito usar este convertidor, el programa es calcado a un termometro, pero en este caso un sensor de CO2 y no uno de temperatura.
Pues la cuestion es haber si me podeis poner un ejemplo de programa en C para visualizar en un LCD la temperatura recibida por un lm35(ya os digo k es calcado al k necesito).
Os puedo comentar que he hexo este programa
#include  <16F876.h>
#use delay(clock=4000000, RESTART_WDT)
#include  <lcd2.c>
int Medir_Temperatura(int porta);
void Visualizar_Temp(temp);
main()
{
int temp;
lcd_init();
setup_adc_ports(RA0_RA1_ANALOG_RA3_REF); //configura RA0 RA1 como entrada
//analogicas y RA3 la Vref
//si utiliza 8 bits el ADC seria el calculo 256/vref*Valor del conversor
while(1){
temp=Medir_Temperatura(0);
Visualizar_Temp(temp);
/*temp=Medir_Temperatura(1);
Visualizar_Temp_xy(8,2,temp);*/
delay_ms(250);
}
}
int Medir_Temperatura(int)
{
int temp;
setup_adc(adc_clock_internal);
set_adc_channel(0); //configura el adc para que se centre en la patilla
//de A que le indiquemos (0=A0 1=A1...)
delay_us(20);
temp = read_adc();
setup_adc(adc_off);
return temp;
}
void Visualizar_temp(temp)
{
printf (lcd_putc,"%u", temp);
}
y otro que tengo orientado pero que era un voltimetro digital es este
#include <16F876.h>
#device adc=10      // Conversión con 10 bits
//#device adc=8      // Conversión con 8 bits      
               // Si no se pone ningún device toma 8 bits
#fuses XT, NOPROTECT, NOPUT, NOWDT, NOBROWNOUT, NOLVP, NOCPD, WRT
#use delay (clock=4000000)  
#include <LCD2.c>
void main( void )
{
  float  valor;    
//  float const resoluc= 5.0/256.0;      // Conversión es con 8 bits
//  float const resoluc= 5.0/1024.0;      // Conversión es con 10 bits   
  float voltios;
  setup_adc_ports ( ALL_ANALOG );        // Entrada analógica por RA0
  setup_adc ( ADC_CLOCK_INTERNAL );    // Reloj interno para el ADC 
  set_adc_channel ( 0 );             // Canal 0 para convertir 
  lcd_init();  
  while ( 1 )                     
  {
      valor = read_adc();                    
      lcd_gotoxy(1,1);           
      voltios= valor/* * resoluc*/;                                  
      printf ( lcd_putc, "%1.2f voltios ", voltios );      
      delay_ms(200);            // Convierte cada 200ms--*
  }
}