Vesku said:I don't use the PID-library. I've my own simple algorithm that calculates the heating power (pump ON-time, I've a counter-flow HERMS) based on the wort and mash temperatures. I like it this way, I can set the heating ramp what ever way I want. I've another script that takes control when the mash temperature is in "range".
The ramp is done like this:
// offset < 5C
if (setTemp/10 - mash < 5)
{wortOffSet = 5;} ... and so on, as many offsets as is needed, I've 5.
The pump-ON time limiter:
if (onOff == 1 && lastPumpRun > 0 && (millis() - lastPumpRun) > 3000 && (setTemp/10 - mash) < 0.5) // after X sec pump off
{bigPumpOff();
onOff = 2;
pumpRun = millis();
}
if (onOff == 2 && (millis() - pumpRun > 30000)) // after X sec pump back on
{
onOff = 0;
pumpRun = 0;
}
It looks like you have different offsets depending on how far your actual temp is from the setpoint? What do you do with wortOffSet? What are your other offset values? Is it 4 when you are within 4 degrees?
Step back and give us a higher level description of how your system works. Are you keeping your heating element on 100% of the time and regulating your mash temp by turning on/Off a pump that circulates wort through a HERMS coil?
The videos you posted are a little hard to follow. You show a lot of stuff really close up but you never show how things are connected or even a clear shot of your control panel to see what you are using for input. Are you using a rotary encoder like the brewtroller or a set if discrete buttons? How is your system plumbed, number of pumps, valves, etc?
60ml drift - what's that, somewhere under 1%? Doesn't sound too bad anyway.
Enter your email address to join: