Autor Tema: Medidor de temperatura sin contacto  (Leído 2935 veces)

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

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Medidor de temperatura sin contacto
« en: 02 de Diciembre de 2013, 07:20:09 »
Buenas, estoy en varios proyectos entre los cuales tengo un medidor de tempeatura sin contacto. Estoy empezando a sacar documentación gracias a nuestro amigo San Google.
La idea es medir la temperatura de los contactos en una celda de alta tensión cuando está conectada y enviar esa medida por fibra óptica. La forma que se me ocurre es medir mediante lectura infraroja. Hay muchas pistolas que ya te hacen esa medida pero es imposible instalarla dentro de la celda.
Me gustaría conocer si alguno de vosotros a trabajado en el tema y me podría decir si conece alguna referencia del chip que mide la temperatura sin contacto. La otra parte de enviar la lectura por fibra ya la tengo realizada en otro porecto que hice hace tiempo.

Un saludo.
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Medidor de temperatura sin contacto
« Respuesta #1 en: 02 de Diciembre de 2013, 08:50:20 »
bitpic hizo algo parecido
mira este post...http://www.todopic.com.ar/foros/index.php?topic=41303.0
espero te sirva
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado mariacontenis

  • PIC16
  • ***
  • Mensajes: 116
Re: Medidor de temperatura sin contacto
« Respuesta #2 en: 25 de Marzo de 2014, 18:26:08 »
Que tal amigo, si no es muy tarde y te sirve.
Yo implemente este código con el sensor de temperatura MLX90614 de Melexis que mide temperaturas de entre -70 a +380 Cº sin contacto.





         #include <18F4550.h>
         #fuses PLL1,CPUDIV1,USBDIV,XTPLL,NOFCMEN,NOIESO,PUT,NOBROWNOUT,VREGEN,NOWDT,NOPBADEN,MCLR,NOSTVREN,NOLVP,NODEBUG,NOPROTECT,NOSTVREN,NOCPB,NOWRT,NOWRTC
         #use delay (clock=48000000)
         #use rs232(baud=115200, xmit=PIN_C6,rcv=PIN_C7)
        
         #use I2C(master,sda=PIN_B0, scl=PIN_B1)
         //#use i2c (master, sda=PIN_B0, scl=PIN_B1, slow, force_hw)   //habilitación y configuración de las funciones I2C por hardware
        
         int8 resultado1=0;
         int8 resultado2=0;
         int8 CRC=0;
         int16 tempk=0;
         float tempc=0.0;
        
         void main (void)
         {        
         while (TRUE)
         {
         output_toggle(pin_B4);
         i2c_start();
        
         if (i2c_write(0xB4)==0)                         // direccion del sensor para mandar comando
         {  
         i2c_write(0x07);                                // pido datos del sensor
         i2c_start();
         i2c_write(0xB5);                                // direccion del sensor para leer

         resultado1 = i2c_read(1);
         resultado2 = i2c_read(1);
         tempk= make16(resultado2,resultado1);  
         CRC = i2c_read(0);
         }  
         i2c_stop();
         tempc=(tempk*0.02)-273;
         printf("temp:%3.2f\n\r",tempc); delay_ms(500);
         }
         }


« Última modificación: 25 de Marzo de 2014, 18:32:04 por mariacontenis »

Desconectado lortiz

  • PIC10
  • *
  • Mensajes: 2
Re: Medidor de temperatura sin contacto
« Respuesta #3 en: 03 de Julio de 2014, 17:57:35 »
hola, soy nuevo en esto de los PIC´s y estoy tratando de hacer la comunicacion de un sensor mlx90615 y el pic 18f4550, pero no consigo lograrlo :(.
busco ayuda para ello, gracias!!
a continuacion el codigo que llevo:

#INCLUDE <18f4550.h>
#fuses hs, nowdt, noprotect, nolvp
#use delay (clock = 10000000)
#use standard_io(B)
#use i2c(master, FORCE_HW, fast=50000, SMBUS, sda=PIN_C7, scl=PIN_C6)
#define use_portB_lcd TRUE
#include <lcd.c>
int8 res1=0;
float tempc=0.0;

void main () {
for (;;){
 delay_ms(500);
  i2c_start();
    i2c_write(0xB6);
    i2c_write(0x07);
    i2c_start();
    i2c_write(0xB7);
     res1 = i2c_read(0);
     i2c_stop();
     tempc = (res1*0.02)-273;
   
  lcd_init();
  printf(lcd_putc, ("\f temp: %f", tempc));
  delay_ms(1000);
 
     
}
}

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Medidor de temperatura sin contacto
« Respuesta #4 en: 05 de Julio de 2014, 05:12:17 »
Buenas lortiz por lo que puedo ver a simple vista en tu código es lo siguiente:

1.- Dentro del blucle for cada iteración estas inicializando el LCD por eso no ves nada. La función lcd_init() deberá estar antes del blucle for, así ya lo tienes inicializado.

Código: C#
  1. #INCLUDE <18f4550.h>
  2. #fuses hs, nowdt, noprotect, nolvp
  3. #use delay (clock = 10000000)
  4. #use standard_io(B)
  5. #use i2c(master, FORCE_HW, fast=50000, SMBUS, sda=PIN_C7, scl=PIN_C6)
  6. #define use_portB_lcd TRUE
  7. #include <lcd.c>
  8. int8 res1=0;
  9. float tempc=0.0;
  10.  
  11. void main () {
  12. lcd_init();
  13. for (;;){
  14.  delay_ms(500);
  15.   i2c_start();
  16.     i2c_write(0xB6);
  17.     i2c_write(0x07);
  18.     i2c_start();
  19.     i2c_write(0xB7);
  20.      res1 = i2c_read(0);
  21.      i2c_stop();
  22.      tempc = (res1*0.02)-273;
  23.  
  24.   printf(lcd_putc, ("\f temp: %f", tempc));
  25.   delay_ms(1000);
  26.  
  27.      
  28. }
  29. }

Un saludo,
« Última modificación: 05 de Julio de 2014, 05:14:25 por umalrovi »
Aplicaciones Electrónicas
http://www.neoingenia.com/


 

anything