
材料准备
一个5V风扇
一个NPN三极管(8050)
一个100μF的电容(可选)
硬件接法
风扇+极直接接在5v上,-极接在三极管集电极C。
三极管发射极E接0V,基极B接一个gpio
电容接在风扇-极和0v或5v两端,如果用电解电容注意极性。
软件部分
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#!/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脚本添加进 /etc/rc.local
近期评论