strange readings from thermocouple with MAX6675

Post here about your Arduino projects, get help - for Adafruit customers!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
rossco_s
 
Posts: 62
Joined: Thu Jul 14, 2011 12:01 am

strange readings from thermocouple with MAX6675

Post by rossco_s »

Hi all,
I am using an Adafruit MAX6675 breakout board with a RBBB Arduino clone board and a Omega K-type thermocouple (Bolt on washer style). I am getting a low reading (187F) on boiling water, but an ice/water mix reads 32F.
I have the CLK on pin 13, CS on pin 10, DO on pin 12. I have connected the Vcc & GND requirements to the voltage rails of the RBBB.
I am using the following code:-

Code: Select all

// this example is public domain. enjoy!
// www.ladyada.net/learn/sensors/thermocouple

#include "MAX6675.h"

int thermoDO = 12;
int thermoCS = 10;
int thermoCLK = 13;

MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
//int vccPin = 3;
//int gndPin = 2;
  
void setup() {
  Serial.begin(9600);
  // use Arduino pins 
 // pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
 // pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
  
  Serial.println("MAX6675 test");
  // wait for MAX chip to stabilize
  delay(500);
}

void loop() {
  // basic readout test, just print the current temp
  
   Serial.print("C = "); 
   Serial.println(thermocouple.readCelsius());
   Serial.print("F = ");
   Serial.println(thermocouple.readFarenheit());
 
   delay(1000);
}

User avatar
rossco_s
 
Posts: 62
Joined: Thu Jul 14, 2011 12:01 am

Re: strange readings from thermocouple with MAX6675

Post by rossco_s »

I forgot to add that my elevation is only 130 ft.
The temp I am reading would be valid if I were at aroud 15,000 ft :shock:

Pls help!

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: strange readings from thermocouple with MAX6675

Post by adafruit_support_bill »

I am getting a low reading (187F) on boiling water, but an ice/water mix reads 32F.
Is that immersed in a small vessel of vigorously boiling water? There can be a substantial temperature gradient in a larger vessel.
There is some variability between thermocouples, but it should be within a couple of degrees.

User avatar
rossco_s
 
Posts: 62
Joined: Thu Jul 14, 2011 12:01 am

Re: strange readings from thermocouple with MAX6675

Post by rossco_s »

Hi, thanks for your reply.
I discovered I had connected the Vcc of the breakout board to +9V on the RBBB, which explains why it read differently when connected via usb cable to when connected by power cable.
I replaced the breakout board (lucky I had a spare!) and it is working now.

However it now reads a bit high. So when placed in 1.5 liters of boiling water it reads between 219 and 222F
When placed in a 50/50 mix of ice/water it reads 41-42F.

Should I just use an offset in the code?

Also I have noticed the readings jump around a bit, as much as 10F from reading to reading. What could be causing this & how do I make it smoother?

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: strange readings from thermocouple with MAX6675

Post by adafruit_support_bill »

However it now reads a bit high. So when placed in 1.5 liters of boiling water it reads between 219 and 222F
When placed in a 50/50 mix of ice/water it reads 41-42F.
So you are about 10 degrees high at both calibration points. Most thermocouples are within a couple of degrees.
Are your thermocouple wires connected directly to the amplifier, or are you using any extensions?
the readings jump around a bit, as much as 10F from reading to reading.
Are there any potential noise sources nearby? Electrical motors, relays, electrical heating elements, dry-contact thermostats etc.?

User avatar
rossco_s
 
Posts: 62
Joined: Thu Jul 14, 2011 12:01 am

Re: strange readings from thermocouple with MAX6675

Post by rossco_s »

Are there any potential noise sources nearby? Electrical motors, relays, electrical heating elements, dry-contact thermostats etc.?
I am using it as a PID controller, currently it is driving a hot water kettle, so yes, definitely exposed to electrical noise. Does adafruit sell shielding?
Are your thermocouple wires connected directly to the amplifier, or are you using any extensions?
I am using the screwdown terminal sent with the breakout board

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: strange readings from thermocouple with MAX6675

Post by adafruit_support_bill »

We don't sell any shielding materials here. Omega probably does. Here is some good information about using thermocouples in noisy environments: http://www.newark.com/pdfs/techarticles ... 7722EN.pdf

User avatar
rossco_s
 
Posts: 62
Joined: Thu Jul 14, 2011 12:01 am

Re: strange readings from thermocouple with MAX6675

Post by rossco_s »

I have removed all electrical noise sources near to the project and tightened down the thermocouple terminal screws as much as I could.
The thermocouple is sitting in air and currently getting up to a 2.2F swing between readings.

Is this normal, or should it be more steady? :?

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: strange readings from thermocouple with MAX6675

Post by adafruit_support_bill »

In free air, I am seeing a similar variability between individual readings. In ice though, the readings are pretty solid at 32.00 +/- 0.1F.
It is fairly standard practice in industrial controls to implement a low-pass filter in software. This can be done most simply by just taking the average of several readings.

User avatar
rossco_s
 
Posts: 62
Joined: Thu Jul 14, 2011 12:01 am

Re: strange readings from thermocouple with MAX6675

Post by rossco_s »

It is fairly standard practice in industrial controls to implement a low-pass filter in software. This can be done most simply by just taking the average of several readings.
Thank you, that did the trick!

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino”