何当共剪西窗烛
唯有踏浪执子归 人不怜我我自怜

树莓派3风扇调速及安装

【主要信息从张明浩处转载】

所谓前人栽树,后人乘凉,这个议题早有先行者,本人只用自己的方式进行尝试,并做下下文笔记。

原理:从cat /sys/class/thermal/thermal_zone0/temp获取cpu的实时温度,设定PWM的最大值为1023,此时风扇全速运转。

设定一个循环依据cpu的实时温度来设定pwm的值,这是一个线性关系,这里采用的是

pwm=$((($tmp-$set_temp_min)*512/($set_temp_max-$set_temp_min)+511)) 希望不要被喷,pwm值的改变会引起导致风扇转速的改变,由此目的就达到了,当然这个循环中有sleep 5秒中,即5秒检测一次温度。

 

首先是硬件连接,不出意外买来的风扇只有两根线,一根接正极,一根接负极。而树莓派的GPIO的接口中也有接地线,高压5V线和许多其它的接口,其中特别注意到PIN12能够模拟PWM,以实现我们希望的风扇调速功能。

下图是树莓派2的GPIO接口说明:PIN4是5V接口,PIN6是0

然后就是怎样利用PIN12这个PWM接口了:

NPN三极管,我用的s8050;

面包板加杜邦线,或者用电烙铁。

硬件接法:

 

先把电扇直接接到树莓派上测试一下哪根线是+极,然后把风扇+极直接接在树莓派的5V上,-极接在三极管集电极Collector。

(从三极管平的那面看)

三极管发射极Emitter接树莓派GND,基极Base接树莓派Pin12#(GPIO18)(GPIO_GEN1),资料表明只有这个针脚可以启用软件pwm,其他针脚我也没有试过。

驱动前提

安装GPIO驱动,这里使用C语言编写的wiringPi。

在按照上面的方法连接好风扇以后,风扇是不会转的,此时可以先手动控制风扇测试一下,在终端中输入以下命令开启风扇

Bash
gpio mode 1 pwm
gpio pwm 1 1023

正常情况下风扇应该会开始全速运转。

可以使用gpio readall命令查看针脚信息,针脚模式应该显示ALT5,见下图。

实施脚本:

已经上传到github:https://github.com/tankririri/RaspberryPi_CPU_PWM

运行以下命令下载脚本

git clone https://github.com/tankririri/RaspberryPi_CPU_PWM.git

我这里装的是xbian的系统,所以用户名是xbian,如果用的是官方rasbian系统,用户名就是pi。 由于脚本运行在一般用户下,所以对日志文件的访问会产生权限问题,第一次运行的时候需要将/var/log/cpu-fan/cpu-fan.log文件的组和拥有者改为root,文件权限改为666

mkdir /var/log/cpu-fan
chown root:root /var/log/cpu-fan
chmod 777 /var/log/cpu-fan
touch /var/log/cpu-fan/cpu-fan.log
chown root:root /var/log/cpu-fan/cpu-fan.log
chmod 666 /var/log/cpu-fan/cpu-fan.log

运行以下命令

cd RaspberryPi_CPU_PWM
cp .cpu-fan.conf ~/.cpu-fan.conf
sudo ./install.sh

这里需要注意的是,如果使用root用户开机运行脚本,会发生bug,脚本不会发生作用。另外还需要关闭lirc服务,否则会导致cpu占用率100%。

如果开机完成后手动运行脚本则没有任何问题,目前尚不知道bug产生的具体原因,上述问题可能都跟gpio驱动有关系。

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《树莓派3风扇调速及安装》
文章链接:https://www.bigxd.com/2017/07/337.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 2

评论前必须登录!

 

  1. #1
    Avatar photo

    转载请注明原作者

    昵称4年前 (2019-07-12)

觉得文章有用就打赏一下文章作者

微信扫一扫打赏