I am running my wood stove draft control via a servo. I am using a thermocouple connected to a MAX6675 ADC. I have a fluke meter taking temp reading next to the thermocouple installed in the supply duct. The project works ok except that when I compare temp output reading from the thermocouple on the serial monitor, there is quite a large difference between the actual temp (Fluke reading), and the serial monitor output value. The temperature ranges I'm working with are between120F and 135 Deg F. At 120 Deg F the difference is around 9 Deg, and at 135 the diff is around 3 Deg. Is there a way to minimize the gap ? Or, What is the best Thermocouple to use in these temperature ranges using the Max6675.
TT:
Thermocouple wire is very pure, the junction (bead) is the hot-end and often in a protective tube.
The wires from the hot-end can go 2 ways .. quality and cheap:
Compensating cable is made from cheaper alloys than extension cable. Where extension cables contain thermocouple elements, and can be used to manufacture thermocouples, compensating cables contain alloys that only have a similar temperature vs EMF relationship to its extension cable counterpart over a limited range.
Everything in the circuit from the hot end to the cold-junction (terminal block) is just physics. But, the terminal block, mounting, and thermocouple amplifier are critical. With excellent sensor and professional construction, the manufacture's specs can be realized:
The MAX6675 performs cold-junction compensation and digitizes the signal from a type-K thermocouple. The data is output in a 12-bit resolution, SPI-compatible, read-only format.
This converter resolves temperatures to 0.25°C, allows readings as high as +1024°C, and exhibits thermocouple accuracy of 8 LSBs for temperatures ranging from 0°C to +700°C.
From the picture, I can see terminals on the wire that are NOT proper for thermocouple wire. Is this your wire, or do you have the proper connector on your wire?
Paul
Yes that is the actual wire I purchased. The terminals are connected to the MAX6675 screw clamps. I assume that it is sufficient. I have the Max powered by the 3.3V on the NANO, and the servo is powered by the 5V. Maybe I need to set one of the pins HIGH and provide 5V to the MAX6675.
If that photo represents the actual module you have, it looks like the cheap modules one buys on eBay or Alibaba.
You can never trust those, and probably have a counterfeit, poor imitation or factory reject chip.
If you want to make reliable measurements, buy your parts from a reputable supplier. The one I linked from Adafruit is supported and guaranteed to be genuine.
TBH, if you're running at temperatures around 135F, I'd use a semiconductor sensor instead. Cheap and accurate. A DS1820 or an LM34, etc., would work fine.
i use one of them in my wood heater damper control and its easily accurate enough.
absolute temp is not all that important its the delta t {temp change} value that regulates the algorithm, if the room is too hot drop the set point a little or vice versa
no need at all to work in absolutes
i might add they may not be accurate but they are precise
My damper control is a simple crank shaft operation where from 0 deg home posn the damper is closed at 180 deg its fully open , it rotates in one direction only , the only feedback on damper posn is a home switch at 0 deg, the 180 deg point is a timed move.
The control method is bang bang on heatbox temperature, the damper control esp8266 measures this temp and also and runs as a simple web server providing a control point for node-red.
A node-red box takes in room temp, outside temp and firebox temp to decide
bang bang setpoint and damper position. it can also run with a manually set setpoint.
mode of operation and or setpoint are set via Alexa or a node-red dashboard.
i have found pid control of wood fires to be ineffective, wood and fire behaviors are too inconsistent, this bang bang method has worked brilliantly over the last two winters and is so much simpler than pid, the added bonus is it keeps the flue cleaner also
@racpi makes a good point. Absolute accuracy is not important if the sensor makes repeatable, stable measurements, in which case you always figure out a calibration curve, if desired.
Wow, that sounds very complex, but it is probably pretty simple if you know that stuff. I am just getting into Ardunio, and working with simple code using delays if and else and stuff like that. Maybe someday with a lot of research I will be able to develop something similar.
the first step is getting the mechanics simple and reliable
imho servos and heat and safety don't mix , i started with a servo it did not last long before trouble set in. a 12v turbo 10 rpm worm gear (ar-la ebay) motor draws 20mA @3v and has heaps of torque, stalls @80mA approx, no heat no danger no prgm crash on shared supply , a typical 5v servo 2A when stalled. i would not trust a servo for unattended operation esp on a shared supply