BBQ cooker controller help

I just recently ordered and have been playing with an Arduino Uno and decided to try to make a BBQ controller to control a fan attached to the fire chamber. I am trying to use a MAX31855 chip and breakout board from Tautic (http://store.tautic.com/max31855-type-k-thermocouple-to-digital-converter-breakout.html). I followed the directions from his example code but am getting weird readings from the chip with my k-type thermocouple. The output is showing anywhere between 6500 - 7200 and is not changing relative to the tempature. I have checked my thermocouple with a multimeter and verified that the millivolts do go up with temp. Here is the code I am using…

const int CH1 = 4;        // Channel 1 CS

const int mDataPin = 6;   // SO
const int mClockPin = 7;  // SCK

void setup() {
  Serial.begin(9600);
  pinMode(CH1, OUTPUT);        //CS is an Output 
  pinMode(CH2, OUTPUT);        //CS is an Output 
  pinMode(mDataPin, INPUT);    //SO is an Input
  pinMode(mClockPin, OUTPUT);  //SCK is an Output
  digitalWrite(CH1, 1);  
  digitalWrite(CH2, 1);
  digitalWrite(mClockPin, 0);
}

void loop ()
{
  // Output temperature       
  // Example:   123.45,678.90\n
  Serial.println(getTemp(CH1));
 
  delay(1000); // Delay 1 seconds, so we get new readings sent to the terminal once per second
}

float getTemp(int ch)
{
 unsigned long value = 0;
 float temp = 0;
 char bita;
 digitalWrite(ch, 0);
 for (int i = 0; i < 32; i++) //Get 32 bits from the MAX31855 - see datasheet for specifics.
 {
   digitalWrite(mClockPin, 1);     //set clock pin low
   bita = digitalRead(mDataPin); 
   if (bita==1) value = value | 1; // If bit ==1 set lowest bit in value
   digitalWrite(mClockPin, 0);
   if (i != 31) value = value << 1;// If we're not done yet, shift bits left by 1 to make room for next loop
 }
 digitalWrite(ch, 1);
 value = value >> 18; //shift out all but tc temp data and sign bit
 temp = (((value * 0.25) * 9) / 5) + 32; //Convert to Degrees F
 return temp;
}

I am stumped as to what I am doing wrong. Can anyone provide me with any guidance ? Thanks

-Chris

Why not use the SPI library?

I think my problem is I'm not using a level shifter IC between the Arduino and max31855. The max31855 requires 3.3v logic not the 5v's I'm feeding it with now. I missed that when I was looking over the datasheet. I ordered a few 4050's and will try it with those. Hopefully I didn't fry the chip.. :~

   digitalWrite(mClockPin, 1);     //set clock pin low

Which is it, low or high?

 for (int i = 0; i < 32; i++) //Get 32 bits from the MAX31855 - see datasheet for specifics.
 {
   digitalWrite(mClockPin, 1);     //set clock pin low
   bita = digitalRead(mDataPin);

From the datasheet:

Read the output bits on the falling edge of the clock.

You are reading it on the rising edge.

I know you got this example of their web site (it looks very similar) but the SPI library is there to help you.