微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

树莓派风扇控制 pwm intel

如何解决树莓派风扇控制 pwm intel

我真的希望你能帮助我,我现在有点绝望:D 我目前正在尝试在 Linux ubuntu 5.4.0-1038-raspi 上使用 rpi 4 控制股票英特尔风扇 (intel e97379-001)。 (https://www.intel.com/content/www/us/en/support/articles/000055841/processors.html 的富士康粉丝)

问题是,风扇似乎只能在 2400-2700 rpm 之间控制。至少改变占空比只会改变该范围内的转速。但是,intel 声明 pwm 可以控制在 1000-3700 之间。 我正在使用外部 12v 电源为风扇供电。风扇的接地引脚连接到引脚 6,pwm 连接到 gpio 18,以及 到 gpio 24 的转速表。 我的问题是在 pyhton/c 中控制风扇(我都试过)。 pwm 的频率为 25khz(转速计的脉冲为 2)。 我基本上从 https://blog.driftking.tw/en/2019/11/Using-Raspberry-Pi-to-Control-a-PWM-Fan-and-Monitor-its-Speed/

获得了脚本基础

我使用提供的脚本测量了风扇速度,但到目前为止我找不到错误

import RPi.GPIO as GPIO
import time

# Pin configuration
TACH = 24       # Fan's tachometer output pin
pulse = 2       # Noctua fans puts out two pluses per revolution
WAIT_TIME = 1   # [s] Time to wait between each refresh

# Setup GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(TACH,GPIO.IN,pull_up_down=GPIO.PUD_UP) # Pull up to 3.3V

# Setup variables
t = time.time()
rpm = 0

# Caculate pulse frequency and RPM
def fell(n):
    global t
    global rpm

    dt = time.time() - t
    if dt < 0.005: return # Reject spurIoUsly short pulses

    freq = 1 / dt
    rpm = (freq / pulse) * 60
    t = time.time()

# Add event to detect
GPIO.add_event_detect(TACH,GPIO.FALLING,fell)

try:
    while True:
        print "%.f RPM" % rpm
        rpm = 0
        time.sleep(1)   # Detect every second

except KeyboardInterrupt: # trap a CTRL+C keyboard interrupt
    GPIO.cleanup() # resets all GPIO ports used by this function

重现我的问题的基本 python 脚本是:

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.OUT)

p = GPIO.PWM(18,25) 
p.start(0)
try:
    while 1:
        pass

这应该将风扇设置为尽可能低的转速。就我而言,rpm 输出在 2370-2400 之间。我还尝试将 PWM 从 25 更改为 25000(如果以赫兹为单位),但它产生相同的输出

尝试相反的方法(即,将占空比设置为尽可能高,更改 p.start(0) -> p.start(100))时,rpm 输出在 2800-2830 之间。

我不太明白问题出在哪里,我认为 rpm 测量是正确的,因为在执行脚本后进行比较时,我只能听到/看到转速略有下降。

我希望有人能帮助我,因为经过数小时的研究我找不到解决方案:(

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。