Brewing heater element control


I am new to the world of Arduino and have never used one nor programmed one. I am interested in creating a controller based on an Arduino to control a 5500 watt heater element in my beer brewing boil kettle. I do not need full PID control. What I envision is a controller that uses a rotary encoder to tell the Arduino a value between 0 and 100 that would correspond to duty cycle for the heater element. The Arduino would control an SSR with an overall cycle time of 10 seconds. So 100% would be 10 seconds on and 0 off. 77% would be 7.7 seconds on and 2.3 seconds off. I would also like to include a digital dispaly that would show the duty cycle selected by the rotary encoder. Any help would be appreciated. I am comfortable working with hardware, soldering, and mains power but have zero programming experience.



You'd probably be best served by buying a ready made controller. An eBay or Google search for "PID temperature controller" will turn up lots of results at ~$30 and it's hard to compete with those prices when building from scratch. You would then just need a K type thermocouple (again, eBay etc.) and a hefty relay or SSR.

If you don't care for that rotary thing, you can use a pot + 555 timer for what you want to do.

If you think you do not need a PID controller to drive a 5.5kW heater element in a brewing kettle then I respectfully suggest you are are going to be disappointed. That size of element suggests a fair size of kettle (like several hundred litres). That bulk of liquid will be extremely difficult to temperature control without derivative control (rate of rise/fall). Full PID is essential and as already suggested by Chagrin, a full PID controller with SSR output, an SSR and a thermocouple (all readily available of e-bay for very little) are all you need. These controllers come with a self-tune facility which, once set for the bulk you are heating will maintain the temperature within 1degree. The attached example illustrates a complete kit :

I already have two Auber 1/16 DIN PID controllers for my HLT (water tank) and boil kettle. Both vessels are 15.5 gallons. I use the PID for fine temperature control in the HLT but the boil kettle does not need to be held at a specific temperature. It needs to be held at a constant boil rate and that is best done with duty cycle. The user interface with the PID is via the "up", "down" and "set" buttons. I find that as the wort approaches a boil there is a need to quickly adjust the duty cycle to the element from 100% down to 70% or so. The PID is not very user friendly for this kind of quick adjustment. The reason I want to be able to use a rotary encoder instead of a potentiometer is to have a tactile feed back from the knob. Cost is not really a problem either. I am more interested in having a system that works the way I want rather than save a few (hundred) dollars. Thanks for the help.

What you want to do is very straightforward to do with Arduino. First thing to decide is whether to use a character LCD display, a graphic LCD display, or two 7-segment LED displays:

  • Character LCD (e.g. 16 x 2 lines): easy to interface to the Arduino. Flexible, because you can additional functionality (e.g. add a temperature sensor and display the temperature on the LCD). The only extra component you need is a potentiometer to set the contrast, and possible a series resistor for the backlight. The characters are quite small.

  • Graphic LCD (e.g. 128x64 pixels): Nearly as easy to interface to the Arduino as the character LCD, however you can write characters of different sizes, so you can get bigger characters.

  • 2-digit LED display: limited to displaying just 2 digits, but the digits are larger than on character LCDs and brighter, so easier to read in poor light. If you run them at 10mA per segment then you can drive them direct from Arduino pins using series resistors. Or save pins by running them 2:1 multiplexed at 20mA.

You'll probably want to enable the watchdog timer to guard against the processor locking up and ruining your beer.


Classic case of asking a perfectly reasonable question but getting the wrong answers because not the full story was provided in the first instance.

That being the case, perhaps something like one of these might meet your needs

Thanks for the responses everyone. I would like to use a graphic LCD for the display. What Arduino board do you recommend? The SSR that I will be using needs a 4.5v signal to switch.

Any 5V Arduino board will be sufficient for what you describe. I suggest a Uno or a Leonardo.

Thanks for all the quick answers dc42. Could you please verify that the following hardware will work for my application?

Would it be possible to use a 7 segment display like this instead of the LCD screen?

Once again, thanks for all of your help.


Yes to all. However, the forward voltage of 1.9V quoted for the LED display on the Sparkfun page can’t be right for a blue display. The figure on the datasheet (2.99 to 3.10V) is much more plausible.

Those LED displays are designed to be driven multiplexed. You can use four NPN transistors (BC337 or another type with low saturation voltage at medium current) as digit drivers. If you are looking for the best readability at a distance, go for the green or yellow version.

You might consider representing the duty cycle using an LED bar graph.

A circular one like this might provide the indication you want and be simpler to work with.

Granted it still takes 20 control inputs so you will be multiplexing it just like the LCD displays.

I had the same problem with my one vessel brewing system. I have a 5000w element that I need to regulate it wile boiling.

at the end I used a simple PWM (around 1 Hz) + SSR 40A + potentiometer (10K).

thia way I can change the duty time between 30% to 100%.

you can buy all parts on e-bay for around 10$.

kipod: I had the same problem with my one vessel brewing system. I have a 5000w element that I need to regulate it wile boiling.

at the end I used a simple PWM (around 1 Hz) + SSR 40A + potentiometer (10K).

thia way I can change the duty time between 30% to 100%.

you can buy all parts on e-bay for around 10$.

I am utilizing the Halfluck code... does any body have a wireing diagram?


Did you ever get anywhere with this project? I wanted to do the same.