Temperature Control

Hi folks.

I have a question. I need a feedback system that might have quite the long feedback cycle. In other words, a resulting change in temperature might take some time. I need to know how to approach this so that it doesn't start fishtailing and eventually fall out of the working range.

It's a BBQ that I want to regulate the temperature in. If it gets cold, I want to up the speed of a fan which blows air into the burner section. The temperature rises and the system should remain.

The algo should be designed to find an equilibrium. The fan I am choosing is something like a 12V 120 mA fan. Initial readings suggest 500 Ohms will cover the range quite nicely, but might be a bit much. The range I'm thinking is probably 200 Ohms, because of the CFM rating on the fan, and my expectations. It's very narrow, and I might increase the CFM rating of such a fan.

Anyway, does anybody have any ideas how to set this up? I was thinking of a potentiometer, but that's a manual thing. How can I get the Arduino to do this?


PID. The drawback is tuning. Systems with long lag times can be very tedious to reasonably tune.

If you use the "intelligence" of the Arduino, so that it is acting like much more than an "on/off" thremostat, I suspect you'll get to a happy result faster...

What I have in mind, broadly speaking:

From time to time, check the temperature in the BBQ.

If it is a long way from your desired tture, then turn the fan on (or off, if BBQ too hot) for a long time. If near, turn on or off for a short time.

Interesting project!

Check out: http://www.atmel.com/dyn/resources/prod_documents/controller_3_04.pdf

I've considered trying this myself but haven't found the time yet :-/ Good luck!