Thanks for your replies, it is nice to know someone is reading my posts!
I like the platform as well. I am currently using a genuine UNO Rev3. I got it at Microcenter for about 15.00. When I was there recently, they had clones on sale for something crazy like 5 or 6 dollars. The regular price for their clone is 9.99. With the Arduino price points where they are, it is hard to go wrong trying something.
My hardware profile will be quite simple. There is the Arduino board, an I2C 4X20 LCD from Sainsmart that I bought at microcenter. It only 12.99 and ready to plug right into the board. The LCD I have has only two analog inputs plus ground and power. It was pretty easy to get is working, there are some LCD products out there for which it is very difficult to find working software libraries
The rest of the I&O profile includes: 1 rotary encoder with pushbutton switch (three digital inputs), one on/off switch (one digital input), one or more analog temperature sensors (one analog pin each), and one digital pin to a SSR.
I just ordered some TI LM34 sensors, they seemed to be the most accurate and readily obtainable heat sensors available for a reasonable price. They are pretty easy to program for the inputs, I think (I did it once a few years back).
The program structure is rather simple: inside the main loop is an if/else statement. If the on/off switch is in one state, the mash function runs (with PID). The temperature setpoint is adjusted by rotary encoder and selected by clicking the pushbutton on the rotary encoder.
The other switch state causes the else statement to run. The duty cycle is entered with the rotary encoder and that controls the output to the heating element (ranging from 0-100%). That is it!
The pump till run continuously during the mash cycle.
If anyone has experience with Brett Beauregard’s PID code I have a few questions. I lifted the output statements (to the SSR) from his PID_RelayOutput sample. And the on off switching appeared to be flipped (it was off, when I wanted it on, and on when I wanted) so I swapped the HIGH and LOW commands in the digital write statements. When I implement that code in my final revision with the PID, how can I tell if it is running the right direction (off when the algorithm says it should be off, and on when the algorithm says it should be on)?
Also, I have no tuning loop, I plan to tune the system using a sketch just for that purpose. Does that make sense? Tuning tips would be very helpful! I will post pictures when I have it assembled.
I’m glad to see someone else is thinking of this. BTW, Blichmann has a nice series of coiled heating elements that come with a proper mounting system. It makes converting to electric easier because they come in many sizes. They also have a 120V element for those without access to 220V.