#include <SPI.h>
#include "Adafruit_MAX31855.h"
#include "LedControl.h"
#define DO   3
#define CS   4
#define CLK  5
Adafruit_MAX31855 thermocouple(CLK, CS, DO);
LedControl Ic=LedControl(12,11,10,1);
int t2=0;          // a korábban beállított hőmérséklet értéke kezdő értéke  
byte change=10;
void setup() {
  delay (10);
  Ic.shutdown(0,false);
  Ic.setIntensity(0,1);
  Ic.clearDisplay(0);
  pinMode(8, OUTPUT);
}
void loop(){
long Tsum=0;
int kij;
int Tc = thermocouple.readCelsius(); // hőelemeről beolvassa a páka hőmérsékletet
for (byte i = 0; i < 250; i++) {
      Tsum+=analogRead(A1);   // az A1 portra kapcsolt potencióméter középső lába
    }
int t1=Tsum/250;      // a beállított hőmérsékletet átlagolja - 1000 minta alapján
int Tset = map(t1, 0, 1023, 150, 451);   
if ( Tc < Tset) {
     digitalWrite(8, HIGH);
     } else {
     digitalWrite(8, LOW);
    }         // Ha a mért hőmérséklet kisebb mint a beállított, akkor fűtt a páka, egyéb esetben nem.
if (t1-t2 < -1 || t1-t2 > 1){     // Ha a beállított hőmérséklet nem változik több mint 2 fokot akkor, a mért hőmérséklet kerül kijelzésre, ha változik, akkor a beállított
    change=19;
    kij=Tset;
}
if (change==20){      // Ha a beállított hőmérséklet nem változik több mint 2 fokot akkor, a mért hőmérséklet kerül kijelzésre, ha változik, akkor a beállított
    kij=Tc;
}
if(change>0 && change<20){
  change--;
   kij=Tset;
}
if (change ==0){
  change=20;
}
    t2=t1;          // a korábban beállított hőmérséklet érték tárolása
    Ic.setDigit(0,0,kij%10,false);
    Ic.setDigit(0,1,(kij/10)%10,false);
    Ic.setDigit(0,2,(kij/100)%10,false);
    Ic.setDigit(0,3,(kij/1000)%10,false); 
 }

