Wednesday, June 25. 2008
I prototyped and tested Adrian's proposed circuit for using the resistance of the Nichrome 60 heater on Tommelise's extruder barrel to measure its temperature...
Quite
some time ago, Vik Olivier suggested that it should be possible to use
the resistance of a Nichrome heater wire to also measure the
temperature of what it was heating if one were clever enough. A few
days ago, Adrian Bowyer published a circuit design that could make that
possible. I intended last weekend to do a lashup of the circuit to see
if it would be of use in my next generation extruder design for
Tommelise 2.0. Because of some other firmware issues that took longer
than I expected I didn't get around to cobbling the circuit together
till yesterday. It seems to work quite nicely.
A little background, first. While, I've been quite addicted to the
notion of a single control board design for literally years now, I
recently decided for convenience to have a main controller board run
the positioning system and another, smaller board run the extruder(s).
The reason for that change was more practical than philosophical. I
knew very well what was needed to run the positioning system. The
extruder, thanks to the growing number of people making and using
Darwins with their Mk II extruder, had entered a period of rapid
evolution. What with dribble controls, encoding the pump shaft
rotation and now this nice new proposal for measuring extruder
temperature, it seemed to me that it would be good to just freeze the
main control board design and put another microprocessor to work just
looking after the exturder(s). In my design the two boards would talk
to each other via a I2C link, a technology that I've recently had a lot
of experience with in setting up my EEPROM buffer.
To that end I put an add-on board to handle Adrian's circuit onto my old 18F4550 prototype board. You can see the lashup here.
The yellow circle at the top of the pic encloses the actual barrel
extruder barrel. The red circle in the middle marks the add-on board
and the brown circle at the bottom encloses the 18F4550 prototype
board.
Looking more closely at the add-on board (yellow circle) I've marked
the two transistors that are TIP 122's in Adrian's design and BD681's
in mine. The green circle right beside them encloses a relatively high
wattage 1.6 ohm resistor a handfull of which I bought to build up
Zach's stepper controlled board and then never did. I couldn't
understand why Adrian put the 220 ohm resistors between the transistors
and the microcontroller, so I left them out. Mind, I expect that there
is some very good reason and I'll find myself putting them back in at
some point. Mostly, I didn't have any 200 ohm resistors in my supply
drawers, so, since I hadn't used any such thing heretofore I omitted
that part of his design.
The Tommelise extruder heater is rated at 6 ohms. Figuring a nominal
voltage to the heater of 12v that means that I should read about 3.3v
at the sense point when the system is cold. Resistance for Nichrome 60
at 250C is about 1.15 times its resistance at ambient. What that means
is that the voltage measured should drop about 0.34v over a range of
about 230C. Given that the 18F4550 has a 0-5V range, 10 bit A/D
circuit on-board what you are looking at is about 3.3C resolution for
this kind of temperature measurement.
While I've not had time to design the firmware I did a cursory test of
the circuit manually by tapping the extruder heater with a 5v supply
source and then quickly measuring the voltage on the other side of the
circuit with a digital meter after I'd disconnected the power input.
The voltages are moving in the directions that Adrian suggested, so I
suspect that my circuit is, more or less, right.
I fiddled with a range of resistor values for the 2.6 ohm one that I
was using and discovered that while I could move the cold voltage
measurement up and down fairly easily, there was relatively little
change in the range of voltage that temperature differences yielded.
Adrian suggested that one might want to put an op amp chip into the
circuit to get better resolution. Another way to approach this would
be to use a higher resolution A/D chip instead. Microchip offers both a
12 bit, I2C compatable A/D converter and a
16 bit, I2C compatable A/D converter for about US$1. That would get your resolution down to 0.8 - 0.05C. I
don't know why you'd want more resolution than that. Errors in other
part of the circuit would be much higher than that.
Given that I know how to make I2C comms work and next to nothing about op amps, that's the direction I'm likely to take.
|