Dear Sir, My name is Heywwod Garth. I have been working on an 8 bit PID temperature calibrator for
weeks. I have come very close to completion but am having issues with the high temp side of the
scale. The temperature/PWM curve becomes very steep during this very non-linear area as the
graduations between degrees become smaller and thermal runaway occurs. I started on a very involved
project 4 years ago and picked a 16f877a pic to be the backbone of the endevour. I was in-experienced
with the pic previous to this project and if I had known the difficulty I would have with the 8 bit
limitations when it came to temperature control I would have chosen a 16 or 32 bit MCU. This being
said I will give you a synopsis of the temp control progress to date.
I am a very slow typist and mis-spell quite frequently so please forgive this. I would really like to
speak with you over skype if possible. I need a temperature calibrator that will calibrate the
temperature of a pwm controled heater mounted in an herbal vaporizer. the herbal vaporizer has an
embedded 16f877a MCU. I am using the cpu for many funtions onwe of which is the temp control of the
ceramic heater core. Mounted below the core is a thermistor which responds to temperature variations
and alters the PWM control portion of the MCU through an a2D input and controls the power to the
heater core thru pin RC1 to a optocoupled mosfet. All this works fine but each unit needs to be
calibrated during initial testing and burn in and this is where the temp calibration code come in to
play. The temperature calibrator will be housed in a separate box and have its own mcu, display and
associated harware. it will connect to the unit under test
via a 3 wire i2c serial cable. I have another separate temperature measuement instrument which I am
using via a thermocuple probe attached to the heater core which reads core temp and sends the data to
the calibrator via rs232 serial interface. The calibrators mcu is prgrammed in assembly, and
acontains a section that decodes the rs232 data and displays the temperature in decimals on an
mutiple 7 seg display row. It increases the PWM frequency 1 bit, waits for the temp to
stabalize,repeats this cycle until the temp has increased 10 degrees and the burns the 8 bit PWM
value to onboard eeprom which the vaporizer will look up like a table and retreive based on the
customers temp setting.
It also has a section that converts the decimal to hex 0-256 which equates to 0-256 degrees F. This
is where the 8 bit word limitation becomes a problem. The heater core is adj from 0-550 degrees F.
After 255 the dec to hex converter rolls over to 0 again. I made code that works perfectly up to 256
degrees but then had to modify it to handle the higher values which invoved seting flags and counters
and delays. I even succede at this untill the temp above 500 degrees when the pwm input values become
very small and 1 bit exceeds 1 degree of temp change and non linearity becomes a monster. I tried
working around this graduation the temperature in 10 degree incraments which helped but I still had
issues with overtravel and failure to burn each 10 degree value to onboard eeprom, not to mention 2
hr long calibration times. Going back to the drawing board it seems i need one or more the following:
The decimal to hex conversion section needs to convert the ascii 3 digit to TWO eight bit words which
would be easier to work with in the later code with less flags, counters and delays.
I am using the right justifyed section of the 11 bit a2d address which when fed into the PWM buffer
works fine until the highest temps. The numbers become very small 15-2 and the temp curve is very
steep below 10 and the overtravel even with 1 bit increments is excessive. Maybe some modification
could be done with the PWM output, gateing or somthing to improve stability?
I can send you all the code, pictures, data and descriptions you need but I would like to speak with
you over skype if possible first. My number is 828-484-4786.
After this project is complete I would like to replace the bulky old Industial Temperature measument
instrument with a handheld temperature meter that has a USB pc link to a computer but I am having
trouble analyzing the USB data packets to extract the serial data bytes I need. Would you be
interested in that endevour later?
Please email me or call if interested.