为了防止树莓派长时间开机运转温度过高导致触发过热关机,很多人都给装了散热风扇,但某宝买的风扇插上之后是随着开机一直运转的,不能随温度变化而自动开闭,很多时候做无用功浪费电且产生噪音。本文将以一个硬件小白的程序员视角详细讲述如何用三极管扩展普通的树莓派散热风扇从而实现温控功能。

在制作自己的温控风扇前,本人也查阅了网上其他资料,最终选用了三极管方案,在接线方式中选择了自制杜邦线连接三极管和风扇,这样的好处是线材的长度可以随自己需要裁剪,而且可以轻松塞进树莓派的外壳中。全程无焊接,以后不用也可方便拆卸线材、杜邦头、三极管元件等用作其他用途。


准备材料
以下材料均可某宝购买,为了省事其中杜邦头和杜邦胶壳是买的套件,一盒里边有公母端子各200个,以及各种类型的胶壳。
1.树莓派散热风扇
2.尖嘴钳:用来剥线和压线
3.导线
4.杜邦端子:母端子6个,公端子2个
5.杜邦胶壳:1P1个,2P2个,3P一个(非必须)
6.三极管S8550


第一步:制作杜邦线
杜邦线:电子行业杜邦线可用于实验板的引脚扩展,增加实验项目等。可以非常牢靠地和插针连接,无需焊接,可以快速进行电路试验。
杜邦端子:分为两种,公端子和母端子。
杜邦胶壳:按照可封装的端子数,可插一个端子的为1P,可插两个端子的为2P,四个端子以上的按照排列分为单排XP或双排XP,例如单排4P为可插端子都排列成一排,双排4P为可插端子分为两排,每排两个端子。
上图:

以上简介如须详细了解请自行搜索相关资料。

此处需要制作4跟杜邦线:
其中两根杜邦线两头都带母端子(简称母对母)。一根用于接三极管基极到到主板GPIO14引脚上,另一根用于接三极管集电极到主板地线引脚上。
剩余两根公对母杜邦线,其中一根公端子插风扇正极(红线)母端子,另一头母端子插主板正极,另外一根公端子插风扇负极(黑线)母端子,另一头母端子接三极管发射集上。

本人买的导线为单铜芯导线(外径0.58mm),后来发现制作一根杜邦线仅用一根导线会卡不牢固,容易发生导线与杜邦端子脱落,因此每跟杜邦线都是由两根单铜芯导线组成,因此本处需要裁剪8根导线。
1.剪8根导线,每根导线长度大约7cm。
2.剥线,用尖嘴钳将导线两端分别露出约1cm铜芯。
3.拧线(此处如果买的导线较粗,请略过这一步),将两根导线并排,分别将两端外露铜芯用尖嘴钳拧在一起。因为外露铜芯较细为了防止接触不良,我将外露铜芯反复折叠了两次并拧紧,实际导线外露的长度大概2.5mm左右。

4.压线,将导线外露铜芯压入杜邦端子中,由于手头没有专门的压线钳,此步骤也用尖嘴钳完成。成品见图:


注意:
如果买的导线较粗1cm左右,只需剪4根即可。(但如果太粗的话可能塞不进端子里边),另外剥线时导线两端只要露出大概2-3mm左右即可

第二步:用胶壳封装杜邦端子(不用胶壳的这一步可以略过)

第三步:接线

第四步:写驱动程序
执行驱动脚本前需要安装相关依赖yum install -y python-devel,以及RPi.GPIO模块
wget https://jaist.dl.sourceforge....

附上驱动代码:

#!/usr/bin/python2
import sys
import time
try:import RPi.GPIO as GPIO
except RuntimeError:print("Error importing RPi.GPIO!  This is probably because you need superuser privileges.  You can achieve this by using 'sudo' to run your script")def cpu_temp():with open("/sys/class/thermal/thermal_zone0/temp", 'r') as f:return float(f.read())/1000def main():channel = 14GPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)# open air fan firstGPIO.setup(channel, GPIO.OUT, initial=GPIO.LOW)is_close = Falsewhile True:temp = cpu_temp()if is_close == True:if temp > 50.0:print time.ctime(), temp, 'open air fan'GPIO.output(channel, GPIO.LOW)is_close = Falseelse:if temp < 45.0:print time.ctime(), temp, 'close air fan'GPIO.output(channel, GPIO.HIGH)is_close = Truetime.sleep(15.0)#print time.ctime(), temp, is_closeif __name__ == '__main__':main()

注意:因为这里使用的三极管为PNP型三极管,基极施加低电平时才导通电路,如果是用的NPN型三极管则与之相反。

本人的启动脚本:nohup python -u /usr/local/bin/tempctl.py >/usr/local/bin/tempctl.log 2>&1 &
如有需要可自己注册为服务并设置开机自启,这里不再赘述。

最终成果:

