Autor Tema: Lm35 sólo marca el máximo 16f877a (ayuda!)  (Leído 2532 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Lm35 sólo marca el máximo 16f877a (ayuda!)
« en: 20 de Noviembre de 2015, 20:55:25 »
Buenas tardes estimados

quiero hacer un termómetro digital con lm35, pero no me marca la temperatura del entorno sus 24v a 27v, siempre me marca el máximo los 5V, 500º,50º y 0.05º cada ves que lo pruebo fisicamente , simulado en proteus va perfecto pero en la parte practica no me funciona :(, no logro hacer que marque la temperatura real del ambiente.

aquí dejo el código:

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

void main()
{
   int16 lectura;
   float voltios;
 
 
 
 
   setup_adc_ports(ALL_ANALOG); //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=500.0*lectura/1024.0;     //
     
         printf(lcd_putc,"\f");           //Limpiamos la LCD
         delay_ms(1);
       
         printf(lcd_putc,"Temperatura ");
         printf(lcd_putc,"\n %01.2f C",voltios );
         delay_ms(200);
       
       

      }
}


a veces pienso que no toma en cuenta el lm35, es una posibilidad.

ruego su ayuda

saludos cordiales

Daniel Villavicencio



* FINAL.png
(146.38 kB, 222x464 - visto 367 veces)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #1 en: 20 de Noviembre de 2015, 21:10:37 »
Citar
quiero hacer un termómetro digital con lm35, pero no me marca la temperatura del entorno sus 24v a 27v,

24 a 27v ?????? , el PIC solo aguanta 5V.. Como no se entendio mucho lo que tenes. Podrias poner un esquema electrico de lo que tenes armado ?

Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #2 en: 20 de Noviembre de 2015, 22:42:13 »
Citar
quiero hacer un termómetro digital con lm35, pero no me marca la temperatura del entorno sus 24v a 27v,

24 a 27v ?????? , el PIC solo aguanta 5V.. Como no se entendio mucho lo que tenes. Podrias poner un esquema electrico de lo que tenes armado ?


mil disculpas quise decir 24º a 27º es que estoy muy nervioso :(, en la parte física conecté el cristal de 20Mhz y el master clear,

aquí va el conexionado, si te fijas simulado va de maravilla, pero en práctica me arroja los "5v", me arroja 500º, 50º, 5º, 0,05º (he ido jugando con las formulas "Voltios= 5.0*lectura/1024)pero en la parte práctica no varían los valores de la LCD, ni tampoco marca la temperatura ambiente que son 24º a 27º :(



* pic.png
(34.04 kB, 1044x589 - visto 353 veces)

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #3 en: 20 de Noviembre de 2015, 23:53:42 »
digamos que no tan bien la simulacion, ya que tenes 8º y tenes 8.30º del otro lado...

Deberias poder medir lo que sale del LM35 con un multimetro y fijarte si es el valor de tension correcto.
(Como para ir eliminando problemas)

Si eso esta bien.
Luego cambiale el mensaje en el LCD que te muestre el valor de:

voltios y lectura

Para determinar si el calculo es correcto, ( pone lectura donde dice temperatura )
« Última modificación: 21 de Noviembre de 2015, 00:21:14 por KILLERJC »

Desconectado AG1

  • PIC16
  • ***
  • Mensajes: 105
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #4 en: 21 de Noviembre de 2015, 00:34:04 »
Sustituye el LM35 por una pila de 1,5V. La pantalla te indicará alrededor de 307ºC

Saludos.

Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #5 en: 21 de Noviembre de 2015, 15:29:05 »
digamos que no tan bien la simulacion, ya que tenes 8º y tenes 8.30º del otro lado...

Deberias poder medir lo que sale del LM35 con un multimetro y fijarte si es el valor de tension correcto.
(Como para ir eliminando problemas)

Si eso esta bien.
Luego cambiale el mensaje en el LCD que te muestre el valor de:

voltios y lectura

Para determinar si el calculo es correcto, ( pone lectura donde dice temperatura )

al parecer no tengo los conocimientos suficientes, me costó un poco hacer que mostrara el valor ADC, pero lo logré, dejo el código primero y después una foto de simulación en proteus.

aquí va el código:

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

void main()
{
   int16 lectura;
   float voltios;
 
 
 
 
   setup_adc_ports(ALL_ANALOG); //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;    //
     
         printf(lcd_putc,"\f");           //Limpiamos la LCD
         delay_ms(1);
         
      lcd_gotoxy(1,1);
      printf(lcd_putc,"ADC READ = %ld",lectura);
      lcd_gotoxy(1,2);
         
       
         printf(lcd_putc,"\n %01.2f C",voltios );
         delay_ms(200);
       
       

      }
}



lo he echo en proteus y quedó así; el cálculo está bien 5.0 * 23 / 1024.0 = 0.1123

simulado va perfect pero en practica... no me rendiré, algo está pasando :o


* PICF.png
(24.11 kB, 836x587 - visto 345 veces)




Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #6 en: 21 de Noviembre de 2015, 17:02:08 »
Sustituye el LM35 por una pila de 1,5V. La pantalla te indicará alrededor de 307ºC

Saludos.

te lo agradesco mucho, lo probaré! :o

Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #7 en: 22 de Noviembre de 2015, 15:52:21 »
Chiquillos, saqué una foto en práctico y me lee 1024 en ADC y da 4.9v a la salida, incluso medí con el tester y el lm35 da 5v también :o. estoy conectando el lm35 directo porciacaso al pic16f877a, no se me ocurre cómo solucionarlo, me echan una mano?

aquí una foto:


* pregunta1.png
(195.48 kB, 277x355 - visto 336 veces)


Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #8 en: 22 de Noviembre de 2015, 15:59:39 »
El lm35 deberia dar como máximo 1.5v, has probado como dice el compañero a mirar la tension de salida con un multimetro?? Puede que sea problema de hardware y no software

Desconectado daniel_908

  • PIC10
  • *
  • Mensajes: 11
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #9 en: 22 de Noviembre de 2015, 16:25:48 »
El lm35 deberia dar como máximo 1.5v, has probado como dice el compañero a mirar la tension de salida con un multimetro?? Puede que sea problema de hardware y no software

puede que sea problema de hardware, por que simulado va perfecto,medi con el multimetro y da los 5v, conoces una forma de acondicionar la señal del lm35?, por que tampoco varía la temperatura :(

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Lm35 sólo marca el máximo 16f877a (ayuda!)
« Respuesta #10 en: 22 de Noviembre de 2015, 16:33:00 »
mas que acondicionar algo lo destruyo, o esta funcinando mal ese LM35. O esta mal conectado.. Algun problema hay, y no es el micro sino solo el LM35