Medir radiacion termica con LM35

Hola a todos

Le comento que hice un termometro con un pic un LCD y el LM35, me funciona muy bien cuando le acerco fuego a sensor (con un ecendedor) incluso ya hice mi pcb; otro dato es que el sensor esta fuera de de la pcb con un cable de 50cm. Mi objetivo es medir cuerpos calientes (acero, Tº max es 130º)

* El problema esta que cuando quiero sensar la Tº del acero no veo los valores correctos en el LCD es decir el acero esta en 80º el LCD esta en 72º aprox. cuando el acero esta en 120º el LCD esta en 105º aprox.
* He revisado el programa varias veces y me parece que esta bien, lei el datasheet del sensor (pag 6) dice algo sobre la Tº del aire y la Tº de la superfice del sensor k debe estar bien protegido con en epoxico.
Haber si alguien por ahi tiene experiencia con el LM35 y lo ha usado para medir cuerpos calientes.
Nota: para k el sensor se sujete con el acero caliente le he condicionado un iman en forma de anillo por donde pasa la cabeza del LM35 - T92.
Gracias y saludos.
 
Tiene buen contacto? ya que calentarlo con fuego hace que el calor lo rodee uniformemente, pero medir un cuerpo sólido se complica, me pasa cuando quiero medir una celda Peltier, necesito ponerle pasta térmica o agua si lo permite la temperatura
 
Todo cuerpo requiere un tiempo para calentarse... asi que el sensor debe estar varios segundos (o minutos) en contacto con el material para llegar a la temperatura que quieres medir... especialmente si la masa es grande... y para este caso el iman tambien cuenta como masa ya que actua como discipador de calor que enfria el sensor....

Te recomiendo que postees una fotografia de tu sistema para poder ayudarte un poco mas... y tambien que busques un LM35 en encapsulado metalico y vayas pensando medio alternativos para poder fijarlo al acero por si las dudas....
 
Gracias por responder,

Aqui les envio algunas fotos de como esta montado el sensor Lm35 T92 como podran observar tiene un iman que sirve para que se adhiera al acero para medir su Tº, se puede notar que el sensor esta al ras del iman osea en contacto con el acero.
Espero sus comentarios gracias, saludos.
 

Adjuntos

  • Fotos.rar
    203.2 KB · Visitas: 84
Como supuse... es demasiada masa y el iman debe estar actuando como disipador.... cuanto tiempo pasa entre que pones el sensor y realizas la medicion?
 
Gracias por sus comentarios,

Buena obs Chico ahora mismo modifico el sensor. Le voy a poner un mas pequeño y mas potente (neodimio).
En cuanto al sensor se k tiene un lado plano ¿que de cierto hay de k por ahi debe ser el contacto con la superficie?, como vieron el la foto en mi caso no es asi.

Les envio una imagen del sistema para que tengan una idea de que se trata.

Nota: buscar el iman y acondicionarlo me va tomar tiempo le spido un max. de dos dias y les comento como me fue.
Sl2.

Zorry, aqui les adjunto la imagen ( se llama dilatador de rodamientos ).

El tiempo que pasa es inmediato es decir primero pongo el sensor y luego activo el sistema (presiono el boton verde de la foto anterior).
Tambien se puede modificar por software pero creo que el problema esta en acondicionar el sensor.
Sl2.
 

Adjuntos

  • Dilatador.JPG
    Dilatador.JPG
    30.9 KB · Visitas: 31
Última edición:
Buena obs Chico ahora mismo modifico el sensor. Le voy a poner un mas pequeño y mas potente (neodimio).

Realiza pruebas parea ver cual es mejor.. aveces conviene mas tener uno mas grande con menor conductividad termica...

El tiempo que pasa es inmediato es decir primero pongo el sensor y luego activo el sistema (presiono el boton verde de la foto anterior).

Tambien tienes que darle un tiempo de "calentamiento" al sensor... los procesos termicos siempre son lentos.... toman de varios segundos a varias horas
 
Hola a todos,

Hice los cambios que les comente antes.
El iman de neodimio se desmagnetizo a una Tº aprox. de 60º C asi que lo descarte porque mi sistema debe sensar hasta una Tº max. de 130ºC.
Asi que le puse un iman natural (como el que esta en la foto anterior) la diferencia esta en que esta vez solo le puse un iman (en la foto anterior le puse tres imanes), pero perdi intensidad magnetica se adhiere al acero con las justas, es importante que se adhiera al acero sino no puedo continuar. Seguire probando.

