# [SOLVED]2 degree problem with +0.1% constant temperature oven

Status
Not open for further replies.

##### Full Member level 3
2 Degree problem with +0.1% constant temperature oven

Hello there!

i am building a 40°C to 100°C +1% oven for drying organic material at a constant Temperature.

Oven consist of 4 Heating Nichrome (NiCr) Rods.
A 10K thermistor (replaced with LM35).
ATMega328 & LCD. MCU read the temp and cutoff supply to rods at set value.

my problem is when i Set my temp say at 50°C it cutoff the heating rods at 50°C but the rods still Radiate its Stored Thermal energy and i get temp at 52 or 53°C which is intolerable.

i need a constant +1% temp.

what should i do,
should i use a different type of temp sensor?
do i need more then one sensor?
or there is another way to do it?

Code:
#include <EEPROM.h>
#include <LiquidCrystal.h>
int tempPin = A0;  // make variables// thermistor is at A0
int led =13;
int tempf;
float temp;
float settemp;
int swtu = 7;
int swtd = 6;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte customChar[8] = {
0b00100,
0b01110,
0b11111,
0b00000,
0b00000,
0b11111,
0b01110,
0b00100
};

byte customChar1[8] = {
0b01100,
0b01110,
0b01100,
0b01110,
0b01100,
0b11110,
0b11110,
0b11110
};

byte customChar2[8] = {
0b01010,
0b01010,
0b11111,
0b11111,
0b01110,
0b00100,
0b00100,
0b00000
};

void setup() {
pinMode (led,1);
Serial.begin (9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("GC Buner ");

lcd.clear();
}

void loop() {
lcd.createChar(0, customChar);
lcd.createChar(1, customChar1);
lcd.createChar(2, customChar2);
float temp = (tvalue / 6.388888888889);
temp=(temp - 32)* 0.55555;
lcd.setCursor (0,0);
lcd.print("Temp= ");
lcd.print (temp);
//lcd.setCursor (0,8);
lcd.write(0b11011111);
lcd.print("C");
Serial.println (temp);
delay (250);

if
{
settemp ++   ;
}

else{  }

if
{
(settemp --);
}
else { }

if (temp > settemp)
{
digitalWrite (led, 1);
lcd.setCursor (14,1);
lcd.write((uint8_t)2);
///delay (750);
// lcd.setCursor (14,1);
//lcd.print (" ");
//delay (750);
}
else
{
digitalWrite (led,0);
}

lcd.setCursor (0,1);
lcd.print ("Set = ");
lcd.print (settemp);
lcd.write(0b11011111);
lcd.print("C");
Serial.println(settemp);

EEPROM.write (1,settemp);
lcd.setCursor (15,0);
lcd.write((uint8_t)1);
lcd.setCursor (15,1);
lcd.write((uint8_t)0);

delay (250);

}

#### FvM

##### Super Moderator
Staff member
Re: 2 Degree problem with +0.1% constant temperature oven

You have designed an on-off controller which will never be able to keep the actual temperature within a small error band.

You need proportional heater power control (e.g. using PWM) and a PI or PID controller.

##### Full Member level 3
Re: 2 Degree problem with +0.1% constant temperature oven

You have designed an on-off controller which will never be able to keep the actual temperature within a small error band.

You need proportional heater power control (e.g. using PWM) and a PI or PID controller.

should i use arduino PID lib? how to calculate/compensate Stored Thermal energy in NiCr Road?
can i use 2 different sensor for more accuracy?

#### FvM

##### Super Moderator
Staff member
Re: 2 Degree problem with +0.1% constant temperature oven

should i use arduino PID lib?
Or any other PID library available to you.

how to calculate/compensate Stored Thermal energy in NiCr Road?
Not necessary when using a PID controller. Internal states, e.g. stored energy would be used in case of a state space based controller which might be applied to hard to control complex processes. To allow me an ignorant guess, it's completely over your head.

can i use 2 different sensor for more accuracy?
To achieve what, particularly? Two sensors could be used to implement a cascaded controller, e.g. an inner controller for the heater temperature and an outer controller for the actual target. Might be reasonable if the heater can't be precisely controlled by just the manipulated value, e.g. in case of a gas burner. An electric heater as a well known characteristic and don't need this stuff.

Your first post clarifies that managing the basic control theory (single loop PI or PID) is your next step.

#### KlausST

##### Super Moderator
Staff member
Re: 2 Degree problem with +0.1% constant temperature oven

Hi,

I agree with FvM.

The differential part makes to decrease the heating energy (rod temperature) BEFORE your oven reaches the setpoint temperature (50°C).

Example: from room temperature to 45°C the rod has full heating power = 100%. And maybe at 48°C it decreases the heating power to 50%.
The higher the rise rate and the closer the oven temperature is at the setpoint temperature the more it decreases the power.
This compensates for the stored heating energy in the rods.
***

The integral part eliminates regulation offset caused by the proportional regulation part.
***

Klaus

#### andre_luis

##### Super Moderator
Staff member
Re: 2 Degree problem with +0.1% constant temperature oven

or there is another way to do it?

An immediate workaround to reduce the oven temperature deviation could be achieved by splitting the heating ellement into 2 parts or more, controlling them independently. This way you would be able to quickly rise the temperature at the beggining of the process heating both, but after certain threshold performing the steady control by driving less power with just one of them, therefore having a smaller temperature "ripple". The suited scenario would be having different power heating values, one for hard control, and other for fine control.

##### Full Member level 3
Re: 2 Degree problem with +0.1% constant temperature oven

An immediate workaround to reduce the oven temperature deviation could be achieved by splitting the heating ellement into 2 parts or more, controlling them independently. This way you would be able to quickly rise the temperature at the beggining of the process heating both, but after certain threshold performing the steady control by driving less power with just one of them, therefore having a smaller temperature "ripple". The suited scenario would be having different power heating values, one for hard control, and other for fine control.

Thanks andre. it lowered it to +-1C which may work around I think. i am also thinking of using traic.... thanks

- - - Updated - - -

Or any other PID library available to you.

Not necessary when using a PID controller. Internal states, e.g. stored energy would be used in case of a state space based controller which might be applied to hard to control complex processes. To allow me an ignorant guess, it's completely over your head.

To achieve what, particularly? Two sensors could be used to implement a cascaded controller, e.g. an inner controller for the heater temperature and an outer controller for the actual target. Might be reasonable if the heater can't be precisely controlled by just the manipulated value, e.g. in case of a gas burner. An electric heater as a well known characteristic and don't need this stuff.

Your first post clarifies that managing the basic control theory (single loop PI or PID) is your next step.

thanks for your keen interest and support!
only on thing to consider I am Botanist (my recent research is on an unknown plant for which this oven is needed) not electronic Engineer:wink: .... any thing about electronic which I know, learned it from this forum from beginning point zero to this stage since my membership. so that's true that PID is way head of me:bang:

Status
Not open for further replies.