三极管打造树莓派温控风扇相关推荐

  1. python控制树莓派风扇_三极管打造树莓派温控风扇

    为了防止树莓派长时间开机运转温度过高导致触发过热关机,很多人都给装了散热风扇,但某宝买的风扇插上之后是随着开机一直运转的,不能随温度变化而自动开闭,很多时候做无用功浪费电且产生噪音.本文将以一个硬件小 ...

  2. 树莓派3B+温控风扇

    树莓派3B+温控风扇 已添加散热片的树莓派3B+,在空载工作过程中温度过高,需要增加风扇达到物理降温的效果.但在使用过程中,风扇发出的声音过高,需要在温度较低的情况下停止风扇的工作. 准备材料 树莓派 ...

  3. 树莓派 + SSD启动 + CentOS 8 64位 + 内网穿透 + 自动温控风扇 + SMB服务 + 文件分类备份

    功能描述 上闲鱼拿下了个树莓派4B 8G,300块,我仿佛听见有人说"哇"?哦,其实它的外显输出有点问题,但我是不关心,真香. 到手之后自然是传统装机,点到为止,64位centos ...

  4. 树莓派——PWM温控风扇程序(C++、python)、开机自启动

    原理 读取/sys/class/thermal/thermal_zone0/temp文件,返回树莓派温度,控制GPIO产生PWM,从而实现温控风扇的控制. C/C++代码 命令行操作 cd /home ...

  5. 树莓派4B PWM温控风扇 wiringpi库 PWM调整频率 54M PWM频率不对

    总结 很多博客文章都是说树莓派PWM是按19.2M基频率来算的,今天用逻辑分析仪抓了一下波形后发现频率有问题,然后按测得的频率反推,算出来我这里好像是按54M的时钟频率来的,不清楚是什么情况.我这里的 ...

  6. 宏基微型计算机机箱怎么打开,机箱也智能 自己动手打造自动温控机箱

    盛夏酷暑,当自己享受着空调冷气袭面的时候,可曾想到朝夕相处的电脑正面临着天气温度与日俱增的煎熬?如何让自己的机箱拥有出色的散热性能,是每一位DIYer都需要面对的挑战.与其整日开着空调,不如自己DIY ...

  7. 23、基于51单片机温控风扇红外遥控智能温度控制系统设计

    毕设帮助.开题指导.技术解答(有偿)见文末. 目录 摘要 一.硬件方案 二.设计功能 三.实物图 四.原理图 五.PCB图 六.Proteus仿真 七.程序源码 八.资料包括 摘要 本设计为一种温控风 ...

  8. 基于单片机的温控风扇

    设计简介: 本设计是基于单片机的温控风扇,主要实现以下功能: 可通过LCD1602显示温度和档位: 可通过按键调整三档温度和档位: 可通过按键切换模式. 标签:51单片机.LCD1602.MX1508 ...

  9. RK3588 实现温控风扇之获取cpu温度(一)

    RK3588 实现温控风扇系列文章 第一章: RK3588 实现温控风扇之如何获取cpu温度(一) 第二章: RK3588 实现温控风扇之pwm驱动调试(二) 第三章: RK3588 实现温控风扇之通 ...

最新文章

  1. visio 程序设计流程图合符号含义
  2. linux sed命令的用法
  3. kotlin 类和对象_Kotlin程序| 类和对象的示例(带有学生数据)
  4. 【算法分析与设计】海盗分硬币问题
  5. android 富文本编辑器_富文本编辑器,还是Tinymce好一点?Angular/Vue集成最新版
  6. php文件的上传与删除方法
  7. 判断当前浏览器是不是微信浏览器
  8. linux添加ctrl c,Linux ctrl-c explained(ctrl-c 详解)
  9. 第四次作业(1、2小题)
  10. Julia: PyPlot的一些用法整理
  11. adb命令从手机端复制数据库文件到PC
  12. 6个月内进轨,目标火星!马斯克刚刚发布最强“理想飞船”,称已达人类物理极限
  13. 【JavaScript】JS高级-面向对象编程
  14. 电脑(win 10)更新后部分软件打不开、无法使用
  15. 前端js框架到底有哪些?
  16. portalv15安装 tia_TIA PORTAL V15安装顺序-工业支持中心-西门子中国
  17. uniapp 获取 iphone x 底部黑线高度_你知道 iPhone 可以称重吗?附快捷指令版,更方便...
  18. ios 项目被拒绝各种理由
  19. sae项目服务器,sae服务器 mysql数据库
  20. 用WinSW让java程序运行为Windows后台服务

热门文章

  1. seurat提取表达矩阵_Hemberg-lab单细胞转录组数据分析
  2. Qt5获取并解析中国天气网数据
  3. 课题十 加工中心的编程技巧
  4. vue使用antv-G2
  5. 毫秒级!千万人脸库快速比对,上亿商品图片检索,背后的极速检索用了什么神器? ⛵
  6. 如何精确评估开发时间?
  7. netstat 查看端口占用情况
  8. tensorflow之pb文件保存与载入
  9. 【软件测试-7】 自动化测试selenium篇(一)
  10. 字号磅、像素、厘米转换