Pregunta: ¿el encapsulado metalico es mejor en conductividad, que ventajas tendria?
Adjunto esquema del circuito.
Gracisas y sl2.

* U9 -- LM35
* U8 -- LM336

Nota: disculpen la demora
 

Adjuntos

  • Circuito de Control.pdf
    13.8 KB · Visitas: 35
¿La temperatura se estará midiendo constantemente? Me refiero a que si el sensor estará siempre haciendo contacto con el rodaje. Si no es así, porque no utilizar una abrazadera para montar el sensor a la parte del acero a medir, al ser la abrazadera metálica facilitará la transmisión del calor hacia el sensor de una forma más rápida (y si usas el encapsulado metálico mejor). Te adjunto la imagen de lo que me refiero. Saludos

Sensor
 
....El iman de neodimio se desmagnetizo a una Tº aprox. de 60º C asi que lo descarte porque mi sistema debe sensar hasta una Tº max. de 130ºC.....

:confused: Extraño :confused:
La temperatura máxima de funcionamiento para imanes de Neodimio es de unos 150ºC y la temperatura Curie de 350ºC, no debió haber ocurrido nada.

Por lo que me parece entender estas haciendo un horno para fijar por dilatación térmica los rodamientos.
 
Última edición:
Gracias a todos,

* Ok debo conseguir el encapsulado metalico del Lm35como sea.
* Buen dato eso de la abrazadera voy a acondicionarlo y luego voy a probar.
* Quizas el iman de neodimio que tenia no era muy bueno, conseguire otro.
* El sistema se llama Dilatador de Rodamientos adjunte una foto el en mensaje #7, ahi se tiene un ckto de control un nucleo (con secundario es de una sola vuelta osea el rodaje) y el sensor.
Seguire probando.
Sl2.
 
Hola a todos

Le comento que hice un termometro con un pic un LCD y el LM35, me funciona muy bien cuando le acerco fuego a sensor (con un ecendedor) incluso ya hice mi pcb; otro dato es que el sensor esta fuera de de la pcb con un cable de 50cm. Mi objetivo es medir cuerpos calientes (acero, Tº max es 130º)

* El problema esta que cuando quiero sensar la Tº del acero no veo los valores correctos en el LCD es decir el acero esta en 80º el LCD esta en 72º aprox. cuando el acero esta en 120º el LCD esta en 105º aprox.
* He revisado el programa varias veces y me parece que esta bien, lei el datasheet del sensor (pag 6) dice algo sobre la Tº del aire y la Tº de la superfice del sensor k debe estar bien protegido con en epoxico.
Haber si alguien por ahi tiene experiencia con el LM35 y lo ha usado para medir cuerpos calientes.
Nota: para k el sensor se sujete con el acero caliente le he condicionado un iman en forma de anillo por donde pasa la cabeza del LM35 - T92.
Gracias y saludos.

Amigo te pregunto algo, con que otro instrumento mides la Temp. del acero? cuando dices que indica 80C y con el LM35 te muestra una lectura de 72C.-.Puedes estar seguro que la temp. mayor sea la correcta?
 
Hola Gudino,

El otro instrumento que uso para comparar la Tº del sensor es un pirometro infrarrojo, no es mio yo debo ir al taller de un amigo para hacer mis pruebas, debo decir que esta viejito a veces me hace dudar, pero creo que esta bien.
Seguire probando, sl2.


Aqui pongo el codigo que estoy utilizando:

*****************************************
Código:
#include <16f876.h>
#fuses   HS,NOWDT,NOPUT
#DEVICE  ADC=8        // bits a usar
#use     delay(clock=20000000)
#use     fast_io(a)
#use     fast_io(c)
#define  LCD_RS   PIN_B1
#define  LCD_RW   PIN_B2
#define  LCD_E    PIN_B3
#define  LCD_DB4  PIN_B4
#define  LCD_DB5  PIN_B5
#define  LCD_DB6  PIN_B6
#define  LCD_DB7  PIN_B7
#include "flex_lcd.c"

