abdoalghareeb
Member level 5
My project is control of Muffle temperature by stable temperature rate rise .
I use Atmega64 , thermocouple temperature sensor, 1800 watt heating coil (8A at 220 V AC).
The driver circuit can change the current of heating coil by Accuracy 0.08 A (in the program code the set value changes from 0 to 100).
I use codevision compiler.
let's define temperature value as (T) , temperature rate rise as (R_R), current set point as (A).
I need a simple Algorithm for rise the Muffle temperature from 500 to 900 Silesius degree by a stable rate rise ( 60 degree per minute for example)
This is my simple code , I read the temperature every 5 seconds and compare with last value . this difference must beqal to 12 (60/5 = 12 C/5_sec).
but the result was not accurate (54 for first minute , 56 for second minute ,57 for third minute ) .
Another problem if I set the Rate Rise to small value.
I use Atmega64 , thermocouple temperature sensor, 1800 watt heating coil (8A at 220 V AC).
The driver circuit can change the current of heating coil by Accuracy 0.08 A (in the program code the set value changes from 0 to 100).
I use codevision compiler.
let's define temperature value as (T) , temperature rate rise as (R_R), current set point as (A).
I need a simple Algorithm for rise the Muffle temperature from 500 to 900 Silesius degree by a stable rate rise ( 60 degree per minute for example)
This is my simple code , I read the temperature every 5 seconds and compare with last value . this difference must beqal to 12 (60/5 = 12 C/5_sec).
but the result was not accurate (54 for first minute , 56 for second minute ,57 for third minute ) .
Another problem if I set the Rate Rise to small value.
Code:
if (5_sec) //this flag set to one on every 5 seconds ( in service routine of timer1 interrupt)
{
5_sec=0;
R_R = T-last_T;
if (R_R<12) A=A-1;
if (R_R>12) A=A+1;
last_T=T;
}