適當(dāng)?shù)纳崾钱?dāng)今電子產(chǎn)品的基本規(guī)則。電子元件的最佳工作溫度為25度(標(biāo)準(zhǔn)室溫)。一些商業(yè)設(shè)備中的散熱沒有正確完成,這會影響設(shè)備的壽命和性能。因此,嵌入一個緊湊的自動冷卻風(fēng)扇控制器板會很有用。此外,它還可用于保護您自己設(shè)計的電路及其功率元件,例如穩(wěn)壓器、MOSFET、功率晶體管等。
之前,我已經(jīng)介紹了一個控制冷卻風(fēng)扇的電路,但是,我的目的是不使用任何微控制器并使其盡可能簡單。因此,該設(shè)備是風(fēng)扇的簡單開/關(guān)開關(guān),具體取決于定義的溫度閾值。這一次,我決定設(shè)計一個完整且更專業(yè)的電路,使用LM35溫度傳感器和ATTiny13微控制器來控制大多數(shù)標(biāo)準(zhǔn)風(fēng)扇(25KHzPWM)。
我使用了SMD元件,PCB板很緊湊。它可以控制一個或多個并聯(lián)的標(biāo)準(zhǔn)3線或4線風(fēng)扇,例如CPU風(fēng)扇。此外,可以使用繼電器保護目標(biāo)設(shè)備/組件免受過熱影響。還通過視覺/聲音警告(閃爍的LED和蜂鳴器)通知用戶。
為了設(shè)計原理圖和PCB,我使用了AltiumDesigner22和SamacSys組件庫(Altium插件)。要獲得高質(zhì)量的制造PCB板,您可以將Gerbers發(fā)送到PCBWay并使用componentsearchengine.com購買原始組件。我最初在面包板上測試了電路。我使用SiglentSDM3045X萬用表準(zhǔn)確檢查電壓,并使用SiglentSDS1104X-E示波器檢查PWM脈沖的形狀、占空比和頻率。
負(fù)載過溫保護:有(60度以上)
PWM頻率:25KHz
風(fēng)扇電壓:12VDC
有效溫度閾值:25C至60C
過溫警告:是(閃爍的LED和蜂鳴器)
圖1-PWM散熱風(fēng)扇控制器裝置示意圖
圖1顯示了PWM冷卻風(fēng)扇控制裝置的示意圖。該電路的核心是一個ATtiny13微控制器[1]。它讀取溫度值并決定如何處理風(fēng)扇、繼電器和蜂鳴器。
根據(jù)ATtiny13數(shù)據(jù)表:“ATtiny13是一款基于AVR增強型RISC架構(gòu)的低功耗CMOS8位微控制器。通過在單個時鐘周期內(nèi)執(zhí)行強大的指令,ATtiny13實現(xiàn)了接近1MIPS/MHz的吞吐量,使系統(tǒng)設(shè)計人員能夠優(yōu)化功耗與處理速度。”
我已將IC1的時鐘源配置為9.6MHz,內(nèi)部。對于我們的應(yīng)用程序而言,無需使用外部時鐘源(例如晶體)就足夠了。R1是復(fù)位引腳的上拉電阻,以防止MCU意外復(fù)位。C2和C3是去耦電容,用于降低+5V電源的噪聲。
電源
電源的主要元件是REG1,它是一個78L05穩(wěn)壓器[2]。我為此調(diào)節(jié)器選擇了SO-8封裝。P5是一個兩針公XH連接器,為控制板和風(fēng)扇供電。電源電壓(12V)的電流取決于連接的風(fēng)扇數(shù)量,否則+5V電源軌的電流消耗非常低。R7和C7在輸入端構(gòu)建了一個低通RC濾波器,以盡可能降低輸入噪聲,但RC濾波器上的壓降對穩(wěn)壓器的工作影響不大。D3是一個0805綠色LED,用于顯示正確的電源供應(yīng),R8將電流限制到D3。C5和C7用于降低輸出電壓噪聲。
警報
此部分的組件是R5、R6、P4和D2。D2是一個0805紅色LED,當(dāng)發(fā)生過熱時會閃爍。R5限制D2電流。P4為2針XH公頭連接器,用于連接5V蜂鳴器。R6限制蜂鳴器的電流。
中繼
該部分的組件是Q1、D1、R4、C4、K1和P3。K1是一個12V-10A繼電器,用于在發(fā)生過熱時關(guān)閉負(fù)載。它是常閉(NC),這意味著負(fù)載是打開的。D1保護Q1免受繼電器電感器的反向電流的影響,C4抑制電流尖峰。Q1是一個2N7002[3]Mosfet,用于切換繼電器。R4用于下拉Q1的柵極引腳以避免不必要的觸發(fā)。
LM35溫度傳感器
P1是一個3針公XH連接器,用于將LM35傳感器連接到電路板。您應(yīng)該使用導(dǎo)熱膠將LM35安裝在散熱器上,并使用短線將傳感器連接到電路板。C1是一個去耦電容,用于降低噪聲。
AVRISP
ISP是一個5針公頭,用于對板載微控制器進行編程。您可以使用任何您喜歡的編程器,例如便宜的USBasp編程器或類似的編程器。
12V風(fēng)扇
P2是一個3針XH公頭連接器,用于將風(fēng)扇連接到電路板。Q2用于將PWM脈沖傳輸?shù)斤L(fēng)扇的控制引腳。R2是一個10K的上拉電阻,可將5VPWM信號電平轉(zhuǎn)換為12V。R3是一個下拉電阻器,以避免不必要地觸發(fā)Q3的柵極引腳。圖2顯示了一個典型的IntelCPU風(fēng)扇,它可能是您使用此控制器板冷卻組件的選項之一。
圖2-一個英特爾CPU風(fēng)扇,它足夠便宜,可用于冷卻
PCB布局
圖3顯示了設(shè)計的PCB布局。它是一個兩層PCB板,除了繼電器和連接器外,其他組件都是SMD。最小的封裝尺寸是0805,焊接組件應(yīng)該沒有任何問題,盡管您可以訂購它完全組裝。
圖3-PWM冷卻風(fēng)扇控制電路的PCB布局
當(dāng)我決定為這個項目設(shè)計原理圖和PCB時,我意識到我的元件庫存儲中沒有Q1、Q2、REG1和IC1的元件庫。因此,像往常一樣,我選擇了IPC級SamacSys組件庫,并使用免費的SamacSys工具和服務(wù)安裝了缺少的庫(原理圖符號、PCB封裝、3D模型)。導(dǎo)入庫有兩種方法:您可以訪問componentsearchengine.com并手動下載和導(dǎo)入庫,或者您可以使用SamacSysCAD插件并自動將庫導(dǎo)入/安裝到設(shè)計環(huán)境中。
上圖顯示了所有支持的電子設(shè)計CAD軟件。很明顯,所有著名的球員都得到支持。我使用AltiumDesigner,所以我使用SamacSysAltium插件安裝了缺少的庫,如下圖。
PCB板的3D視圖和兩個組裝圖
微控制器的代碼
我使用ArduinoIDE編寫和編譯微控制器的代碼。我在庫管理器中安裝了MicroCore[9],以便能夠為ATtiny13編譯代碼。你可以考慮下面的代碼:
// 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)部。這意味著對于1100mV的輸入電壓,ADC的最大值為1023。LM35溫度傳感器25度輸出電壓為250mV,60度輸出電壓為600mV。因此,它非常適合ADC輸入范圍,最高110度,無需任何硬件修改。
要更改閾值,您應(yīng)該修改out=map(rawTemp,232,558,192,0),例如,將溫度上限閾值從60度增加到70度。
要安裝MicroCore,您應(yīng)該在ArduinoIDE的首選項部分的AdditionalBoardsManagerURLs中插入此URL:
https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
圖7顯示了ArduinoIDE的這一部分。
圖7-附加板管理器URL,ArduinoIDE首選項部分
然后你應(yīng)該去工具菜單和BoardsManager并安裝MicroCore。然后您將看到已安裝的板,如圖8所示。
圖8-安裝了MicroCore庫以支持ATtiny13MCU
要生成HEX文件并對MCU進行編程,您應(yīng)該轉(zhuǎn)到Sketch菜單并按ExportCompiledBinary。圖9顯示了該過程的圖片。
圖9-在ArduinoIDE中生成HEX文件
然后只需將您的編程器連接到PCB板的ISP接頭并編程MCU。熔絲位應(yīng)在9.6MHz內(nèi)部時鐘上設(shè)置,沒有時鐘分頻。
測試
在設(shè)計原理圖和PCB之前,我在面包板上測試了電路。因此,您可以確保一切正常。圖10顯示了FAN控制引腳的PWM信號。我使用SiglentSDS1104X-E示波器來捕獲信號。
圖10-25KHzPWM信號至風(fēng)扇(SilentSDS1104X-E)
材料清單
圖11顯示了該項目的材料清單和零件編號。
圖11-PWMCooling-FAN控制電路的物料清單
-
控制器
+關(guān)注
關(guān)注
112文章
16332瀏覽量
177812 -
ATtiny13
+關(guān)注
關(guān)注
0文章
30瀏覽量
14689 -
LM35
+關(guān)注
關(guān)注
2文章
83瀏覽量
18108
發(fā)布評論請先 登錄
相關(guān)推薦
評論