Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Термометр на MAX6675 0-1024'C

Здесь только проекты на PIC

Термометр на MAX6675 0-1024'C

Сообщение scotland » 27 мар 2013 04:21

Чип етот конвертирует напрежение с стандартном термопар тип "K" в сигнал SPI "три провода". Схема и програма очень простиье.
Бутон служит для нулирования min и max. Консумация нищожная можно използуват батерии. Там остаются 2 виьвода свободниье
- можна сделат и термостат. У етого ПИК-а есть ЕЕПРОМ так что можно записат значение min и max в памят.
Если нет связи с датчика тогда контролер виьдаиот сообщение - нет датчика или нет связи.

Изображение

Код: Выделить всё
      #include <16f684.h>
      #use delay(internal=1Mhz)
      #FUSES INTRC_IO, NOMCLR, nowdt, noprotect, PUT,   
      #use SPI(MASTER, DI=PIN_A3, CLK=PIN_A4, MODE=0,BITS=16)
      #define CS PIN_A5
      #include <lcd2.C>
     
unsigned int16 buffer, t_min, t_max;
float temperatura=0;

//*******************************Prekyswaniq***********************************

#INT_EXT
 
  void button() {
         t_min = 0;
         t_max = 0;
  }

//******************************Subprogrami************************************

void initial(){
     printf(lcd_putc,"\fTermometer F684");
     lcd_gotoxy(1,2);
     printf(lcd_putc," ***BGMAN66***");
     delay_ms(2000);
     lcd_putc("\f") ;
}

void termocuple(){
     int16 temp=0;
     
        delay_ms(230);         
        output_low(CS);
        buffer = spi_xfer(16);
        output_high(CS);
        temp = (buffer & 0b0111111111111000);
        temp = temp>>3;
        temperatura = (temp * 0.25);
}       

//******************************Main*********************************
   
void main(){
          SETUP_ADC_PORTS(NO_ANALOGS);
          PORT_A_PULLUPS(0b00100100);
          set_tris_c(0b00000000);
         
          ENABLE_INTERRUPTS(INT_EXT_H2L);   
          enable_interrupts(global);

          lcd_init();
          delay_ms(20);
          initial();
         
      do{
         termocuple();
          if(bit_test(buffer,2)){
              lcd_putc('\f');
              lcd_gotoxy(3,1);
              printf(lcd_putc,"No sensor or");
              lcd_gotoxy(3,2);
              printf(lcd_putc,"Disconnected");
          }
                else{
                    if ((temperatura <= t_min) | (t_min == 0)) t_min = temperatura;
                    if ((temperatura >= t_max) | (t_max == 0)) t_max = temperatura;
                   lcd_gotoxy(1,1);                           
                   printf(lcd_putc,"  temp. %4.0f",temperatura);
                   lcd_putc(223);
                   lcd_putc("C");
                   lcd_gotoxy(1,2);
                   printf(lcd_putc,"min%4Lu",t_min);
                   lcd_gotoxy(10,2);
                   printf(lcd_putc,"max%4Lu",t_max);
                }
      }
      while(TRUE);
}


И здес один термостат с 16F886. Температура регулируется потенциометром от 200 до 300 градуса. Есть также хронометр.
Может послужит для пайание SMD с помошти пистолета теплова воздуха.

Изображение
Вложения
termometer_F684_MAX6675.zip
ISIS
(40.2 КБ) Скачиваний: 452
termostat_F886_MAX6675.zip
(47.51 КБ) Скачиваний: 449
scotland
Частенько бываю
 
Сообщения: 45
Зарегистрирован: 23 апр 2012 04:07
Откуда: BG

Re: Термометр на MAX6675 0-1024'C

Сообщение Yanshun » 27 авг 2016 14:39

Добрый день.
Вот тоже не плохой вариант термометра на Max 6675
http://forum.chipmk.ru/index.php/topic/ ... __p__14811
Аватара пользователя
Yanshun
Частенько бываю
 
Сообщения: 52
Зарегистрирован: 01 фев 2015 13:45


Вернуться в PIC



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1