This is a PID (Proportional, Integral Derivative) temperature controller. It has been designed around the ATmega328P microcontroller utilizing the Arduino Duemilanove bootloader.
*** NOTE - A separate Arduino board is NOT required, as this kit incorporates a basic Arduino clone.*****
A PID controller works by measuring the error (difference between the Set Point (desired temp) and the Process Value (measured temp), It then performs 3 separate calculations on that error value, the first is PROPORTIONAL to the size of the error, the second is the INTEGRAL, which is the amount of time that the process has been in error, the third is the DERIVATIVE, in which it measures the rate of change of the Process Value. It then calculates the sum of the previous 3 calculations and applies that sum as a percentage of a given window of time in the form of a pulse to a solid state relay (in the case of temperature control loops).
The Arduino code for this project has been adapted with single boiler home espresso machines particularly in mind, such as the Rancilio Silvia and the Le Lit PL041QE and others, however it is easily adapted to any other heating control application, such as Sous Vide Controllers, Kiln Controllers, etc
The software for the Arduino PID controller itself consists of 3 main parts: the temperature reading code using the MAX31855 chip, the PID control algorithm code, and the menu system code, which allows changing of the Set Point and other parameters, such as temperature offset from boiler to group head.