Autor Tema: Thermocouple tipo K - OP07 - CCS -PIC16F873A- Rango 0 - 1200ºC  (Leído 3450 veces)

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

Desconectado beto1234

  • PIC12
  • **
  • Mensajes: 52
    • Osm Gps Pwa
Thermocouple tipo K - OP07 - CCS -PIC16F873A- Rango 0 - 1200ºC
« en: 02 de Octubre de 2011, 16:12:57 »
Código: C
  1. /*
  2. ++++++++++Conectando una Thermocouple tipo K al PIC16f873++++++++++++++++++++++
  3. +++++++++++ By Alberto Roobledo Sánches - estudia en UTN FRRE ++++++++++++++++++
  4. ++++++++++++++++++++++WWW.CHACOELECNOR.COM.AR+++++++++++++++++++++++++++++++++++
  5. */
  6. #include <16F873a.h>
  7. /* ********************* Conversor A/D de 10 bits *************************** */
  8. #device adc=10
  9. #FUSES NOWDT, XT, PUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT  
  10. #use delay(clock=4000000)
  11. #define use_portb_lcd TRUE
  12. #include <LCD.c>
  13.  
  14.  
  15. //VARIABLED GLOBALES
  16. int16 TE,LM;
  17. float Tc,Tlm,mVO,Vm,Vlm;
  18. float a1=2.508355E+01  ,a2=7.860106E-02  ,a3=-2.503131E-01  ,a4=8.315270E-02  ,a5=-1.228034E-02  ,a6=9.804036E-04 ,a7=-4.413030E-05  ,a8=1.057734E-06  ,a9=-1.052755E-08 ;
  19.    //0ºa a 500 ºc - 0.000 to 20.644mv
  20. float a11=-1.318058E+02 ,a12=4.830222E+01  ,a13=-1.646031E+00  ,a14=5.464731E-02  ,a15=-9.650715E-04  ,a16=8.802193E-06  ,a17=-3.110810E-08 ;
  21.    //500ºc a 1372 ºc    20.644 to 54.886
  22. void main(void){
  23.   setup_adc_ports(AN0_AN1_AN3);
  24.   setup_adc(ADC_CLOCK_INTERNAL);
  25. lcd_init();
  26. lcd_putc("\f");
  27. lcd_gotoxy(1,1);
  28. lcd_putc("Tc[oC] Tlm[oC]");
  29.    while(true){
  30.    set_adc_channel(0);
  31.    delay_us(20);
  32.    TE=read_adc();
  33.    //setup_adc (adc_off);   //Apaga ADC
  34.    delay_us(50);
  35.    set_adc_channel(1);
  36.    delay_us(20);
  37.    LM=read_adc();
  38.    Vlm = (float) 5000 * LM / 1024 ; // tencion de entrada en mV
  39.    Tlm= (float)Vlm/10;
  40.    //Comienso de la conversion de los valores
  41.    mVO =(float) 5000 * TE / 1024 ; // tencion de entrada en mV
  42.    Vm =(float) mVO / (1+(100000/1000)); // Tencion en la salida de la termocupla
  43.    // Pasamos la tencion medida Vm a temperatura gracias a la ecuacion con los coeficientes de la tabla
  44.  
  45.    //formula tipo:   t_90 = a_0 + a_1*E + a_2*E^2 + ...+ a_n*E^n,
  46.  
  47.    if(Vm<20.6)
  48.    {
  49.     Tc =(float) Vm * (a1+ Vm* (a2 +Vm*(a3+Vm*(a4+Vm*(a5+Vm*(a6+Vm*(a7+Vm*((a8+Vm*(a9))))))))));
  50.    }
  51.  
  52.    else if(Vm>20.6)
  53.    {
  54.  
  55.     Tc=(float)(a11 + Vm*(a12+Vm*(a13+Vm*(a14+Vm*(a15+Vm*(a16+Vm*(a17)))))));
  56.  
  57.    }
  58.    //  mostrar en el lcd
  59.    lcd_gotoxy(10,2);
  60.    printf(lcd_putc,"%f",Tlm);
  61.    delay_us(20);
  62.    lcd_gotoxy(1,2);
  63.    printf(lcd_putc,"%f",TC+Tlm);
  64.  
  65.    }
  66. }

 Me pregunto un amigo que no podía ver los archivos del circuito simulado - los archivos solo lo podes ver si te registras
« Última modificación: 02 de Octubre de 2011, 16:44:30 por beto1234 »

Desconectado ceci_lamorocha

  • PIC12
  • **
  • Mensajes: 94
Re: Thermocouple tipo K - OP07 - CCS -PIC16F873A- Rango 0 - 1200ºC
« Respuesta #1 en: 28 de Mayo de 2015, 09:56:56 »
Hola, antes que nada perdon por reavivar este post pero tengo una consulta al respecto que le puede servir a alguien mas.
En el programa figura esta ecuacion:
 
Tc =(float) Vm * (a1+ Vm* (a2 +Vm*(a3+Vm*(a4+Vm*(a5+Vm*(a6+Vm*(a7+Vm*((a8+Vm*(a9))))))))));

pero como se llegó a eso a partir de esto? :

//formula tipo:   t_90 = a_0 + a_1*E + a_2*E^2 + ...+ a_n*E^n,

gracias de antemano

Laura

Desconectado beto1234

  • PIC12
  • **
  • Mensajes: 52
    • Osm Gps Pwa
Re: Thermocouple tipo K - OP07 - CCS -PIC16F873A- Rango 0 - 1200ºC
« Respuesta #2 en: 28 de Mayo de 2015, 10:54:33 »
 Esa formula se saco del archivo type_k.tab.txt que muestra los polinomios y las tablas de los valores de tensión de la termocupla tipo k. Los demás datos son coeficientes que se saco del mismo archivo.
Este polinomio cambia dependiendo del rango de temperatura para bajas y altas.


Desconectado ceci_lamorocha

  • PIC12
  • **
  • Mensajes: 94
Re: Thermocouple tipo K - OP07 - CCS -PIC16F873A- Rango 0 - 1200ºC
« Respuesta #3 en: 28 de Mayo de 2015, 11:09:11 »
Hola gracias por la respuesta, eso si sabia pero lo que no entiendo es como llegaste al polinomio del programa porque
el polinomio del archivo.txt me parece muuy diferente, lo tenes desarrollado para ver como se llega de un polinomio al otro ?

gracias!

Desconectado beto1234

  • PIC12
  • **
  • Mensajes: 52
    • Osm Gps Pwa
Re: Thermocouple tipo K - OP07 - CCS -PIC16F873A- Rango 0 - 1200ºC
« Respuesta #4 en: 28 de Mayo de 2015, 11:26:14 »
es esa ecuación esta simplificada   t_90 = a_0 + a_n*E^n      donde n=1,2,3,4,5,6,7,9... osea de 1 en adelante, trata de armar la ecuación entera  t_90 = a_0 + a_n*E^n  y ponele los 9 coeficientes y trata de ir simplificando por ahí simplificas mejor que yo que no me quedo muy entendida la ecuación  ((:-)) o usas el elevado con pow de la libreria math.h. Mostrame los resultados no te las guarde :) así lo vemos todos.

Desconectado ceci_lamorocha

  • PIC12
  • **
  • Mensajes: 94
Re: Thermocouple tipo K - OP07 - CCS -PIC16F873A- Rango 0 - 1200ºC
« Respuesta #5 en: 28 de Mayo de 2015, 11:39:08 »
Ahhhh gracias ! de cada termino son 9 terminos en realidad !  bueno voy a intentar hacerlo de 0 a 500 grados a ver si coincidimos! gracias :)