First, I am a complete beginner in Arduino. Currently doing a project, I have to measure the temperature of an aluminium plate that should be heated to about 260°C with 2 sensors (to see if the temperature is homogenous at 2 different locations) and I just learned that connecting a sensor to a Arduino UNO board would be a good possibility. The temperature of 260°C means that sensors like the TMP36 (and all the good tutorials going with, Using a Temp Sensor | TMP36 Temperature Sensor | Adafruit Learning System ) cannot be used. I went through the arduino forum and also through our friend google and I found 2 things maybe similar :
My questions :
Is that sufficient or do I absolutely need some amplification using a board or building my own circuit like described in the links posted above ?
Is then the code part hard to implement or very similar to the code of other temperature sensors connected to an arduino board (as said it will be the first time that I work with Arduino and I have some small idea of C++)?
In the case, that this question was somewhere asked, please post the link (tutorial on exact connections and code).
Thank you for reading and in advance thank you for your answer.
You could use that sensor, but you would need to use it in a bridge circuit, with an amplifier, and you would need to calibrate it. I think it would be easier to use 2 thermocouples and 2 MAX31855 chips (which you can also buy ready assembled on breakout boards from Sparkfun and their resellers).
J2D2: PT100 sensor - help a beginner? - Sensors - Arduino Forum
[
To measure these 260°C, in addition to an Original Arduino Uno R3 (Atmega328), I plan to buy a temperature sensor PT100
My questions :
Is that sufficient or do I absolutely need some amplification using a board or building my own circuit like described in the links posted above ?
I have not progressed with my PT100s since that thread. The guy with the baking oven used a simple method because he did not need the accuracy. Since you are using two probes and presumably need to know the small difference between them, I imagine you need the accuracy the probe can deliver with a proper amplifying circuit. The OpenEnergy circuit is pretty simple and very cheap.
Here's a good tutorial on using thermocouple with Arduino
This tutorial features an Adafruit MAX31855 breakout board. These boards are pretty nice. I've used these in a couple projects and in my experience you need to watch out for noise getting into the thermocouple if it's touching metal I had one connected to a motor and the thermocouple itself was mounted to the motor housing. Noise from the motor was going right into the thermocouple and giving me erratic readings. I was using mcmaster.com P/N 3648K24. Hopefully this won't be an issue with your aluminum plate. I'm sure there's ways to deal with this, but I'm not that knowledgeable in this area.
Also, I think the MAX31855 only works with k-type thermocouples; hopefully that's what you ordered.
I just bought two new k-thermocouples and two max31855 amplifiers and everything is working great. So in total I have 4 thermocouples and 4 amplifiers connected to my Arduino Board displaying the temperature. By the way for future users of these k-thermocouples and amplifiers, use the 5 or 3.3 V to supply the max31855 amplifiers. I got measurments at 0 degrees because I was supplying the amplifiers with an external supply (using the code of the tutorial : Arduino Code | MAX31855 Thermocouple | Adafruit Learning System).
Now that I can read the temperature on the serial monitor, I am trying to find a way to plot it, first in real time and secondly maybe on matlab. But I didn't find any good help after research on internet (particularly nothing about other people using these k thermocouples and amplifiers), because it looks that every guy has a different way to do it. And the code looks always quiet long and not easily useable in my case.
At the moment, my code is the following :
#include "Adafruit_MAX31855.h"
int thermoDO1 = 4;
int thermoCS1 = 3;
int thermoCLK1 = 2;
int thermoDO2 = 7;
int thermoCS2 = 6;
int thermoCLK2 = 5;
int thermoDO3 = 8;
int thermoCS3 = 9;
int thermoCLK3 = 10;
int thermoDO4 = 11;
int thermoCS4 = 12;
int thermoCLK4 = 13;
Adafruit_MAX31855 thermocouple1(thermoCLK1, thermoCS1, thermoDO1);
Adafruit_MAX31855 thermocouple2(thermoCLK2, thermoCS2, thermoDO2);
Adafruit_MAX31855 thermocouple3(thermoCLK3, thermoCS3, thermoDO3);
Adafruit_MAX31855 thermocouple4(thermoCLK4, thermoCS4, thermoDO4);
void setup() {
Serial.begin(115200);
Serial.println("MAX31855 test");
// wait for MAX chip to stabilize
delay(500);
}
void loop() {
// basic readout test, just print the current temp
//Serial.print("Internal Temp = ");
//Serial.println(thermocouple1.readInternal());
//Serial.println(thermocouple2.readInternal());
double c_sensor_1 = thermocouple1.readCelsius();
double c_sensor_2 = thermocouple2.readCelsius();
double c_sensor_3 = thermocouple3.readCelsius();
double c_sensor_4 = thermocouple4.readCelsius();
if (isnan(c_sensor_1)) {
Serial.println("Something wrong with thermocouple!");
} else {
Serial.print("C_top= ");
Serial.println(c_sensor_1);
}
if (isnan(c_sensor_2)) {
Serial.println("Something wrong with thermocouple!");
} else {
Serial.print("C_right = ");
Serial.println(c_sensor_2);
}
if (isnan(c_sensor_3)) {
Serial.println("Something wrong with thermocouple!");
} else {
Serial.print("C_bot = ");
Serial.println(c_sensor_3);
}
if (isnan(c_sensor_4)) {
Serial.println("Something wrong with thermocouple!");
} else {
Serial.print("C_left = ");
Serial.println(c_sensor_4);
Serial.println();
}
//Serial.print("F = ");
//Serial.println(thermocouple.readFarenheit());
delay(500);
Any idea, tips (pls dont send me back to the tutorial http://arduino.cc/en/Tutorial/Graph, even this one makes some trouble because some parts are to uncomment and making for some reason errors ?
If you can get the information onto the serial monitor, you can put it anywhere. The simplest way to get a graph is to is PLX-DAQ which is a free Excel macro.
Well thank you ! PLX-DAQ is indeed a really good and easy possibility to make data acquisition.
But I still have on another question, because I am thinking to also make some data acquisition in Matlab using my Arduino UNO (because I am making some signal processing there). I know that the topic is also quiet discussed on internet but I was not really able to start it properly.
My actual Arduino code is :
#include "Adafruit_MAX31855.h"
int thermoDO1 = 4;
int thermoCS1 = 3;
int thermoCLK1 = 2;
int thermoDO2 = 7;
int thermoCS2 = 6;
int thermoCLK2 = 5;
int thermoDO3 = 8;
int thermoCS3 = 9;
int thermoCLK3 = 10;
int thermoDO4 = 11;
int thermoCS4 = 12;
int thermoCLK4 = 13;
Adafruit_MAX31855 thermocouple1(thermoCLK1, thermoCS1, thermoDO1);
Adafruit_MAX31855 thermocouple2(thermoCLK2, thermoCS2, thermoDO2);
Adafruit_MAX31855 thermocouple3(thermoCLK3, thermoCS3, thermoDO3);
Adafruit_MAX31855 thermocouple4(thermoCLK4, thermoCS4, thermoDO4);
void setup() {
Serial.begin(115200);
Serial.println("MAX31855 test");
Serial.println();
// wait for MAX chip to stabilize
delay(500);
}
void loop() {
// basic readout test, just print the current temp
//Serial.print("Internal Temp = ");
//Serial.println(thermocouple1.readInternal());
//Serial.println(thermocouple2.readInternal());
double c_sensor_1 = thermocouple1.readCelsius();
double c_sensor_2 = thermocouple2.readCelsius();
double c_sensor_3 = thermocouple3.readCelsius();
double c_sensor_4 = thermocouple4.readCelsius();
if (isnan(c_sensor_1)) {
Serial.println("Something wrong with thermocouple!");
} else {
//Serial.print("C_top= ");
Serial.println(c_sensor_1);
}
if (isnan(c_sensor_2)) {
Serial.println("Something wrong with thermocouple!");
} else {
//Serial.print("C_right = ");
Serial.println(c_sensor_2);
}
if (isnan(c_sensor_3)) {
Serial.println("Something wrong with thermocouple!");
} else {
//Serial.print("C_bot = ");
Serial.println(c_sensor_3);
}
if (isnan(c_sensor_4)) {
Serial.println("Something wrong with thermocouple!");
} else {
//Serial.print("C_left = ");
Serial.println(c_sensor_4);
Serial.println();
}
//Serial.print("F = ");
//Serial.println(thermocouple.readFarenheit());
Serial.print("DATA,TIME,"); Serial.print(c_sensor_1);Serial.print(","); Serial.print(c_sensor_2);Serial.print(","); Serial.print(c_sensor_3); Serial.print(","); Serial.print(c_sensor_4); // code line for PLX-DAQ
Serial.println();
delay(500);
}
I have downloaded the Mathworks package provided :
But even when I try to use the simple command to start, I get an error
a=arduino('COM4')
Attempting connection .............
Warning: Unsuccessful read: Matching failure in format.
Error using arduino (line 122)
Unknown sketch. Please make sure that a sketch provided with the package is running on the board
So I assume that I need to modify my Arduino code but I dont know how.
I'm afraid I don't know anything about Matlab and cannot comment on the code. I believe Matlab is for some dashboard application, so this might be of interest, but I'm au fait with this either.