成本:L293D大概1~2块钱的样子。
缺点:还是比较大;管脚需要焊接,或插在面包板上用杜邦线引,需要单独放边上;线路比较复杂,接线多。
方案三:使用开关三极管
也是解决普通继电器无法激活的问题时,受同时启发,才想起来可以把三极管当成开关用,去某宝上买个专门开关用三极管,型号J13009-2,使用最简单的电路连接即可。
电路:电路实在是太简单,不想画了,简单说一下就是基极接GPIO12,发射极接地,风扇红线接5V
电源,黑线接三极管集电极。原理就是基极给高电平,集电极和发射极接通,风扇供电回路接通;集电极给低电平,集电极和发射极断开(并不是严格意义上的断开,指示电流太小,相当于断开),风扇黑线无法接地,供电回路不通;
成本:开关三极管大概0.3~1元的样子。
缺点:无
鄙人最终就使用了三极管方案,使用最短,最简单的接线方法,完全藏匿起来。
代码:
代码是最简单的代码,仅根据温度控制转与不转,可以直接复制使用,
××××××××××
import RPi.GPIO as GPIO
import
time
import commands
T_HIGH = 45
T_LOW = 35
fan_pin = 12
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(fan_pin, GPIO.OUT)
def get_gpu_temp():
gpu_temp = commands.getoutput( '/opt/vc/bin/vcgencmd measure_temp' ).replace( 'temp=', '' ).replace( ''C', '' )
return float(gpu_temp)
while 1:
gpu_temp_loop = get_gpu_temp()
print 'GPU temp:', gpu_temp_loop,'C'
if gpu_temp_loop > T_HIGH:
GPIO.output(fan_pin, 1)
elif gpu_temp_loop < T_LOW:
GPIO.output(fan_pin, 0)
time.sleep(5)
××××××××××
复制时注意分割线,另存为python文件即可(如pi2_fan.py)
运行就是直接python pi2_fan.py
如果想随机启动就加到rc.local里,这个可以搜一下就知道。
我现在pi3和pi2都装了风扇,pi3当台式机用,看电视,看电影,上网,聊天,写文档等,pi2当服务器,下载机啥的。
就到这里,希望有参考价值。