/********************************************************************/
/*******************   PROGRAMA PRINCIPAL    ************************/
 void main(){

   int   flag=1, k=0;
   int16 i=0, is=0,j=0,js=0;
   
   set_tris_a(0x0B);    // RA0 y RA1 como entrada   
   set_tris_b(0x00);    // PORTB: salida    
   set_tris_c(0x70);    // RC0, RC7, salida, RC5 entrada  

   setup_adc_ports(AN0_AN1_VSS_VREF );  // RA0 RA1 será analógicos 
   setup_adc(ADC_CLOCK_DIV_32);         // config A/D con reloj interno     
   lcd_init();                          // inicializa LCD

   output_low(PIN_C7);                  // apaga LED  
   output_low(PIN_C0);                  // apaga RELE
   lcd_gotoxy(1,1);                     // escribe en la fila 1 del LCD
   lcd_putc("**** Senati ****"); // mensaje de bienvenida 
   delay_ms(2000);
   lcd_gotoxy(1,1); 
   lcd_putc("                "); // limpia la 1º linea del LCD
       
/********************************************************************/
/*  Bloque de codigo para ingresar la Tº de Ref y enviarla al LCD   */
   while(TRUE){
      
      do{
         set_adc_channel(0);       // usamos el canal 0
         delay_us(20);             // retardo
         i=read_adc();             // valor leido se almacena en i
         j=100*2.5*i/255;      // conversion a voltaje de ref 
         lcd_gotoxy(1,1);          // escribe en le fila 1
         printf(lcd_putc,"Ingresar T:%3ld",j);
         if(input(pin_c5)==0){                 // pulsaron RC5?
           delay_ms(20);                       // si, retardo para rebotes
           if(j<=140.0)                        // Tº max a seleccionar
               flag=0;                         // flag=0 para salir del if
           else{
              for(k=0;k<=2;k++){
                 lcd_gotoxy(1,2);
                 lcd_putc(" ERROR..");     // sale ERROR si Tº de Ref es mayor que 140º
                 delay_ms(700);
                 lcd_gotoxy(1,2);
                 lcd_putc("        ");
                 delay_ms(700);
                  }                     
           }
         }
      } while(flag==1);       

/********************************************************************/
/*****  Bloque de codigo donde se lee la Tº del sensor en js   ******/

      output_high(PIN_C0);         // prende RELE
      output_high(PIN_C7);         // prende LED
      lcd_gotoxy(1,1);
      printf(lcd_putc,"Temp ref : %3ld",j);
      flag=1;
      while(flag==1){
         set_adc_channel(1);          // usamos el canal 1, para el sensor
         delay_us(20);                // retardo
         is=read_adc();               // valor leido se almacena en is
         js=100*2.5*is/255;       // voltaje de ref en 2.5v
         lcd_gotoxy(1,2);
         printf(lcd_putc,"T sensor : %3ld",js);
         if(js>=j){
            flag=0;                              // flag=0 para salir del while
         }          
      }
      flag=1;
      delay_ms(1000);            // retardo para esperar
      output_low(PIN_C0);        // apaga RELE
      output_low(PIN_C7);        // prende LED
      lcd_gotoxy(1,2);           // 
      lcd_putc("                "); // limpia la 2º linea del LCD   
   }   
 }
 
Última edición por un moderador:
Hola Gudino,

El otro instrumento que uso para comparar la Tº del sensor es un pirometro infrarrojo, no es mio yo debo ir al taller de un amigo para hacer mis pruebas, debo decir que esta viejito a veces me hace dudar, pero creo que esta bien.
Seguire probando, sl2.


Aqui pongo el codigo que estoy utilizando:

*****************************************
Código:
#include <16f876.h>
#fuses   HS,NOWDT,NOPUT
#DEVICE  ADC=8        // bits a usar
#use     delay(clock=20000000)
#use     fast_io(a)
#use     fast_io(c)
#define  LCD_RS   PIN_B1
#define  LCD_RW   PIN_B2
#define  LCD_E    PIN_B3
#define  LCD_DB4  PIN_B4
#define  LCD_DB5  PIN_B5
#define  LCD_DB6  PIN_B6
#define  LCD_DB7  PIN_B7
#include "flex_lcd.c"

