返回

树莓派风扇:通过 PWM 控制转速,让你的树莓派保持凉爽

人工智能

在电子设备领域,散热是一个至关重要但经常被忽视的方面。树莓派也不例外,尤其是在繁重的工作负载或高温环境下。过热会导致性能下降、系统不稳定甚至永久性损坏。因此,为树莓派配备适当的散热解决方案至关重要。

一种流行且有效的散热方法是使用风扇。风扇可以通过将热空气从设备中排出,帮助降低温度。然而,风扇的速度通常是固定的,这可能导致噪音和不必要的功耗。

为了更有效地控制风扇转速,可以使用脉宽调制 (PWM) 技术。PWM 是一种数字信号,它通过改变脉冲的宽度来调节设备的功率。通过将 PWM 信号应用于风扇,我们可以根据需要调整风扇的速度。

在本文中,我们将逐步介绍如何在树莓派上使用 PWM 控制风扇转速。我们将涵盖必要的硬件和软件,并提供详细的分步说明。

硬件要求:

  • 树莓派
  • 树莓派风扇
  • 面包板
  • 跳线

软件要求:

  • Raspbian 操作系统
  • WiringPi 库

步骤 1:安装 WiringPi 库

WiringPi 是一个 C 库,用于在树莓派上控制 GPIO 引脚。它提供了对 GPIO 引脚的低级访问,这对于 PWM 控制至关重要。要安装 WiringPi,请打开终端并输入以下命令:

sudo apt-get update
sudo apt-get install wiringpi

步骤 2:连接风扇

将风扇的正极引脚连接到面包板的正极轨,将负极引脚连接到面包板的负极轨。然后,将面包板的任一 GPIO 引脚连接到风扇的控制引脚。

步骤 3:确定 GPIO 引脚名称

要确定所用 GPIO 引脚的名称,请运行以下命令:

gpio readall

输出将显示所有 GPIO 引脚的当前状态及其相应的名称。

步骤 4:创建 PWM 程序

使用你喜欢的文本编辑器创建一个名为 pwm_fan.c 的新文件。将以下代码复制到文件中:

#include <wiringPi.h>
#include <stdio.h>

int main() {
    // 设置 GPIO 引脚为输出模式
    wiringPiSetup();
    pinMode(21, OUTPUT);

    // 设置 PWM 频率为 50Hz
    pwmSetMode(PWM_MODE_MS);
    pwmSetClock(50);
    pwmSetRange(1024);

    // 设置 PWM 占空比为 50%
    pwmWrite(21, 512);

    // 循环运行
    while (1) {
        // 每 1 秒改变占空比
        for (int i = 0; i <= 1024; i++) {
            pwmWrite(21, i);
            delay(10);
        }
        for (int i = 1024; i >= 0; i--) {
            pwmWrite(21, i);
            delay(10);
        }
    }

    return 0;
}

步骤 5:编译并运行程序

保存 pwm_fan.c 文件并使用以下命令进行编译:

gcc pwm_fan.c -o pwm_fan

编译完成后,运行程序:

sudo ./pwm_fan

解释:

此程序使用 WiringPi 库来设置 GPIO 引脚为输出模式,并启用 PWM 功能。它将 PWM 频率设置为 50Hz,范围设置为 1024,并初始占空比设置为 50%。

程序然后进入一个无限循环,每秒改变 PWM 占空比。占空比从 0% 线性增加到 100%,然后再从 100% 线性降低到 0%。这将导致风扇速度从最小到最大再回到最小。

调整 PWM 占空比

你可以通过修改 pwmWrite(21, i) 行中的 i 值来调整 PWM 占空比。i 的值在 0 到 1024 之间,其中 0 表示 0% 占空比,1024 表示 100% 占空比。

结论

通过使用 PWM 控制树莓派风扇转速,你可以有效地降低设备温度,同时保持安静和节能。这对于延长树莓派的使用寿命和确保其稳定运行至关重要。

我们鼓励你尝试本教程并根据自己的具体需求调整代码。请随时在评论部分提出问题或分享你的见解。让我们共同保持我们的树莓派凉爽!