Home Brew Forums > Home Brewing Beer > Automated Brewing Forum > Pano-Matti, my Arduino based controller




Reply
 
LinkBack Thread Tools Display Modes
Old 12-13-2012, 08:36 PM   #1
Feedback Score: 0 reviews
Recipes 
 
Join Date: Feb 2011
Location: Dunedin, Kalevala
Posts: 62
Liked 12 Times on 7 Posts
Likes Given: 6

Default Pano-Matti, my Arduino based controller



Vesku is offline
Mpez Likes This 
Reply With Quote Quick reply to this message
Old 12-26-2012, 08:07 PM   #2
Feedback Score: 0 reviews
Recipes 
 
Join Date: Feb 2011
Location: Dunedin, Kalevala
Posts: 62
Liked 12 Times on 7 Posts
Likes Given: 6

Default



Vesku is offline
 
Reply With Quote Quick reply to this message
Old 12-28-2012, 11:29 AM   #3
Feedback Score: 0 reviews
Recipes 
 
Join Date: Jan 2012
Location: Sherwood, Arkansas
Posts: 571
Liked 30 Times on 29 Posts
Likes Given: 4

Default

Im assuming you are using the Arduino PID library in your code, Im doing the same and about to finalize my build. Ive heard people have had trouble setting the parameters for the PID, any chance you can post what your coefficients are.
__________________
Primary: Dragon's Breath, Octoberfest
Secondary: None
Bottle Conditioning/Carbonating: None
Kegged: That's Whate She Said, Aphrodite's Potion
Bottled: None
Next Brews: Hop n Pop #54, Dionysus' Ambrosia

Check out my Android Brew Day Assistant BrewAide
Adeering is offline
 
Reply With Quote Quick reply to this message
Old 12-29-2012, 08:59 PM   #4
Feedback Score: 0 reviews
Recipes 
 
Join Date: Feb 2011
Location: Dunedin, Kalevala
Posts: 62
Liked 12 Times on 7 Posts
Likes Given: 6

Default

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;
}
Vesku is offline
 
Reply With Quote Quick reply to this message
Old 12-31-2012, 02:55 PM   #5
Feedback Score: 0 reviews
Recipes 
 
Join Date: Sep 2011
Location: San Diego, CA
Posts: 180
Liked 7 Times on 6 Posts

Default

Quote:
Originally Posted by Vesku
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".
This code doesn't make sense, most likely because your not showing enough of it. Lets break it down.

Quote:
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.
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?

Quote:
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;
}
Ok here you show part of a functional state machine except this on isn't functional because you are missing a state. Somehow you start with onOff = 1 but you never show how it gets set to 1. Similarly you don't show your state where onOff = 0. I'm assuming that you set onOff to 1 at the end of that state, but what else do you do in that state?

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?
crane is offline
 
Reply With Quote Quick reply to this message
Old 12-31-2012, 03:10 PM   #6
Feedback Score: 0 reviews
Recipes 
 
Join Date: Mar 2009
Posts: 832
Liked 4 Times on 4 Posts
Likes Given: 3

Default

I agree that after watching the videos I don't particularly understand how your system software works, but they do a good job of showing that it works very well. I particularly like your setup of a hood that fits directly over your boil kettle. It's a very good idea that I might steal.....
BenS is offline
 
Reply With Quote Quick reply to this message
Old 01-01-2013, 07:57 AM   #7
Feedback Score: 0 reviews
Recipes 
 
Join Date: Feb 2011
Location: Dunedin, Kalevala
Posts: 62
Liked 12 Times on 7 Posts
Likes Given: 6

Default

This is my 1st ever software that I've done ... there's about 2000 rows of code, I'm not going to share that here, but I hope that even a part that doesn't make any sense makes someone think better ways to do it

I use 2 sensors to control the mash temp ... The wort off set depends how close to the setpoint the mash is.

Here's more, this should be easy enough to understand?


Vesku is offline
 
Reply With Quote Quick reply to this message
Old 01-01-2013, 08:16 AM   #8
Feedback Score: 0 reviews
Recipes 
 
Join Date: Feb 2011
Location: Dunedin, Kalevala
Posts: 62
Liked 12 Times on 7 Posts
Likes Given: 6

Default

Quote:
Originally Posted by crane View Post
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?
The actual control is done by wort and mash temperatures. This one controls how much hotter than the setpoint (for the mash) the wort can be.

Quote:
Originally Posted by crane View Post
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?
It's a counter flow HX herms. I'm using pump to control the heating. Of course there's a basic ON/OFF control for the heat source too (HLT).

Quote:
Originally Posted by crane View Post
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?
Sorry, I suck with the camera / editing.

I've small array of buttons, UP/DOWN/OK/LEFT/RIGHT. It's under the display. They are all behind one interrupt.

There's going to be a 3rd pump dedicated to the whirlpool as soon as my scrapyard dealer gets one that is suitable.
Vesku is offline
 
Reply With Quote Quick reply to this message
Old 01-02-2013, 08:42 PM   #9
Feedback Score: 0 reviews
Recipes 
 
Join Date: Feb 2011
Location: Dunedin, Kalevala
Posts: 62
Liked 12 Times on 7 Posts
Likes Given: 6

Default

A plot of the latest mash. One of the temp probes is playing up and dropping to zero once in a while, I need to replace that.



Vesku is offline
 
Reply With Quote Quick reply to this message
Reply

Quick Reply
Message:
Options
Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Arduino Based Beer Monitor System brewn00b4 DIY Projects 32 04-03-2013 03:06 PM
New Open Source Arduino Based PID Controller Released bendiy DIY Projects 9 02-11-2013 08:33 AM
PID settings on arduino based hlt SimBrew Automated Brewing Forum 64 01-27-2013 05:56 AM
Automated Electric Arduino Based Brewing System stockmaster Automated Brewing Forum 1 09-12-2012 12:11 AM
1/16 DIN Arduino Based Timer/Logger bolts Electric Brewing 5 05-16-2012 07:35 PM



FOLLOW US ON