自动控温风扇&三极管

应用场景:
之前在RaspberryPi上面移植几个简单的应用(翻墙/入户人员监测/Git库等),随着天气越来越热发现晚上莫名其妙的死机,散热片扛不住,淘宝2.5块钱购得20mm5V散热风扇一枚(当然还有其它东西),散热问题是解决了,但3000/rpm的转速晚上睡觉还是能听见,这种事情是不能容忍的,遂决定处理。
解决方案:
基本目标 —— CPU温度温度高于48度风扇启动(本次目标);
增强目标 —— 根据降温数值方差曲线(刚学的一个知识点)触发PMW信号,进而平滑控制风扇转速;
遇到问题如下:
Q1 : 如何获取CPU温度 ? 难度系数O(1)
A1 : Pi搭载了ARM版linux,获取CPU温度还是很方便的:
cat /sys/class/thermal/thermal_zone0/temp
Q2:风扇只有正负电源线,如何插入控制信号?难度系数O(5)
A2: 该问题难度在于涉及2部分:a). 该部分非常考验人对三级管特性的理解和对b). RaspberryPi的GPIO阵脚的熟练程度,本实例用C945-P331-TO92封装的NPN(ECB)三极管实现。基本原理是用树莓派【GPIO +5V接风扇正极】,【风扇负极接三极管集电极©】,【GPIO14针控制信号接三极管基极(B)】,【三极管发射极(E)接GPIO的GND】(当然你也可用2个二极管反接来实现,有助于你对这种电器结构的深刻理解,方法可自行百度),具体如下:
在这里插入图片描述在这里插入图片描述
Q3: 控制逻辑如何实现? 难度系数O(2)
A2: 啥都不说了!看完代码你就明白了!

#!/usr
智能控温风扇是一种可以根据外界温度的变化对风扇转速快慢进行调整,也可以对风扇的开关与否进行自动控制风扇。下面是两种基于51单片机的智能控温风扇系统的介绍: 引用中的智能风扇控制系统以51单片机最小系统为核心,利用DS18B20温度采集模块,LCD 1602显示屏、红外遥控器、按键组成。DS18B20温度采集模块将采集到的温度与系统开始设置的阈值做比较,并将采集到的温度数据显示在LCD1602显示屏上。当温度高于所设置的温度,风扇将会自动吹风;当温度低于所设置的温度时风扇仍保持关闭状态。该系统采取了三种工作方式,第一种工作方式为按键控制—手动模式;第二种工作方式为自动模式,根据温度自动调节风速;第三种工作方式为红外遥控器控制,在遥控器上按下相应的功能按键,即可控制风扇,手动模式和自动模式切换,以及遥控改变风扇的转速等。 引用中的智能控温风扇系统以STC89C52单片机为核心,通过温度采集模块,LCD1602显示屏、按键,红外遥控器控制模块构成。温度采集模块主要将采集到的温度值与系统设置的初始温度值进行比较。若采集到的温度值大于初始温度值,则风扇将会开启;若采集到的温度值小于初始温度值,风扇将一直保持关闭状态。LCD1602显示屏主要显示风扇档位,温度、模式等数据。自动模式下采集到的温度大于初始温度值,则风扇转动;反之,风扇关闭。手动模式下风扇转速和温度无关,需要通过按键调节风速转速。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值