Something simple to build and calibrate, and precise enough for my purpose.
I thought LM35 could be fine.
If you calibrate it then you should be ok (otherwise the datasheet suggest
the accuracy will be around 0.75 degrees).
Maybe it could be better if applied on a aluminium heatsink, to increase the
thermal exchange surface. Or is it a bad idea?
Personally I doubt you can get +/- 0.1C control overall but circulating the
water as you describe is the right way to go. Adding a heat sink reduces the
time constant but hopefully you aren't looking for rapid temperature changes
with no overshoot - just steady state accuracy.
Try this for a starting point of a design...
http://www.elecdesign.com/Files/29/2476/Figure_01.gif
Description here
http://www.elecdesign.com/Articles/ArticleID/2476/2476.html
As shown it would only give control to around 1C but you could improve this
by changing the gain of the input amp and rescaling the ADC. Currently the
input amp has a gain of 2 so that 0-150C at the sensor maps to 8 bits of the
ADC range. If you change the gain to 6 that would map 0-50C to the 8 bit
range. This would give a resolution of 50/256 = 0.2C. That's not enough to
meet your 0.1C spec but you could further improve this by using more bits of
the ADC (eg 9 bits or all 10 bits). Notes: I've not checked that all 10
bits of the ADC are "usable" on the micro they specify. Nor have I looked to
see what language they wrote the code in - if it were C rather than
assembler you would have to find yourself a compiler. The assembler is free
I believe.
You might also look at using the LM35C or LM35CA part - if I've read the
data sheet correctly these have better linerarity.
The PIC 16F8xx series are easily programmed using a home made in circuit
programmer - essentially this is just a modified serial cable connected to
the serial port on a PC.
There is a huge community of engineers using the Microchip PIC series so
it's not hard to find guides on how to get started programming these
devices. The PIC web site is:
http://www.microchip.com
Colin