Autor Tema: Lectura LM35  (Leído 2176 veces)

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

Desconectado PabloFiscella

  • PIC16
  • ***
  • Mensajes: 154
Lectura LM35
« en: 01 de Diciembre de 2003, 13:32:00 »
Hola a todos:

Estoy tratando de hacer un termometro y no me doy cuenta como podria resolverlo.
Supuestamente el LM35 devuelve 0.010v por cada grado centigrado.
Ejemplo 0.257v serian 25.7grados
El problema es que no se me ocurre como desglosar el numero para mostrar en los tres display.
Abajo muestro el codigo que escribi en donde falta poner la variable value supuestamente multiplicado * 100 en los displays.

Espero puedan darme una idea.
Saludos.
Pablo

#include <16F874.h>
#device ADC=8  //8 bits

byte CONST Display1[] = {0b00010000,0b00010001,0b00010010,0b00010011,0b00010100,0b00010101,0b00010110,0b00010111,0b00011000,0b00011001};
byte CONST Display2[] = {0b10100000,0b10100001,0b10100010,0b10100011,0b10100100,0b10100101,0b10100110,0b10100111,0b10101000,0b10101001};
byte CONST Display3[] = {0b01000000,0b01000001,0b01000010,0b01000011,0b01000100,0b01000101,0b01000110,0b01000111,0b01001000,0b01001001};

#use delay(clock=4000000)
#fuses  XT,NOWDT,NOPUT


void main(void) {
   float value;

   set_tris_a(0xFF);
   set_tris_b(0x0);

   set_timer0(0);
   setup_counters( RTCC_INTERNAL, RTCC_DIV_256);
   enable_interrupts(INT_RTCC);
   enable_interrupts(GLOBAL);

   setup_adc_ports( ALL_ANALOG );
   setup_adc(ADC_CLOCK_INTERNAL );
   set_adc_channel(0);
   for(; {
      value = read_adc();
     
      output_b(Display1[2]);
      delay_ms(3);
      output_b(Display2[7]);
      delay_ms(3);
      output_b(Display3[5]);
      delay_ms(3);
   }
}


 

anything