arduino恒温控制(uno温控风扇的制作)
我制作做过2个温控风扇。
作品1:
这是我两年多前的作品,原理非常简单,就是利用一个简单的能够折叠的USB电脑风扇。通过读取CPU温度数据,来控制风扇转速。能在电脑温度较低降低风扇转速,时有效减轻风扇噪音。
硬件连接过程很简单,USB电脑折叠散热器连接Arduino UNO,再连接一个三极管。
制作成功后就拆掉了,制作过程和成品当时没有拍照,今天发现程序代码也找不到了。补上一张USB电脑折叠散热器的照片。
当时在学习arduino UNO 开发板和电脑通信
器材准备:arduino UNO 开发板、 USB风扇电脑散热座、ss8050三极管*1
开发语言:Python 、C
制作过程:
第1步,确定工作原理
控制逻辑大体如下,电脑上PYTHON通过CMD命令读取CPU温度,与arduino通过USB接口通信,Arduino使用PWM信号控制三极管以达到控制电机转速的功能
第2步焊接原件
第3步,使用pycharm,arduino IDE写控制程序,其中python读取温度调用了OS模块,读取CMD温度读取命令返回值。程序如下:
最后,测试完美成功,但是三极管有一定发热现象。
作品2:
Python控制英伟达Jetson Nano开发板风扇,这是去年的作品,当时正在开发视觉巡线小车,买了散热风扇,便想使用Python写一个自动控制程序
第1步,直接上代码,好像运行时要给sudo权限
import os
from time import sleep
cpu_commend = "cat /sys/devices/virtual/thermal/thermal_zone1/temp"
gpu_commend = "cat /sys/devices/virtual/thermal/thermal_zone2/temp"
all_fan_commend = "sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm'"
upper_fan_commend = "sudo sh -c 'echo "
lower_fan_commend = " > /sys/devices/pwm-fan/target_pwm'"
control_times = 0
while True:
cpu_file = os.popen(cpu_commend)
gpu_file = os.popen(gpu_commend)
cpu_content = cpu_file.read()
gpu_content = gpu_file.read()
cpu_tmp = int(cpu_content) / 1000
gpu_tmp = int(gpu_content) / 1000
print("cpu tmp is : ", cpu_tmp)
print("gpu tmp is : ", gpu_tmp)
if (cpu_tmp > 20 or gpu_tmp > 20):
average_tmp = (cpu_tmp gpu_tmp) / 2
print("average tmp is : ", average_tmp)
pwm_rate = average_tmp*3 20
if pwm_rate > 255:
pwm_rate = 255
else:
pwm_rate = pwm_rate
else:
pwm_rate = 0
fan_commend_all = upper_fan_commend str(pwm_rate) lower_fan_commend
print("pwm rate is : ", pwm_rate)
print("control times : ", control_times,"\n")
os.system(fan_commend_all)
control_times = control_times 1
sleep(1)
# successful
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com