PT100 sensor - help a beginner?

Maybe you would do better with a less ambitious sensor like the one in the page you link? Platinum resistance thermometers are unwieldy to use but are extremely reliable, repeatable and cope with high temperatures. For ordinary temperatures there are many other sensors that are simpler to deal with.

However if you want to learn about instrumentation amplifiers and wheatstone bridge circuits, go right ahead!

Well, I think that I'll just go and buy a DS18B20 http://www.lawicel-shop.se/prod/dig-therm-ds18b20-1wire_854351/Maxim--Dallas_55370/ENG/EUR and save myself a lot of frustration and time. Thanks for your answers guys!

Although it's the least of your problems, you seem to be reading an analog input pin that you haven't defined:

int tempPin=0;
...
float temp=(analogRead(pin)*5.0)/1024.0;

which probably explains why you are not getting a stable erroneous reading.

Hi!

Sorry to drop in to an old-ish thread, but my question seems highly relevant to this and I thought it's better to keep things together.

Anyway. I'm quite a beginner with Arduinos (and C/C++ in general), but I love tinkering with things and programming, so...

Long story short, I'm "pimping up" a toaster oven (yes, laugh if you will, I did), and I pretty much need a thermal sensor that can go up to 250C. I ordered a PT100+ (description said it is good from 0C to 400C) from ebay because they seemed to be dirt cheap for what they do.

But now that I read this, was that something I shouldn't have done? I mean, am I digging a hole for myself by trying to use that, or is that a viable thing to use just for measuring temperatures between 50C and 250C (maybe 100C-250C, haven't decided yet)? I'm looking for 1C accuracy, I don't need anything more, probably 5C would be ok.

Do you have any advice of what I should do when using that, or do you have any examples of what I should've bought instead that would be easier to use?

I thought that I'd just analogRead() that sensor (connecting it to 5V and GND also, I'd guess) and figure out what temperature is what reading and go with it. Would that not work?

For the temperature range you require, an RTD is a sensible way to go. Their main problem compared to the likes of the DS18B20 is that they require additional hardware, usually an amplifier and perhaps a multiplexer. There has been information here and at openenergymonitor.org.

Thanks for the reply. Is that additional hardware strictly necessary (meaning it won't work AT ALL without it)? Or can I just connect the sensor straight to arduino and have it work, somehow. As I'm just tuning a small oven, I could go with ~5C precision quite well. Also the 0..400C range is a bit overkill, but hey, it was around 3€ so who cares. If I go to bare minimum, I'd be well if it measured 50, 100, 125, 200, 225 and 250C points, wouldn't really need anything more.

Before I read anything I just thought I'd connect it similar to a potentiometer and have it return some range of numbers with analogRead(). Does it not work that way at all and an amp/multiplexer is required? (if so, any pointers to what I'd need to get. Preferable cheap as the cost so far has been really, really low. (iduino nano at ~6€ is the priciest part...))

The components required for an amplifier would be just a couple of dollars - an LM324 opamp and a few peripherals which could be assembled on a proto shield. This last would be the most expensive item. If you just want some crude relative readout, you may get by without them but, in that event, you may be better off with a cheapo thermistor.

I have managed to leave my PT100s on the shelf. The link I posted should have all you need.

Thanks again! I'll check out if I can find what parts I'd need.

But, you're correct. I would be okay with an "el cheapo" thermistor, but for the life of me, I can't find any online (ebay) that could handle 250C. They all seem to stop at 125C. I can't really by local, because... well, you wouldn't believe the prices if Id' show you a photo. I didn't believe them when I saw them with my own eyes. (for starters, the small metallic part in side a common jumper? 1,20€. ONE. JUST the metal. 0,80€ for the plastic. ONE 3mm ~3V standard red led? 3.50€. Yeah, I bought 20 bi-color LEDs for ~2€ via eBay...)

OK, if you can't find any thermistors good for +125 on eBay, they probably don't exist, and you are right to use the PT100 - again. Hopefully it didn't cost more than about $5 anyway. I really can't comment on their use without amplification. I needed the accuracy they can provide, it's just that I was able to use the DS18B20 and preferred to go that way. I think it would be better to go with amplification - the better support would probably justify the dollars.

Thanks, yet again. Yeah, I was just reading the link you gave me, and the schematic doesn't look too difficult to implement. A bit more work, but, hey, if I didn't like tinkering, I don't think the Arduino forums were the right place to be in the first place :slight_smile:

