Pi Fan Case

2026-03-25 10:51:00

我沒想過有一天會回來玩麵包板…

紀錄拍照

以下由 ChatGPT 藉由實作過程中的問答對話所產生的紀錄文章


Raspberry Pi 5 靜音散熱改造紀錄(PWM 風扇 + 自製機殼)

一、起點:為什麼要做這件事?

我原本將 Raspberry Pi 作為日常桌機使用,並開始嘗試自製機殼,把 Pi 與一顆 2.5 吋硬碟整合在一起。

但很快遇到一個問題:

機殼把整個系統「包起來」後,熱空氣被困在內部,導致溫度上升,原廠風扇頻繁高速運轉,噪音變得明顯。

因此我開始思考:

  • 不只是「降溫」
  • 而是「改善風流」
  • 並且 維持低噪音

二、初步嘗試

1. 加裝風扇

一開始的想法很直覺:

  • 在機殼底部加一顆風扇(上吹)
  • 協助氣流循環

嘗試過:

  • 5V 風扇(直接供電)
  • GPIO 3.3V 供電(降低轉速)

結果:

  • ✔ 可以轉
  • ❌ 噪音仍偏大(風切聲)
  • ❌ 無法控制轉速

2. 嘗試降壓

也考慮過:

  • 串接電阻降電壓
  • 使用可變電阻

但問題是:

這些方法不穩定,且難以精準控制


三、轉向 PWM 控制

1. 為什麼選 PWM?

我後來理解到:

  • 風扇控制不是「降電壓」的問題
  • 而是應該用 PWM(脈衝寬度調變)

PWM 的優點:

  • 可精準控制轉速(透過 duty cycle)
  • 不影響供電穩定性
  • 可程式控制

2. 選擇 4-pin PWM 風扇

4-pin 定義:

顏色 功能
5V
GND
轉速回報(未使用)
PWM 控制

四、Raspberry Pi 5 的限制

一開始打算使用 pigpio,但遇到問題:

  • 在 Pi 5 上不再適用
  • 套件也無法直接安裝

因此改用:

lgpio


五、PWM 控制實作(lgpio)

1. 基本程式

#!/usr/bin/env python3  

import lgpio  
import time  

CHIP = 0
GPIO = 18  

h = lgpio.gpiochip_open(/blog/h4m6QKUe4Pu3b/CHIP)  

lgpio.gpio_claim_output(/blog/h4m6QKUe4Pu3b/h, GPIO)  

# 啟動  
lgpio.tx_pwm(/blog/h4m6QKUe4Pu3b/h, GPIO, 2000, 100)  
time.sleep(/blog/h4m6QKUe4Pu3b/2)  

# 降速  
lgpio.tx_pwm(/blog/h4m6QKUe4Pu3b/h, GPIO, 2000, 40)  

try:  while True:  time.sleep(/blog/h4m6QKUe4Pu3b/1)  
except KeyboardInterrupt:  pass  

lgpio.tx_pwm(/blog/h4m6QKUe4Pu3b/h, GPIO, 0, 0)  
lgpio.gpiochip_close(/blog/h4m6QKUe4Pu3b/h)  

2. 遇到的問題

問題一:風扇不轉

原因:

  • PWM 頻率過低或接線錯誤

解法:

  • 確認接線
  • 提高 duty(先 100% 啟動)

問題二:bad PWM frequency

原因:

  • lgpio 不支援 25kHz

解法:

  • 改用 5000 ~ 10000 Hz

問題三:GPIO 沒作用

原因:

  • 未 claim output

解法:

lgpio.gpio_claim_output(/blog/h4m6QKUe4Pu3b/h, GPIO)  

六、最終接線

風扇接法

  • 5V → 紅線
  • GND → 黑線
  • GPIO18 → 藍線

下拉電阻(解決關機空轉)

GPIO18 ──┬──→ 風扇 PWM(藍)  │└──→ 10kΩ ───→ GND  

七、為什麼需要下拉電阻?

問題:

Pi 關機後,GPIO 會變成浮空狀態(high impedance)

導致:

  • 風扇 PWM 腳可能收到雜訊
  • 出現「微轉」或異音

解法:

加一顆 10kΩ 下拉電阻,將 PWM 腳強制拉到 0V

效果:

  • ✔ 關機完全停止
  • ✔ 避免不穩定狀態

八、風流設計(機殼)

設計方向:

  • 風扇置底,上吹
  • 導流為主,不追求風量
  • 原廠風扇負責核心散熱

結果:

  • 溫度常態維持在 <50°C,偶爾超過
  • 原廠風扇較少全速運轉
  • 噪音顯著降低

九、其他踩過的坑

  • GPIO 不等於 5V/3.3V(電源腳不可控)
  • PWM 與一般 IO 不同(硬體 vs 軟體)
  • pin 編號 vs GPIO 編號容易混淆
  • 杜邦線接觸不良

十、目前成果

✔ PWM 控制成功
✔ 噪音降低
✔ 溫度穩定
✔ 開機自動啟動風扇程式
✔ 關機風扇完全停止


十一、尚未解決(未來可研究)

  • PWM 頻率與噪音最佳化
  • 更精細的溫度控制(自動調速)
  • 更好的風流結構設計
  • 是否改用硬體 PWM(更高頻)

十二、總結

這次專案從「單純降溫」開始,最後變成:

一個完整的「散熱系統設計」

學到的核心:

  • GPIO 控制不只是接線,而是系統設計
  • PWM 是控制風扇的正確方式
  • 機構(風流)與電子同樣重要

最後一句話

散熱不是讓風更大,而是讓風走對地方。


以上由 ChatGPT 藉由實作過程中的問答對話所產生的紀錄文章

最後成果

1
2

©2011-2025 RZ Fang創用 CC 授權條款