利用 Arduino 进行 CPU 降温系统的制作
任务剖析:
其实主要的任务就是利用 Arduino 控制风扇。额外的任务有通过输入装置改变斜率、通过温度改变转速。这里由于相对简单,不讲。
难点分析:
对于四线风扇,我们应该要如何控制它的转速?怎么检测它的转速?怎么利用转速的反馈?
首先,要指出一点,网上的关于四线风扇的各种颜色的线的判定不一定对。这个只能实践出真知。
其次,在使用 analogWrite,通过控制 PWM 来控制风扇转速的时候,不必要一定要对其第二个参数使用 map。这个需要读者自己理解。建议的做法是,定义一个 unsigned char 类型变量,如果风扇转速小于预期转速,增加该值;大于时,减小该值。这样就可以控制风扇转速了。
然后,测速时,有多种方法。先简单讲一下原理:风扇转一圈会发出两个 PWM 波,两个相邻 RISING 的时间之差即是 PWM 波的周期。笔者采用的是利用 attachInterrupt 这个中断函数进行测速的方法。当检测到第一次 RISING,计数变量加一,记录时间为 timestart;当第二次检测到 RISING,计数变量清零,记录时间为 timeend。用 30000000 除以两次时间之差即可算得转速(单位为 rpm)。
**注意!!!**在 UNO 板上,只有 2、3 口可以使用中断函数!官网不建议 attachInterrupt 第一个参数直接写引脚!!!具体请参考官网文献。
以上即为一些注意点,希望对大家有所帮助。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于