Tried it again with short mash and boil cycles and it worked fine thanks to your code change.
Could I please ask you to show how to change the following parameters or maybe change the code and PM or email to me.
These are specific to my system and may not suit every one.
Change default boil temp to 102degrees C (when set at 98 my heat cuts out before boiling starts)
Change the pump to cut out at 90 degrees C (currently the pump cuts out just before boiling starts)
I think these will suit a 30 litre boil with 2400 watt element nicely.
Cheers
Paul
to change the pump and the timing start, it is in the pump rest function
void pump_rest (int stage)
{
if (stage==9){
pumpRest = false;
if (Temp_c<94.0) digitalWrite(Pump,HIGH);
else digitalWrite(Pump,LOW);
if (Temp_c >= 95)tempReached = true;
}
else{
pumptempError = stageTemp-Temp_c;
if (pumptempError <= 0)tempReached = true;
if ((pumpTime < 10)){ // starts pumps and heat
digitalWrite(Pump,HIGH);
pumpRest =false;
}
if ((pumpTime >= 10)){ // pump rest
digitalWrite(Pump,LOW);
digitalWrite(Heat,LOW);
pumpRest = true;
if(pumpTime>=12 || (pumptempError > 1.0))pumpTime = 0;
}
}
}
and to change the set temperature for the boil would be in the auto mode function
void auto_mode (void)
{
load_stage_settings();
load_pid_settings();
check_for_resume();
if(!(resume)){ // if starting a new process prompt for water
prompt_for_water();
wait_for_confirm(autoEnter);
if(!(autoEnter))return;
pump_prime();
EEPROM.write(49,0);
x = 0;
}
if (autoEnter){ // mash steps
EEPROM.write(35,1);// auto mode started
for (int i = x;i < nmbrStgs;i++){
EEPROM.write(36,lowByte(x)); // stores the stage number for the resume
x++; // used to count the stages for the resume
tempReached = false;
get_stage_settings();
start_time();
stage_loop(i);
if (!(autoEnter)) break;
if( i==0 && autoEnter){ // at the end of the mashIn step pauses to add grain
add_malt();
if (!(autoEnter))break;
}
if(i==(nmbrStgs-1)&& autoEnter){ // at the end of the last step pauses to remove the malt pipe before the boil
remove_malt();
if (!(autoEnter))break;
}
Buzzer(1);
tempHAddr +=3; // increase stage addresses
tempLAddr +=3;
timeAddr +=3;
lcd.clear();
}
}
// start of the boil
if(autoEnter){
start_time();
stageTemp= 98.0; // set the intital boil temp to 98 deg c
tempReached = false;
get_boil_settings();
stage_loop(9,120,94);
if(autoEnter){ // finishes the brewing process
display_lcd(0,0," Brewing ");
display_lcd(0,1," Finished ");
Buzzer(3);
delay(2000);
EEPROM.write(35,0); // sets auto start byte to 0 for resume
EEPROM.write(49,0); // sets hop count to 0
mainMenu=0;
autoEnter =false;
resume =false;
}
}
}
cheers steve