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