heresiarch / smoker-pid-control

Arduino based PID and Fuzzy Controller with PT1000 temperature element and Adafruit MAX31865 RTD Sensor Breakout module to control heat in BBQ grill using a blower fan.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

smoker-pid-control

Arduino based PID Controller with PT1000 elements to control heat in BBQ grill using a blower fan

  • PWM Output 0-255
  • Manual controller mode
  • PID based controller mode
  • Fuzzy based controller mode
  • OLED Display
  • Adafruit MAX31865 RTD Sensor Breakout module
  • Arduino Micro
  • Rotary Encoder user interface

alt text

Field Test

PID Mode

PID Mode works very well with Weber 57 cm BBQ Grill. Only small overshots in the beginning. I use a BBQ Guru Viper Pit 12 V Fan which has no PWM, PWM is converted to linear voltage with a simple Buck converter. PID Values are very much dependend on the type of BBQ Grill. I have a hard cut off rule above 1.0 °C which counters some overshots in the beginning. Autotune experiments are a good waste of time IMHO, better is to use PID values based on experiments.

Fuzzy Mode

Fuzzy mode is very stable and gets good steady state for setpoint temperature. Fuzzy mode is controlled by Fuzzyset based on temperature difference. You should change rules sets based on your setup and used MOSFET (RDSon and PWM values). Fuzzy update rate is 5 seconds. I derived a simple fuzzy set from the much more sophisticated example from the link below, which has unfortunately too many rules for my Arduino Micro memory: https://github.com/rvt/bbq-controller/blob/master/lib/bbq/bbqfanonly.cpp.

Results

Overall I could hold constant temperature of 110 °C over 4 hours with 1 char basket filled with some weber charcoal briquettes, and still had enough of them left for some hours. With 2 char baskets starting on each side with 2-3 hot coals in ignition cord style and with grill fully meat loaded I got superior results in temperature stability with the Fuzzy Sets defined.

References and similar Projects

About

Arduino based PID and Fuzzy Controller with PT1000 temperature element and Adafruit MAX31865 RTD Sensor Breakout module to control heat in BBQ grill using a blower fan.


Languages

Language:C++ 99.8%Language:Python 0.2%