Anyway, the opamp and the multiplexer were really cheap parts (both were in the 0.20-0.30€/piece category), so I ordered a few of those already. The rest are just a few resistors, caps and a pot that I probably already have. I have a few pieces of breadboard lying around so I'll first build it there and see if I can scourge up something more permanent after that. I'll probably first try without the amp/multiplexer (simply because they take time to arrive) and see if I'm able to do without.

I just wish there'd be something as simple as a TMP36, but with more temperature range... well, anyway. Thanks for the pointers.

I might try putting the PTs I have into service, and I will be interested in hearing how you go. The dumb thing is that they are already installed in my equipment but they are just serving as screw-in plug!

If you plan on several, you might want to make up proto shield for them. This is by far the best deal on shields I have seen, and should bve very suitable. The headers have long pins.

http://www.ebay.com.au/itm/390544897854?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Yay, my sensor (finally!) arrived (that's what you get from ordering overseas via ebay...), and I got to play with it. I connected it straight to the analog pin of my arduino (well, "straight", I of course made a voltage divider for it, otherwise it wouldn't much make sense..) and run a program to read the values - and it worked!

A few minutes of math later I had a (very) rough temperature meter working. The normal 0-5V reference is way too much for the sensor (that at my current resistor values, outputs something between 0.44 and 1.39V when fed the arduino 5V). Luckily there were two facts:

  1. I won't ever be hitting the 1.39V limit of the sensor, because that would need 850C temperature. I'd at MOST be hitting 300C which is about 0.86V)
  2. Arduino has an internal 1.1V reference voltage capability.

By setting my reference to that 1.1V (on a mega you need INTERNAL1V1 and not just INTERNAL) I got a reasonably accurate meter just from the sensor and a couple of resistors, no need for op-amps or anything. Because I will be using this in a normal baking-oven project, I don't need that accurate readings. The cake won't care if the oven is at 225C or 223.4C... :slight_smile:

AnttiV:
By setting my reference to that 1.1V (on a mega you need INTERNAL1V1 and not just INTERNAL) I got a reasonably accurate meter just from the sensor and a couple of resistors, no need for op-amps or anything. Because I will be using this in a normal baking-oven project, I don't need that accurate readings. The cake won't care if the oven is at 225C or 223.4C... :slight_smile:

Glad to see it worked out so simply. I have decided to use mine after all but I need the accuracy and am only working 1 > 40C, so I am just planning a board to take the amplifiers etc.

A 'little' late, but based on "just started to give me strange values in the Serial Monitor (in the range of 70-90)" in the first post, wasn't it simply giving Fahrenheit instead of celcius (roughly 20-30)?

I need to measure the temp of a water solution with 1 decimal accuracy, so it needs to be waterproof as well. That means in my case the PT100 is the way to go right?

Xartec:
I need to measure the temp of a water solution with 1 decimal accuracy, so it needs to be waterproof as well. That means in my case the PT100 is the way to go right?

No, and not necessarily.

It is commonplace to put temperature probes into thermowells. No waterproofing needed.

Now that we are in the 21st century, I'm not sure you would ever use a PT100 in favour over the DS18B20 unless you had persuasive reasons in the light of the shortcomings of the latter.

The DS18B20 operates from -55 to 125C. I don't know what the range of the PT100 is, but it's a lot more.

I believe the fastest rate at which the DS18B20 can return data is about once a second. This is because it essentially talks in plain english while the PT100 is just a resistor and therefore can be read faster.

While the DS18B20 can be had in a waterproof capsule, I have never seen one sensibly usable in a high pressure fitting. The PT100s I have are are a common type, being 1/4" BSP screw-in devices and are OK for use wet in mains-pressure water service.

Against this, the PT100 usually costs more and involves more peripheral electronics.

Since now I'm used many DS18B20 but at the end I was never happy, because it is just to fragile. Meanwhile there is an cheap 22bit AD from Microchip out. With it you may just buy two additional resistors and you have a much better circuit with a range from -200°C ... 800°C with about 0.1°C deviation.

http://forum.arduino.cc/index.php?topic=164643.msg1229078#msg1229078

AnttiV:
Yay, my sensor (finally!) arrived (that's what you get from ordering overseas via ebay...), and I got to play with it. I connected it straight to the analog pin of my arduino (well, "straight", I of course made a voltage divider for it, otherwise it wouldn't much make sense..) and run a program to read the values - and it worked!

Just to make sure, you connected it as one would connect any other thermistor? Care to post a sketch of what worked for you as a reference?

TIA,

AnttiV:
Do you mind share your code and circuit with me?, I am trying to to use pt100 in between -40C ~ 400C.

Have a look at MAX31865 chip, designed for PT100/1000