
Non-PWM fans can be controlled by adjusting the input voltage.
for PWM timers: "How To Properly Control PWM Fans With Arduino".The NA-FH1 is a high-quality, smartly-protected 8 channel PWM fan hub that allows up to eight PWM fans to be run and controlled simultaneously via a single PWM motherboard fan header or stand-alone controllers such as the optional NA-FC1. for basic structure: "pwm_fan" by KaptenJansson. These two projects were used for inspiration and code snippets, especially the pwm timer part:
shuts off fan at low temperatures (motivation for this project because the server network cabinat is located in a bedroom) only works if the fan supports 0% PWM mode. temperature regulation between minimum an maximum temperature (to minimize noise). simple code which can be easily altered or extended. If you don't mind the fan always slowly spinning at low temperatures every fan will work. But when it spins you need the mentioned high side switch for turning it off completely at low temperature (Type A fan). If it stops spinning everything is fine and the code arduino will work as intended (fan is Type B or Type C). You can test if your fan will shut off at 0% PWM by connecting the the fan to 12V and GND and connecting the PWM pin of the fan to GND.
A simple high side switch will work (1 PMOS + 1 NMOS or 1 PNP+NPN Transistor). For fans without this feature the circuit has to be modified if you want to shut if off at low temperatures. I think most CPU-Fans do offer 0%-Shutoff while most case-fans have a minimum RPM even at 0% PWM. Not all fans do this.Īccording to the 4-Pin Fan specification by Intel 0%-Shutoff is supported on "Type B" and "Type C" 4-Pin Fans, not on "Type A" fans. Is low enough (0% PWM and optional High-Side-Switch).Ĭhoice of fan: Please note that the shut-off feature only works if the fan supports it (tuns off when PWM = 0%). Unlike the cheap control boards from Amazon or Ebay this code switches the fan off when the temperature
With a DS18b20 Temperature probe and outputting a PWM signal with the Arduino Nano to control a 4-Pin fan. This code was written to control the temperature inside a server cabinet by measuring the temperature Temperature Controlled 4-Pin PWM-Fan with Arduino Nano Intro