viernes, 16 de septiembre de 2016

Visualizando altas temperaturas con PIC16F1936 y Termocupla

En esta ocasión utilizare un microcontrolador PIC16F1936 y una termocupla tipo K ademas de un chip MAX6675 encargado de hacer la interfaz con la termocupla y el microcontrolador.


Esquemático del proyecto:







A peticion de varios usuarios aca esta el codigo.

Este es el codigo que desarrolle en Mikroc data de 2016.
Todo esta en el mismo codigo, tal ves tengas que hacer alguna modificacion para la ultima version de mikroc.

#include <built_in.h>

sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D4 at RB4_bit;

// Pin direction
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D7_Direction at TRISB7_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB4_bit;

sbit MAX6675_CS at RC2_Bit;
sbit MAX6675_CS_Direction at TRISC2_Bit;
union
{
  char state:1;
  char deviceID:1;
  char open:1;
  char temperature:12;
  char sign:1;
  unsigned output;
}Max6675Data;
void MAX6675_Init()
{
  MAX6675_CS_Direction = 0;
  MAX6675_CS = 1;
}
unsigned Max6675_Read()
{
unsigned tmp;
  MAX6675_CS = 0;
  Hi(tmp) = SPI1_Read(0);
  Lo(tmp) = SPI1_Read(0);
  MAX6675_CS = 1;
  return(tmp);
}

void main() {
char texto[8];
       ANSELB=0;
   SPI1_Init();
   MAX6675_Init();
   Lcd_Init();
   Lcd_Cmd( _LCD_CURSOR_OFF );
   Lcd_Cmd( _LCD_CLEAR );
   //Lcd_Out( 1, 1, "MAX6675 Temp: " );

   while(1)
   {
      *(unsigned*)&Max6675Data = MAX6675_Read();

      WordToStr( (Max6675Data.temperature >> 1)-0, texto );
      Lcd_Out(1,1, texto+2 );
      Lcd_Chr_CP( 223 );
      Lcd_Chr_CP( 'C' );

      Delay_ms( 1000 );
   }
}

te dejo el codigo compilado para copiar y pegar:
:0200000096293F
:0C0006001030FD00FD0B05280000080074
:0400120000000800E2
:100016000830FC002330FD00FD0B0F28FC0B0F28D9
:020026000800D0
:100028002000BB1B19288D131A288D173B1B1E286F
:100038000D131F280D17BB1A23288D1224288D167F
:100048003B1A28280D1229280D162A182D280D15B7
:100058002E280D118D1509208D11BB1935288D13EA
:1000680036288D173B193A280D133B280D17BB1856
:100078003F288D1240288D163B1844280D1245281C
:100088000D162A1849280D154A280D118D15092015
:0E0098008D112A1C51280B205228032008002D
:0E00A60020002A103A08BB0014202A1408007B
:1000B40020003A0824009100141861285E281108D1
:0400C400F000080040
:1000C8002000F801F9011030FC00710DF80DF90D50
:1000D8007408F8027508031C750FF90203187B28C9
:1000E8007408F80775080318750FF9070310F00D61
:0800F800F10DFC0B6928080062
:100100002000B7010530370203189028370835075B
:1001100086000030363D870020308100B70A8228F3
:100120003708350786000030363D87008101B70368
:1001300037083507B8000030363DB9000A30F40002
:10014000F5013308F0003408F10064207808F0006D
:100150007908F1003030F007380886003908870048
:10016000700881000A30F400F5013308F00034080B
:10017000F10064207008B3007108B400003071060B
:10018000031DC42800307006031DC728C928B70303
:0401900098280800A3
:1001940012001E00F003031DCA28F103031DCA2820
:0201A400080051
:1001A60020000E11BA015A2070082000B400BA01CE
:1001B6005A2070082000B3000E153308F0003408EA
:0401C600F10008003C
:1001CA005A302000A2000030A3003A30A4000030C8
:1001DA00A500FF30A600FF30A700FF30A800FF30BF
:1001EA00A90021008E128E110E16240095014030AE
:0601FA00940095160800B8
:10020000112980302000B3002329C030B3002329F6
:100210009430B3002329D430B30023298030B300B5
:10022000232920003308013A031901293308023A2F
:10023000031905293308033A031908293308043A36
:1002400003190B290E293403F0003308F007700856
:10025000B3007008BB0014202A10B7013708350717
:1002600084000030363D8500000803194229370814
:10027000350784000030363D85000008BA00532061
:08028000B70A2E292A14080018
:1002880021008D110D110D128D120D138D132000EB
:100298008D110D118D130D138D120D120B200B20C6
:1002A8000B208D160D168D1509208D110B208D151F
:1002B80009208D110B208D1509208D110B200D1291
:1002C8008D1509208D110B208D1509208D118D128A
:1002D8008D178D1509208D110B208D130D168D1579
:1002E80009208D110D128D1509208D110B208D15EA
:1002F80009208D110D168D1509208D110B200D1259
:100308008D1509208D118D170D178D160D168D154C
:0A03180009208D110B202A140800A3
:0A03220021000E1120000E15080046
:10032C0023008D01E520912144210C30BB001420C9
:10033C000130BB001420D3207008A0007108A1006C
:10034C00F8302005F10021087F39F200F236F10C6B
:10035C00F236F10CF236F10C7108B3007208B400ED
:10036C00B436B30C2B30B5000030B6008020013011
:10037C00B3000130B4002D30B5000030B6000021C0
:10038C00DF30BA0053204330BA0053200630FB0054
:10039C001330FC00AD30FD00FD0BD229FC0BD22933
:0C03AC00FB0BD22900000000A129DB2976
:020000040001F9
:04000E00813F3316E5
:00000001FF

y aca les dejo todo el paquete tal como lo tengo en el disco duro.




 





 

1 comentario:

  1. Muchisimas gracias por subir este contenido, podrias subir el tutorial o el codigo para poder aprender a implementarlo?

    ResponderEliminar