Pages: [1] 2   Go Down
Author Topic: High Resolution Thermocouple and Data Log  (Read 7826 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 16
Always need to have a project! There is always a new (a few old) projects around the house going on.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'd like to have a high resolution and high temperature thermocouple that I can use with the arduino and be able to data log it so I can plot it in excel. I would need to be able to take readings at a minimum of 1 millisecond. I would need thermocouple to be able to handle something like 1000 degrees Fahrenheit or as high as we can get it. How would I log the data? I would assume it would be pretty easy if we left the Arduino hooked into a computer and just make a text file from it and import into excel but I don't know how to do it.

Can anyone help!!!

Thanks!

Background Info:
This is for a small combustion engine which is ignited by a coil/target, think of it like a light bulb filament that acts as the spark plug. We need the measurements so we know where we are if we have trouble. A resolution of 10,000 would be awesome but really isn't necessary. We need a minimum of 1,000 readings a second and the higher we can get the better. We think the operating range is something near 900F.
« Last Edit: March 15, 2011, 11:54:04 am by rpmccly » Logged

Montreal
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2611
Per aspera ad astra.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

"high resolution" - how high?
0.1%, or 12 bits or maybe 0.1 F ?
Logged

0
Offline Offline
Shannon Member
****
Karma: 222
Posts: 12725
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The arduino can sample that fast if you change the ADC clock prescalar - at expense of some accuracy.  Thermocouple would need _very_ low thermal mass to respond that quickly.  2500F is quite hot, people use optical pyrometers for that range.
Logged

[ I won't respond to messages, use the forum please ]

Offline Offline
Newbie
*
Karma: 0
Posts: 16
Always need to have a project! There is always a new (a few old) projects around the house going on.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

we need a minimum of 1000 readings a second, and we would like more than that. We would be using it for something that does heat up in 1 millisecond, I am not sure the maximum temp it gets to but I thought it was at least 1000F, I will check today.

Whats the maximum resolution a thermocouple can do and whats the maximum resolution the arduino can do?

Magicician, I said what resolutions I needed, is your .1% duty cycle? I don't know how many bits I would need and i'm not sure what 0.1F is, thanks for your help though!

KE7GKP, The spec I gave would be ideal, obviously its not possible but also not needed. I will check on temp today but we would need a reading every millisecond at least and I was under the impression the arduino could easily do that, maybe not?

MarkT, We don't want to have to change anything in the arduino, just to use it! I'd assume optical pyrometers are pretty expensive?

Also, is there a way to measure this without having to have a something physically on the object being measured for temp? We could use a thermal imaging camera but don't have the funds to buy one thats good enough.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 16
Always need to have a project! There is always a new (a few old) projects around the house going on.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I honestly didn't know how possible it was, let me be a little more descriptive. This is for a small combustion engine which is ignited by a coil/target, think of it like a light bulb filament that acts as the spark plug. We need the measurements so we know where we are if we have trouble. Is that more clear? A resolution of 10,000 would be awesome but really isn't necessary. We need a minimum of 1,000 readings a second and the higher we can get the better. We think the operating range is around 900F. I appreciate your timely responses and want you to know I am new to arduino so I have no idea what the details and limitations are of the Arduino.
« Last Edit: March 15, 2011, 11:11:46 am by rpmccly » Logged

Georgina Ontario
Offline Offline
Sr. Member
****
Karma: 5
Posts: 437
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I don't think you understand your problem space well enough to describe it to us.

I think this is an R&D type question...
http://www.micro-epsilon.com/products/temperature-sensors/index.html

Dig around a bit...
http://www.google.ca/#sclient=psy&hl=en&q=infra%20red%20temperature%20sensor%20high%20speed&aq=&aqi=&aql=&oq=&pbx=1&fp=ec885af529af1eb0&pf=p&pdl=300

You can do some more google searches I am sure.
Logged

Just another Hacker

0
Offline Offline
Newbie
*
Karma: 1
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A standard type K thermocouple will work well above the temperature range you are talking about.
At 900F the output will only be around 20 millivolts, so you might want to use an operational amplifier to expand this to about 4 volts.  Alternatively, you could use the ARef input and analogReference() function to scale the Arduino input to 25 or 30 millivolts full scale.  Not sure offhand if one way would be better than the other.  10 bits of A/D would give you +/- about 2 degrees resolution, not counting the limits of error of type K.
A bare-bead thermocouple made of fine wire will give the quickest response time.  Might be hard to seal at high pressures.
Since you are working in a combustion environment (oxidizing? reducing?), this can affect your choice of materials .... type N might be preferable for a reactive environment.  Sheathing can improve resistance greatly but at the expense of response time.
www.omega.com has extensive reference materials on temperature measurement which may be useful.


Another thought:  what is the thermal coefficient of resistance of your ignition coil material ?
If it is high enough, you might be able to measure temperature directly by measuring voltage drop at constant current like a standard 4-wire resistance measurement (or current at constant voltage if that is more convenient).
Logged

0
Offline Offline
Newbie
*
Karma: 1
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
you could use the ARef input and analogReference() function to scale the Arduino input to 25 or 30 millivolts full scale

The minimum recommended reference is around 1 volt. Below that Arduino is too noisy to produce reliable results.
 
Note also that any attachment to a real thermocouple must use an "ice-point" reference compensation or else you will never know whether you are measuring the temperature at the thermocouple, or the temperature at the junction point.  That is one of the downsides of using real thermocouples.

Thanks, wasn't sure about the noise floor, thats why I inserted a caveat.

Good point about the ice point, too ... most OEM instrumentation fakes this automagically.
Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3839
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You can use an AD595ACD to inferface directly with the thermocouple ==> http://www.datasheetcatalog.com/datasheets_pdf/A/D/5/9/AD595AQ.shtml
and an ADS1213 to improve the speed and the resolution of the measurement ==> http://focus.ti.com/lit/ds/symlink/ads1213.pdf
« Last Edit: March 16, 2011, 06:47:13 am by B@tto » Logged


Morganton, NC
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Depending on the type of thermocouple you use, you CAN read temperatures up to around 2912 deg. F with type R thermocouples. http://en.wikipedia.org/wiki/Thermocouple You can use a Maxim MAX6675 http://www.maxim-ic.com/datasheet/index.mvp/id/3149 chip to interface with a type K thermocouple that will give you 2012 deg. F. it has built in cold junction compensation also. As far as the 1000 readings a second, i don't know if it can measure and send data that fast, but i do know that it works great for interfacing thermocouples.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 10
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

See Adafruit product #269:
http://www.adafruit.com/products/269

For MAX6675 Thermocouple breakout board.  This will handle the temp measurement, I don't know about the speed of measurement.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have both the MAX6675 and the replacement 3.3V variant of that board.  It does not measure that fast, and it only measures to 0.25 deg C accuracy.  Check out my Turkey smoking blog post at: http://www.TerenceTam.com for an example of what you can do with that board.

Honestly, if you *really* need 1000 samples per second, the only tool that would do readily do that is an oscilloscope or a dedicated data acquisition system.  Nothing really converts and sample that fast, nor does it make sense to in an industrial control setting, which is what most of these tools are.  None of the industrial control processes change that fast to require 1000 samples per second time resolution (and none of them can be controlled that fast either).  At my last job when we characterized battery chargers, we take 1 sample per second over a 2 hour or more period. 

I would look into wiring up the outputs to an oscilloscope to the thermocouple's output and triggering on an external event.

-=- Terence
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If it's a positive displacement engine, what about using a pressure transducer synchronized with a rotary encoder on the crankshaft?  You should be able to solve for temperature given you know volume and pressure, and 1000hz response is much more realistic.
Logged

Peoples Republic of Cantabrigia
Offline Offline
God Member
*****
Karma: 6
Posts: 722
Arduino happiness
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Honestly, if you *really* need 1000 samples per second, the only tool that would do readily do that is an oscilloscope or a dedicated data acquisition system.  Nothing really converts and sample that fast, nor does it make sense to in an industrial control setting, which is what most of these tools are.

Allow me to disagree a bit. One approach is to find an external ADC that samples quickly, with a high enough resolution, and which interfaces easily to an Arduino. Circuit #3 on this page may fit the bill, up to 12 bits of resolution with 11ksamples/s. You may be able to boost to 13 bits of resolution through decimation on the Arduino and still enjoy a faster than 1ksample/s rate. McSarge even wrote a program to interface with the LTC1298 for you. Not sure what the maximum sampling rate is, but you could time it and see how quickly the code executes.

I think the bigger challenge is what to do with the deluge of data. The serial bus is likely too slow to transfer such a quantity without significantly reducing the sampling rate at standard transmission rates. Non-standard serial transfer rates (i.e. about 115kbaud) are possible, but not with the Arduino IDE (i.e. you'll have to use PuTTy, etc.) I've transferred at 1Mbit/s between arduinos but couldn't monitor said transfer in the Serial Monitor.
« Last Edit: January 20, 2012, 02:31:08 pm by Constantin » Logged

Santa Fe
Offline Offline
Full Member
***
Karma: 1
Posts: 215
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I think you will have a hard time finding a thermocouple element small enough in thermal mass to respond to changes as quickly as you wish to measure. You may well end up with just average while the thermocouple undergoes a slower response.
Logged

Pages: [1] 2   Go Up
Jump to: