0%

单片机控制4线散热风扇详解

风扇简介

CPU风扇主要有两种,一种是三线的风扇,主要包含电源两根线加一根转速反馈线,这种风扇是定速风扇基本上是无法通过CPU去自动调速的;第二种是4线的风扇,相比三线风扇对一条PWM调速线,CPU可以根据温度及反馈的风扇转速去调整输出的PWM达到调速的目的

3线替代4线就不能随cpu温度变换风扇转速,高速旋转,噪音大。
4线完全能替代3线的,也就是3根线是恒速运行的,4根线可以自动调速(当然前提是主板支持并开启了这个功能),3线和4线可以互换直接插上使用的。

四线制CPU风扇一般四根线的颜色分别是黑色、红色、黄色、蓝色。
1614136867841357.jpg
810a19d8bc3eb13529310b63ad1ea8d3fc1f4477.png
1、黑色: 电源负线(GND);
2、红色: 电源正线(CPU FAN PWR),+12V;
3、黄色: 测速线(CPU FAN IN),用于监测风扇的转速,作为反馈信号,用于防止风扇的状态,防止风扇坏掉引起散热异常;
4、蓝色: PWM信号线(CPU FAN PWM),用于调速,改变占空比可以实现转速的调节。

单片机控制4线原理

4线风扇控制就是通过单片机产生25KHZ左右频率的PWM信号,作用到4线风扇的PWM输入接口上即可,通过改变PWM的占空比可以达到对风扇速度控制的目的

示例程序

示例基于ESP32的PWM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<Arduino.h>
//风扇控制相关
#define FAN_EN_PORT 18
#define FAN_SPD_PORT 19
#define PWM_CHANNEL 0
#define PWM_FRE 25000

void setup() {
//配置PWM,控制风扇
ledcSetup(PWM_CHANNEL,PWM_FRE,8);//设置PWM输出频率及控制分辨率
ledcAttachPin(FAN_EN_PORT, PWM_CHANNEL);
}
void loop(){
for(int dutyCycle = 0; dutyCycle <= 255; dutyCycle++){
// changing the LED brightness with PWM
ledcWrite(PWM_CHANNEL, dutyCycle);
//Serial.println(dutyCycle);
delay(100);
}
}