网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月13日漏签0天
树莓派吧 关注:76,394贴子:236,639
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 3 下一页 尾页
  • 122回复贴,共3页
  • ,跳到 页  
<<返回树莓派吧
>0< 加载中...

gpio控制风扇转速 pwm方案

  • 只看楼主
  • 收藏

  • 回复
  • 枕头是喵呀
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
万恶的度娘已经删了我很多次了,一楼防度娘抽风


  • 枕头是喵呀
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
之前我做过一个并行的方案,使用4个gpio,外加数转模驱动电路。好处是占用资源小,因为gpio不用频繁改变输出状态,坏处是占用太多gpio而且还要外挂一个驱动电路,制作硬件也比较麻烦。
看到贴吧里有人在问风扇调速的问题,今天我做了个PWM控制的方案,硬件很简单。


2025-05-13 08:57:17
广告
  • 枕头是喵呀
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先说硬件;
你需要;
一个风扇
一个NPN三极管,我用的8050
(为啥不用PNP,因为gpio输出的高电平是3.3v,而供电是用的0v和5v,用PNP 如果E接5V就会出现没法关闭的情况,因为B、E之间电压至少也有5-3.3=1.7v,如果C接0Vf风扇接E和5v还是没法完全关闭,风扇两端电压最少也有5-3.3-0.7=1V,这个电压风扇还不一定转,强迫症表示不能忍)
一个不太小的电容(我用的100微法的电解电容,如果不嫌吵的话不加电容也没关系)
电焊工具:电烙铁,焊锡等就不多说了。
硬件接法:
电路比较简单,就不画图了
风扇+极直接接在5v上,-极接在三极管集电极C。
三极管发射极E接0V,基极B接一个gpio
电容接在风扇-极和0v或5v两端,如果用电解电容注意极性。
硬件不复杂,完全可以塞在外壳里面,我做完是这个样子


  • 枕头是喵呀
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
又删我贴


  • 枕头是喵呀
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
软件部分:
直接放代码,看看注释就懂了,我用python写
#!/usr/bin/env python
# encoding: utf-
import RPi.GPIO
import time
RPi.GPIO.setwarnings(False)
RPi.GPIO.setmode(RPi.GPIO.BCM)
#我用的gpio7对应的bcm是4,这里根据自己的接法修改
RPi.GPIO.setup(4, RPi.GPIO.OUT)
pwm = RPi.GPIO.PWM(4, 100)
RPi.GPIO.setwarnings(False
speed = 0
prv_temp =
try
while True
tmpFile = open( '/sys/class/thermal/thermal_zone0/temp' )
cpu_temp = int(tmpFile.read())
tmpFile.close()
if cpu_temp>=34500
if prv_temp<34500 :
#启动时防止风扇卡死先全功率转0.1秒
pwm.start(0)
pwm.ChangeDutyCycle(100)
time.sleep(.1)
speed = min( cpu_temp/125-257 , 100 )
pwm.ChangeDutyCycle(speed)
else :
pwm.stop()
prv_temp = cpu_tem
time.sleep(5
except KeyboardInterrupt:
pas
pwm.stop()
以上是控制转速的程序,临时写的测试了一下似乎没问题,也可能有问题我还没发现的。
注意百度的排版可能有问题,python的缩进不能乱来的不想bash.
开机自动启动:
把这个python脚本添加进/etc/rc.local


  • 枕头是喵呀
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码排版乱了,发个截图,注意缩进


  • 1袋米扛几楼
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
能不能单单靠gpio风扇一个配件来实现调速呢?一定要加三极管和电容吗?


  • 枕头是喵呀
  • 知名人士
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这事2代的引脚图

2代有40个引脚,有些版本是26个。
并不是所有引脚都是gpio!
从图上看只有29个gpio,还有些是电源(GND VCC 3.3V/5V ) 和串口。
4号和6号正好是5V和0V 可以直接用来供电,3.3V也可以用来供电,其他引脚都只允许通过很小的电流,不能直接用来驱动大功率设备,gpio只能驱动几个LED。


2025-05-13 08:51:17
广告
  • 静·是一种态度
  • 核心吧友
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢楼主分享,按上面的教程成功做出了温控风扇,赞!
不过控制思路和楼主的略有不同,我把程序改成温度高过设定值时风扇全速运转,低过设定值时关掉。
附上修改后的代码:


  • laowu2012007
  • 人气楷模
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
不错,顶一下


  • Eri
  • 初级粉丝
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
LZ你好 我参照你的方法 似乎并不管用 接通后风扇就一直全速运转


  • 何方科技
  • 中级粉丝
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
树莓派3b支持的gpio支持pwm吗,我的是3b,用wiringpi的pwm没用


  • 荣耀小徒
  • 核心吧友
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • 传说中的连长
  • 活跃吧友
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
挖个坟问下lz 因为gpio功率问题我想把gpio直接设为输入接地 风扇直接接5v 为什么还是带不动呢?


2025-05-13 08:45:17
广告
  • baby惑苍生
  • 铁杆吧友
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
赞


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 下一页 尾页
  • 122回复贴,共3页
  • ,跳到 页  
<<返回树莓派吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示