This is my first post here. Let me start by saying that I do not have an engineering background. I tinker with electronics in my spare time (Arduino, solid state low-power guitar amps, etc.), but I do not have a classical engineering education. Please forgive (and feel free to correct) any incorrect terminology that I use.

I would like to use a PID controller (CD101) that will switch a DC SSR that controls the speed of a 12 V low-power DC fan. The desired application is controlling the amount of air that enters into a BBQ smoker grill. I want the PID to hold the temperature inside the grill at a constant level.

I've done a lot of google-research, and I haven't found a lot of people who have taken this approach with motor control. I'm all for learning lessons the hard way, but I wanted to see if anyone in this forum thinks this is a simple approach, or if there are glaring issues with this idea.


3 Answers 3


If you want to use the PID controller you linked to, you will need to work within the constraints of that device. Like many heat/cool industrial PID controllers, it provides two outputs - one for heating and one for cooling.

Relay output: contact capacity 250V AC 3A (resistive load) (Refrigeration)

Voltage pulse output: 0/12V (suitable for solid state relay SSR) (Heating-up, a 12V relay needed)

In your use case, using a fan to cool your smoker, you'll be using the PID controller in cool mode (refrigeration). As a result, you're stuck with a relay output. Typically, these outputs are made to work with chillers, which require long on-off cycles. Heater outputs are more often time-proportioned (it's basically PWM with a total period measured in seconds--fine for heater control). Some PID controllers can be configured to be reverse acting, which would allow you to use the heater output to control a cooling fan. In looking at the manual, it did not appear that this particular model supports such functionality.

You can add a small pilot relay with contact ratings that compatible with your fan, and simply live with on-off fan control. A quick perusal through the controller manual didn't suggest that there was a lot to this unit that could be configured, so if you really want a variable speed fan, you should look for PID controllers that can support other output options for cooling (or generic) outputs.

  • \$\begingroup\$ thanks for giving me so much information! The fan is actually going to be used to heat the grill (by completely sealing off the grill, I should be able to modify the temperature by controlling the amount of air that enters the grill... more oxygen = higher temperature). Since this has me using the heat cycle of the PID controller, do you feel that this setup could work? As I stated in an earlier comment, the reason for this approach is that I was given that specific PID controller as a gift to make a sous vide machine. My hope is to get a BBQ controller out of the mix as well. \$\endgroup\$ Dec 28, 2012 at 16:05
  • \$\begingroup\$ Your approach should work, but Olin's comments are valid - an SSR is overkill for driving a low voltage load like a fan. You can easily use a FET and a flyback diode. \$\endgroup\$
    – HikeOnPast
    Dec 28, 2012 at 20:01

Why do you think you need a solid state relay (SSR)? Unless you need isolation, and it doesn't sound like it, this is the wrong way to switch the fan.

Assuming the fan can be directly connected to the circuit that is doing the temperature control (doesn't need to be isolated), then it will be simplest to control it via PWM with a transistor as a low side switch.

Just about any microcontroller nowadays has PWM output capability. Even if not, a fan will be so slow to respond that the PWM could be done totally in firmware from a periodic interrupt or something. In any case, the PWM duty cycle gives you smooth control over the fan drive level. The PID controller then adjusts that to maintain the desired temperature.

A simple circuit to control the fan from a digital output of a microcontroller is:

You didn't give any characteristis of the fan, so this exact circuit might not be appropriate. This will work for a fan that needs up to a couple of amps or so, which is a lot for a typical 12V muffin fan. A NPN transistor could have been used but would require a little different drive circuitry. The advantage of this NFET is that it can be directly connected to the output of 5V CMOS logic.

  • \$\begingroup\$ he didn't mention microcontroller, because he specifically linked to a standalone PID controller that probably has the circuit you drew integrated into it. He also mentioned an SSR because thats what the linked page calls for with a 12V load (for whatever reason). \$\endgroup\$ Dec 27, 2012 at 18:17
  • \$\begingroup\$ @insta: There was no link when I answered, and it's not my job to chase it down. A microcontroller is the most obvious way to do this, but if there is a stand alone PID chip that can be controlled the right way, then that can work too. Seems like tweaking the P, I, and D gains will be a pain with a dedicated chip, but I don't see any reason it isn't at least possible. In any case, the circuit I show works with a digital PWM signal, regardless of what created it. When isolation is not needed, this will be simpler than a SSR. \$\endgroup\$ Dec 27, 2012 at 18:20
  • \$\begingroup\$ Olin, thank you for the thorough and quick response. I should have given a little more background on this project. I was given the PID controller that I referenced in the original post as a christmas gift. I am building a sous vide machine and my hope was to be able to build it in a modular way so that the same setup could be switched to drive an AC SSR for sous vide, but also drive a DC SSR for my BBQ grill. My hope is to leverage the same base technology to get two applications out of it. \$\endgroup\$ Dec 28, 2012 at 15:50
  • \$\begingroup\$ Olin, due to my specific application, I am going to proceed ahead with my design. That being said, I wanted to thank you for taking the time to provide such an excellent response, and a wiring diagram. I have an Arduino, and I am going to also attempt to deploy your solution so that I can learn a new way to accomplish this task. Thanks again for helping out a newbie! \$\endgroup\$ Dec 28, 2012 at 23:13

Micro controller is the way to go and here is a course geared for your expertise level:



  • 1
    \$\begingroup\$ This doesn't really help with the original question as it appears he already has a PID controller selected. Also while the introduction looks OK it doesn't look like it would go into any detail on implementing PID on a microcontroller. \$\endgroup\$
    – PeterJ
    Oct 5, 2014 at 6:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.