使用arduino做一个电脑风扇PWM调速器
本帖最后由 element115mc 于 2021-8-25 11:03 编辑不知道各位是否有这样的问题:电脑机箱风扇有时很吵,有时太慢,转速无法随心所欲随时调节,每次调节都要重启进入bios,但电脑上正在进行着主要任务(码word、打游戏中)无法重启。今天,我就和大家分享我的arduino pwm调速器方案,该方案非直流调压式调速,直接输出PWM信号给四线风扇调速,更加可靠。准备材料:Arduino UNO(并非必须要UNO,6脚能输出PWM就行)、B50K电位器(阻值随意,不一定要50K)、电脑4线风扇、12V直流电源、杜邦线若干(最好多点两端公头的)、USB线一条(刷写程序用)、有Arduino IDE的电脑一台。
制作过程
第一步:在IDE中写入以下代码
int pwmPin = 6;
int anaPin = A0;
int pwmspeed = 0;
void setup() {
pinMode(pwmPin,OUTPUT);
Serial.begin(9600);
}
void loop() {
int pwmspeed = int(analogRead(anaPin)/4);
analogWrite(pwmPin,pwmspeed);
Serial.println(pwmspeed);
delay(50);
}第二步,上传到开发板
第三步:按以下方式连接电路(红正黑负)
第四步:插上12V电源,开始运行
以上就是组装过程
运行效果展示(楼主亲自上传的视频):https://www.bilibili.com/video/BV1L44y1C7Bx/
特别说明:代码中和Serial有关的只是楼主上机用串口调试工具调试用的,可以选择删除
以上就是我的项目展示,感谢阅读本文,谢谢!
另外说明:为什么int pwmspeed = int(analogRead(anaPin)/4);当中,从anaPin中读出的数值得除4,还要化整型?这是因为analogRead()函数返回的值在0至1023当中,众所周知1020/4=255,analogWrite(引脚,数值)中数值只接受0至255,但1023/4超过255,不到256,用int化整型不至于溢出,保证了程序稳定性.。
本帖最后由 XlinliY.Zhang 于 2021-8-24 14:00 编辑
风扇PWM调速最起码PWM频率要设置为5KHz以上, Arduino默认的490Hz调速噪音不仅低不了多少,还会引入高频电流声 风扇 spec 要求载波是 25K 唉~ XlinliY.Zhang 发表于 2021-8-24 13:59
风扇PWM调速最起码PWM频率要设置为5KHz以上, Arduino默认的490Hz调速噪音不仅低不了多少,还会引入高频电 ...
这个倒是不知道,反正我用时最低最高转速都十分安静:lol element115mc 发表于 2021-8-25 10:49
这个倒是不知道,反正我用时最低最高转速都十分安静
arduino默认的PWM频率就是490Hz,想改频率也很简单。只需要配置一下就可以了。具体配置网上教程一大堆,我就不码字了 element115mc 发表于 2021-8-25 10:49
这个倒是不知道,反正我用时最低最高转速都十分安静
arduino默认的PWM频率就是490Hz,想改频率也很简单。只需要配置一下就可以了。具体配置网上教程一大堆,我就不码字了 element115mc 发表于 2021-8-25 10:49
这个倒是不知道,反正我用时最低最高转速都十分安静
arduino默认的PWM频率就是490Hz,想改频率也很简单。只需要配置一下就可以了。具体配置网上教程一大堆,我就不码字了
页:
[1]