/********************************************************************/
/*******************   PROGRAMA PRINCIPAL    ************************/
 void main(){

   int   flag=1, k=0;
   int16 i=0, is=0,j=0,js=0;
   
   set_tris_a(0x0B);    // RA0 y RA1 como entrada   
   set_tris_b(0x00);    // PORTB: salida    
   set_tris_c(0x70);    // RC0, RC7, salida, RC5 entrada  

   setup_adc_ports(AN0_AN1_VSS_VREF );  // RA0 RA1 será analógicos 
   setup_adc(ADC_CLOCK_DIV_32);         // config A/D con reloj interno     
   lcd_init();                          // inicializa LCD

   output_low(PIN_C7);                  // apaga LED  
   output_low(PIN_C0);                  // apaga RELE
   lcd_gotoxy(1,1);                     // escribe en la fila 1 del LCD
   lcd_putc("**** Senati ****"); // mensaje de bienvenida 
   delay_ms(2000);
   lcd_gotoxy(1,1); 
   lcd_putc("                "); // limpia la 1º linea del LCD
       
/********************************************************************/
/*  Bloque de codigo para ingresar la Tº de Ref y enviarla al LCD   */
   while(TRUE){
      
      do{
         set_adc_channel(0);       // usamos el canal 0
         delay_us(20);             // retardo
         i=read_adc();             // valor leido se almacena en i
         j=100*2.5*i/255;      // conversion a voltaje de ref 
         lcd_gotoxy(1,1);          // escribe en le fila 1
         printf(lcd_putc,"Ingresar T:%3ld",j);
         if(input(pin_c5)==0){                 // pulsaron RC5?
           delay_ms(20);                       // si, retardo para rebotes
           if(j<=140.0)                        // Tº max a seleccionar
               flag=0;                         // flag=0 para salir del if
           else{
              for(k=0;k<=2;k++){
                 lcd_gotoxy(1,2);
                 lcd_putc(" ERROR..");     // sale ERROR si Tº de Ref es mayor que 140º
                 delay_ms(700);
                 lcd_gotoxy(1,2);
                 lcd_putc("        ");
                 delay_ms(700);
                  }                     
           }
         }
      } while(flag==1);       

/********************************************************************/
/*****  Bloque de codigo donde se lee la Tº del sensor en js   ******/

      output_high(PIN_C0);         // prende RELE
      output_high(PIN_C7);         // prende LED
      lcd_gotoxy(1,1);
      printf(lcd_putc,"Temp ref : %3ld",j);
      flag=1;
      while(flag==1){
         set_adc_channel(1);          // usamos el canal 1, para el sensor
         delay_us(20);                // retardo
         is=read_adc();               // valor leido se almacena en is
         js=100*2.5*is/255;       // voltaje de ref en 2.5v
         lcd_gotoxy(1,2);
         printf(lcd_putc,"T sensor : %3ld",js);
         if(js>=j){
            flag=0;                              // flag=0 para salir del while
         }          
      }
      flag=1;
      delay_ms(1000);            // retardo para esperar
      output_low(PIN_C0);        // apaga RELE
      output_low(PIN_C7);        // prende LED
      lcd_gotoxy(1,2);           // 
      lcd_putc("                "); // limpia la 2º linea del LCD   
   }   
 }

Hola, Amigo Excelenteee!!!
 
Saludos a todos,

Por motivos de trabajo me tuve que ausentar pero estoy de vuelta.
Quiero mostrarles algunos resultados de mi trabajito; bien fui a un instituto tecnologico en el cual tienen un dilatador de rodamiento SKF hicimos pruebas con ese instrumento y el que estoy haciendo les muestro los resultados de Tº:

Tº(lm35) Tº (skf) osea que es la k manda
30 40
32 45
37 40
40 55... aki hay una diferencia de 15º
43 60
47 65
50 70
54 75
56 80
62 86
64 90
67 95
70 100 ... aki hay una diferencia de 30º es demasiado
76 110

Bien, pude calcular una ecuacion aprox. de la recta con estos valores : y=1.5x-5 el cual me sirve para escalar.
Otro dato es que me parece que el LM35 demora mas en leer la Tº real, espero sus comentarios gracias.
 
Saludos a todos. He prestado especial atención a todo lo escrito en este topico...pero hay algo en que acabo de caer. Me he fijado en todos los valores de tu ensayo, y con el LM35, estos siempre son menores. En caso de que la LM fuese deficiente estos serian más aleatorios, por otro lado, estamos hablando de que te debe dar una tensión de 1,30V a 130ºC por ejemplo...
Digo yo...es posible que los 50 cm de cable te estén ofreciendo una resistencia extra produciendo una caida de tensión en los bornes del PIC?
Con esos valores de tensión, una resistencia ínfima puede producir una caida de tensión notable. Que tipo de cable estás usando?
Un saludo.
 
Hola,

Gracias por responder; el cable que uso lo saque de un sensor capacitivo industrial (es de 3 hilos para señales ON-OFF) el sensor se malogro y me quede con el cable.
Esos valores de Tº que puse antes los meti al excel y calcule esta ecuacion : y = 1.523x - 6.4muy parecida a la anterior.
Me keda pendiente hacer la medida en los bornes del pic, estare posteando los resultados...
Sl2.
 
Atrás
Arriba