適當(dāng)?shù)纳崾钱?dāng)今電子產(chǎn)品的基本規(guī)則。電子元件的最佳工作溫度為 25 度(標(biāo)準(zhǔn)室溫)。一些商業(yè)設(shè)備中的散熱沒(méi)有正確完成,這會(huì)影響設(shè)備的壽命和性能。因此,嵌入一個(gè)緊湊的自動(dòng)冷卻風(fēng)扇控制器板會(huì)很有用。此外,它還可用于保護(hù)您自己設(shè)計(jì)的電路及其功率元件,例如穩(wěn)壓器、MOSFET、功率晶體管等。
之前,我已經(jīng)介紹了一個(gè)控制冷卻風(fēng)扇的電路,但是,我的目的是不使用任何微控制器并使其盡可能簡(jiǎn)單。因此,該設(shè)備是風(fēng)扇的簡(jiǎn)單開(kāi)/關(guān)開(kāi)關(guān),具體取決于定義的溫度閾值。這一次,我決定設(shè)計(jì)一個(gè)完整且更專業(yè)的電路,使用 LM35 溫度傳感器和 ATTiny13 微控制器來(lái)控制大多數(shù)標(biāo)準(zhǔn)風(fēng)扇(25KHz PWM)。
我使用了 SMD 元件,PCB 板很緊湊。它可以控制一個(gè)或多個(gè)并聯(lián)的標(biāo)準(zhǔn)3線或4線風(fēng)扇,例如CPU風(fēng)扇。此外,可以使用繼電器保護(hù)目標(biāo)設(shè)備/組件免受過(guò)熱影響。還通過(guò)視覺(jué)/聲音警告(閃爍的 LED 和蜂鳴器)通知用戶。
為了設(shè)計(jì)原理圖和 PCB,我使用了 Altium Designer 22 和 SamacSys 組件庫(kù)(Altium 插件)。我最初在面包板上測(cè)試了電路。我使用 Siglent SDM3045X 萬(wàn)用表準(zhǔn)確檢查電壓,并使用 Siglent SDS1104X-E 示波器檢查 PWM 脈沖的形狀、占空比和頻率。
風(fēng)扇控制器技術(shù)規(guī)格
- 電源電壓:12VDC(見(jiàn)正文)
- 負(fù)載過(guò)溫保護(hù):有(60度以上)
- PWM頻率:25KHz
- 風(fēng)扇電壓:12VDC
- 最大負(fù)載電壓/電流:250V-10A (AC/DC)
- 有效溫度閾值:25C 至 60C
- 過(guò)溫警告:是(閃爍的 LED 和蜂鳴器)
電路分析
Figure 1 shows the schematic diagram of the PWM cooling FAN controller device. The heart of the circuit is an ATTiny13 microcontroller [1]. It reads the temperature values and decides what to do with the FAN, Relay, and the Buzzer.
According to the ATTiny13 datasheet: “The ATtiny13 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced RISC architecture. By executing powerful instructions in a single clock cycle, the ATtiny13 achieves throughputs approaching 1 MIPS per MHz allowing the system designer to optimize power consumption versus processing speed.”
I have configured the clock source of the IC1 for 9.6MHz, internal. It is enough for our applications without using an external clock source, such as a crystal. R1 is a pull-up resistor for the Reset pin to prevent the MCU to Reset unwantedly. C2 and C3 are decoupling capacitors to reduce the noise of the +5V supply.
Power Supply for Fan Controller
電源的主要元件是REG1,它是一個(gè)78L05穩(wěn)壓器。我為此調(diào)節(jié)器選擇了 SO-8 封裝。P5 是一個(gè)兩針公 XH 連接器,為控制板和風(fēng)扇供電。電源電壓 (12V) 的電流取決于連接的風(fēng)扇數(shù)量,否則 +5V 電源軌的電流消耗非常低。R7和C7在輸入端構(gòu)建了一個(gè)低通RC濾波器,以盡可能降低輸入噪聲,但RC濾波器上的壓降對(duì)穩(wěn)壓器的工作影響不大。D3 是一個(gè) 0805 綠色 LED,用于顯示正確的電源供應(yīng),R8 將電流限制到 D3。C5 和 C7 用于降低輸出電壓噪聲。
警報(bào)
此部分的組件是 R5、R6、P4 和 D2。D2 是一個(gè) 0805 紅色 LED,當(dāng)發(fā)生過(guò)熱時(shí)會(huì)閃爍。R5 限制 D2 電流。P4 為 2 針 XH 公頭連接器,用于連接 5V 蜂鳴器。R6 限制蜂鳴器的電流。
中繼
該部分的組件是 Q1、D1、R4、C4、K1 和 P3。K1 是一個(gè) 12V-10A 繼電器,用于在發(fā)生過(guò)熱時(shí)關(guān)閉負(fù)載。它是常閉(NC),這意味著負(fù)載是打開(kāi)的。D1 保護(hù) Q1 免受繼電器電感器的反向電流的影響,C4 抑制電流尖峰。Q1 是一個(gè) 2N7002 [3] Mosfet,用于切換繼電器。R4 用于拉低 Q1 的柵極引腳以避免不必要的觸發(fā)。
LM35 溫度傳感器
P1 是一個(gè) 3 針公 XH 連接器,用于將 LM35 傳感器連接到電路板。您應(yīng)該使用導(dǎo)熱膠將 LM35 安裝在散熱器上,并使用短線將傳感器連接到電路板。C1 是一個(gè)去耦電容,用于降低噪聲。
用于風(fēng)扇控制器的 AVR ISP 編程器
ISP 是一個(gè) 5 針公頭,用于對(duì)板載微控制器進(jìn)行編程。您可以使用任何您喜歡的編程器,例如便宜的 USBasp 編程器或類似的編程器。
12V 風(fēng)扇散熱
P2 是一個(gè) 3 針 XH 公頭連接器,用于將風(fēng)扇連接到電路板。Q2 用于將 PWM 脈沖傳輸?shù)斤L(fēng)扇的控制引腳。R2 是一個(gè) 10K 的上拉電阻,可將 5V PWM 信號(hào)電平轉(zhuǎn)換為 12V。R3 是一個(gè)下拉電阻器,以避免不必要地觸發(fā) Q3 的柵極引腳。圖 2 顯示了一個(gè)典型的 Intel CPU 風(fēng)扇,它可能是您使用此控制器板冷卻組件的選項(xiàng)之一。
PCB布局
圖 3 顯示了設(shè)計(jì)的 PCB 布局。它是一個(gè)兩層 PCB 板,除了繼電器和連接器外,其他組件都是 SMD。最小的封裝尺寸是 0805,焊接組件應(yīng)該沒(méi)有任何問(wèn)題,盡管您可以訂購(gòu)它完全組裝。
當(dāng)我決定為這個(gè)項(xiàng)目設(shè)計(jì)原理圖和 PCB 時(shí),我意識(shí)到我的組件庫(kù)存儲(chǔ)中沒(méi)有 Q1 、Q2、REG1 和 IC1 的組件庫(kù)。因此,像往常一樣,我選擇了 IPC 級(jí) SamacSys 組件庫(kù),并使用免費(fèi)的 SamacSys 工具和服務(wù)安裝了缺少的庫(kù)(原理圖符號(hào)、PCB 封裝、3D 模型)。導(dǎo)入庫(kù)有兩種方法:您可以訪問(wèn)componentsearchengine.com并手動(dòng)下載并導(dǎo)入庫(kù),或者您可以使用SamacSys CAD插件并自動(dòng)將庫(kù)導(dǎo)入/安裝到設(shè)計(jì)環(huán)境中。圖 4 顯示了所有支持的電子設(shè)計(jì) CAD 軟件. 很明顯,所有著名的球員都得到支持。我使用 Altium Designer,所以我使用 SamacSys Altium 插件安裝了缺少的庫(kù)(圖 5)。圖 6 顯示了 PCB 板和裝配圖的 3D 視圖。
微控制器代碼
我使用 Arduino IDE 編寫和編譯微控制器的代碼。我在庫(kù)管理器中安裝了 MicroCore ,以便能夠?yàn)?ATtiny13 編譯代碼。你可以考慮下面的代碼:
#include
// Clock at 9.6MHz
#define F_CPU 9600000
const int PWMPin = 1;
analog_pin_t PotPin = A3;
const unsigned char relayPin = 0, buzzerPin = 4;
unsigned int rawTemp = 0, out = 0;
unsigned char counter = 0;
void setup()
{
analogReference(INTERNAL1V1);
pinMode(PWMPin, OUTPUT);
pinMode(relayPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
digitalWrite(relayPin, 0);
digitalWrite(buzzerPin, 0);
// Phase Correct PWM Mode, no Prescaler
// PWM on Pin 1(PB1), Pin 0(PB0) disabled
// 9.6MHz / 192 / 2 = 25Khz
TCCR0A = _BV(COM0B1) | _BV(WGM00);
TCCR0B = _BV(WGM02) | _BV(CS00);
// Set TOP and initialize duty cycle to zero(0)
OCR0A = 192; // TOP - DO NOT CHANGE, SETS PWM PULSE RATE
OCR0B = 192; // duty cycle for Pin 1(PB1)
}
void loop()
{
rawTemp = analogRead(PotPin) + rawTemp;
counter ++;
if (counter == 15) {
rawTemp = rawTemp / 15;
if (rawTemp < 232) {
OCR0B = 192;
} else {
out = map(rawTemp, 232, 558, 192, 0);
OCR0B = out;
}
if (rawTemp > 560)
{
emergency_OFF();
}
counter = 0;
rawTemp = 0;
}
_delay_ms(25);
}
void emergency_OFF() {
while (1) {
digitalWrite(relayPin, 1);
digitalWrite(buzzerPin, 1);
_delay_ms(250);
digitalWrite(buzzerPin, 0);
_delay_ms(250);
}
}
我已將 ADC 參考電壓定義為 1.1V 內(nèi)部。這意味著對(duì)于 1100mV 的輸入電壓,ADC 的最大值為 1023。LM35溫度傳感器25度輸出電壓為250mV,60度輸出電壓為600mV。因此,它非常適合 ADC 輸入范圍,最高 110 度,無(wú)需任何硬件修改。
要更改閾值,您應(yīng)該修改out = map(rawTemp, 232, 558, 192, 0),例如,將溫度上限閾值從 60 度增加到 70 度。
要安裝 MicroCore,您應(yīng)該在 Arduino IDE 的首選項(xiàng)部分的Additional Boards Manager URLs中插入此 URL :
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
圖 7 顯示了 Arduino IDE 的這一部分。
然后你應(yīng)該去Tools菜單和Boards Manager并安裝MicroCore。然后您將看到已安裝的板,如圖 8 所示。
要生成 HEX 文件并對(duì) MCU 進(jìn)行編程,您應(yīng)該轉(zhuǎn)到Sketch菜單并按Export Compiled Binary。圖 9 顯示了該過(guò)程的圖片。
然后只需將您的編程器連接到 PCB 板的 ISP 接頭并編程 MCU。熔絲位應(yīng)設(shè)置在9.6MHz 內(nèi)部時(shí)鐘上,沒(méi)有時(shí)鐘分頻。
測(cè)試
從 YouTube 視頻中可以清楚地看出,在設(shè)計(jì)原理圖和 PCB 之前,我在面包板上測(cè)試了電路。因此,您可以確保一切正常。圖 10 顯示了 FAN 控制器引腳的 PWM 信號(hào)。我使用 Siglent SDS1104X-E 示波器捕獲信號(hào)。
風(fēng)扇控制器物料清單
圖 11 顯示了該項(xiàng)目的材料清單和零件編號(hào)。
審核編輯:劉清
-
微控制器
+關(guān)注
關(guān)注
48文章
7492瀏覽量
151080 -
PWM
+關(guān)注
關(guān)注
114文章
5148瀏覽量
213433 -
RC濾波器
+關(guān)注
關(guān)注
0文章
75瀏覽量
16647
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論