嘉立创产业服务站群
发作品签到
专业版

PWM风扇调速板

工程标签

7.4k
0
0
4

简介

使用MCU控制和测速4pin机箱风扇

简介:使用MCU控制和测速4pin机箱风扇

开源协议

GPL 3.0

创建时间:2023-03-24 07:33:01更新时间:2023-04-03 02:34:58

描述

使用MCU测速和控制常见的4pin或3pin电脑风扇

注意!本工程USB接口规格为5V1A,总功率请勿超过5W。请勿使用大功率暴力风扇,否则将可能烧毁板上器件,乃至主板USB接口!!

IMG_20230401_133634.jpg
IMG_20230401_132958.jpg
IMG_20230401_133206.jpg

工程说明

MCU:STM32F030C8T6
数码管驱动:CH455G
5V到12V升压:MT3540-F23(注意此芯片有3种规格,对应3种FB电压,本工程用的是1.23V,若使用其他电压需要修改相应的FB电阻阻值)
5V到3.3V降压:AMS1117-3.3

使用USB5V供电,一路4pin为5V直出,适合低电压小风扇,另一路为12V升压输出,适合12cm的机箱风扇。两路风扇独立控制,两个轻触按钮用以选择控制、显示哪一路风扇的转速。自复位钮子按钮用以调整PWM占空比,从而控制风扇的转速。调整转速时数码管显示当前占空比,2秒无操作之后自动切换为显示转速(RPM)。上电后风扇转速默认为50%。
由于上电时电容充电会瞬时拉低电压,所以CH455G延时1秒进行初始化,否则可能会因为电压不稳而导致初始化失败。

本工程中除了自复位钮子按钮以外,所有器件均可在立创商城找得到,单个成品成本不到10块钱。

STM32F030C8在本工程中是完全overkill的,但我为什么还是选择了这片MCU呢,因为公司里有现成的不要钱...而且ST的生态链太舒服了,底层CubeMX直接生成好,自己只要写应用层就行了,不用手动配置那么多的寄存器。整个代码编写+调试只用了半天。
如果大家想节约成本,完全可以使用引脚更少的8位MCU来替代,但强烈建议选用拥有以下规格的型号:
至少2个独立定时器,一个用于PWM精确输出,一个用于精确测速和系统滴答
至少2个支持边沿触发的GPIO口,用以检测测速信号
至少1个硬件I2C口,用以驱动CH455G数码管显示
可选1个硬件UART串口,可与上位机通信,实现上位机控制、读取转速,甚至可以使用无线模块做成无线控制
若选用5V供电的单片机,还可以节省3.3V的LDO

如果想用来控制大功率暴力风扇,请务必换用支持大电流的Type-C接口,并使用更高功率的DCDC芯片。或者直接换用DC12V或PD输入,然后降压给MCU供电用以控制,风扇直接使用DC供电。

原理

GV4ThDapWDVoDSjgtkaraiiJY7HiHRW8y9826pKS2Fo.jpg
我们常见的4pin风扇引脚定义如上图,3pin则是无调速少了第四根调速线。(即便如此我们也可以通过控制2脚VDC的电压实现调速)

测速

第3脚测速线连接到风扇内部的一个霍尔开关上。大多数的风扇每当转过一圈时,霍尔开关会输出2个上升沿或下降沿(少数风扇转一圈的边沿数量不同,可以自行测试)。注意此引脚为一个开漏输出,必须有外部上拉电阻,否则MCU无法检测
IMG_20230401_133100.jpg
通过计算两个上升沿或下降沿的间隔,我们就可以算出风扇当前的转速:

RPM(圈每分钟) = 60*1000/Δt/2

如上图代入我们可以算出当前转速大约为1764转每分钟
使用MCU的外部中断IO脚,再加上硬件定时器,我们就可以精确算出当前的转速了(其实还是有一定误差,与定时器和外部中断分辨率有关)

调速

第4脚为调速输入,通过改变输入方波的占空比,可调节风扇的转速。当此线拉低到GND时,风扇转速最小(不为0),当拉高到5V时,风扇转速最大。大部分情况下,此引脚被风扇内部上拉到5V,也就是说当此脚悬空时风扇转速默认为最高。
IMG_20230401_133020.jpg

软件代码

本工程对应的MCU代码已开源到github,以后代码更新都会在这里。若觉得好用的请点个star,谢谢!
STM32F030C8代码
若只想直接烧录到MCU内,本页附件已经有编译好的HEX文件,用STM32 ST-LINK Utility烧录即可。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
FAN_PWM.hex
44
2
VID_20230401_150700_video_index0_x264.mp4
248
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航