| ??? 03/16/03 03:55 Read: times |
#41628 - RE: PWM related. PDF from Philips Responding to: ???'s previous message |
A very good way I have found to control a heater is use a PWM like you suggested. Some type of driver will switch the heater full on or full off. The PWM then controls the heater switch so that the drive duty cycle to the heater follows the on/off character of the PWM waveform.
Then you need some type of sensor to measure the temperature being generated by the heater. The sensor could be any of a thermocouple, a thermister, a 1N4148 diode biased at 1mA constant current, or one of the various types of integrated sensors built by the likes of National or Dallas. It is common to arrange the temperature sensor to translate the temp reading to digital format using some type of OpAmp conditioner circuit then driving an A/D converter. Resoultion of the A/D converter will depend in large degree to the range of temperature you are trying to measure and the number of degrees/step over the control range. If you pick one of the modern integrated solutions it may offer the temperature directly in a digital format via an I2C or OneWire© serial interface. The reading of the temperature sensor is the SENSE_POINT. The third thing that is needed is some type of parameter that controls the SET_POINT for the temperature. This should be a variable that has its characteristics, ie range, offset, and scale equivalent to the SENSE_POINT readings. To control the temperature I normally set up a low speed task (can run as slow as 5->10 Hz rate) that can be scheduled based on a software timer (see here for what I mean by software timer). This task has the job of reading the SENSE_POINT temperature and comparing it to the SET_POINT temperature and setting the PWM duty cycle accordingly. If the SENSE_POINT is above the SET_POINT the PWM duty cycle is set to minimum or OFF. If the SENSE_POINT is lower than the SET_POINT then more heat is required and so the PWM should be set accordingly. I generally use a Look Up Table (look here for discussion of look up tables (LUT)) to determine the PWM setting. The index to the table is the difference of SET_POINT - SENSE_POINT. The content within each entry in the table can conveniently be directly the timer setting needed to produce a particular PWM duty cycle. The use of a LUT makes it be very easy to have a non-linear transfer function for the PWM control. At low table indexes (ie temperature very close to desired setting) the step size from one table entry to the next can be made small. At higher table indexes the table entries can have steps from one entry to the next that are much larger. None the less the values within the range of table entries are selected so that the minimum values set the PWM so that the heater is barely on whilest the upper indexes of the table should approach the drive duty cycle that defines the highest power level you wish to apply to the heater (whether that be 100% on or some lower duty cycle). Michael Karas |
| Topic | Author | Date |
| 80c552 pwm related. | 01/01/70 00:00 | |
| RE: 80c552 pwm related. | 01/01/70 00:00 | |
| RE: 80c552 pwm related. | 01/01/70 00:00 | |
| PWM related. PDF from Philips | 01/01/70 00:00 | |
| RE: PWM related. PDF from Philips | 01/01/70 00:00 | |
| PWM fine tuning - Michael | 01/01/70 00:00 | |
| RE: PWM fine tuning - Michael | 01/01/70 00:00 | |
| RE: PWM fine tuning - Michael | 01/01/70 00:00 | |
| RE: PWM fine tuning - Michael | 01/01/70 00:00 | |
| RE: 80c552 pwm related. | 01/01/70 00:00 | |
| RE: 80c552 pwm related. | 01/01/70 00:00 | |
RE: 80c552 pwm related. | 01/01/70 00:00 |



