2600 Spanner WoodgasCHP プラント 発電能力 45kW~1MW(el) 熱出力 105kW ~2MW(th) 熱の特性 行き: 最高温度85度
致冷晶片冰箱 - yenstation.synology.me€¦ · Web view採用TEC-12708 127為熱電偶係數...
Transcript of 致冷晶片冰箱 - yenstation.synology.me€¦ · Web view採用TEC-12708 127為熱電偶係數...
目錄目錄前言_________________________________________________________________________________________________________
規劃_________________________________________________________________________________________________________
元件選擇、材料選用______________________________________________________________________________________
水冷系統___________________________________________________________________________________________________
硬體_________________________________________________________________________________________________________
軟體_________________________________________________________________________________________________________
測試驗證前言專題目的利用製冷晶片製作冰箱,並使用 M128 當作控制晶片,去控制各個元件。中英文關鍵字:DIY cooler with TEC自製致冷晶片小冰箱創新點子列表說明:利用水冷系統將製冷晶片產生之熱導出涉及技術項目:控制系統(使用 AVR studio4 製作)電腦監測(使用 VB.NET 製作)DS1820 溫度計控制PWM控制風扇水冷系統隔熱機構設計
頁 1
測試驗證規劃功能方塊構想:
功能方塊實現:導冷:利用鰭片以及風扇進行冰箱內部空氣流動,加快空間溫度降低。散熱:利用水冷系統,水箱馬達、水冷頭、水冷排加風扇,這三個零件為一個循環進
行散熱。水冷頭貼齊製冷晶片熱面。供電設備:由電腦電供(12V)、繼電器、馬達驅動模組組成控制設備:ASA主板一塊,並將控制程式燒入晶片,進行各元件的控制溫度監測:將3個溫度感測器放置在冰箱內、導冷鰭片、冰箱外部,分別感測、並將
溫度回傳進行控制,並在PC端設計人機介面觀測。
頁 2
測試驗證元件選擇、材料選用ASA 控制板:使用 Atmega128 作為微控制器的晶片,ASA 控制板同時控制各個模組,並將採集到的資料傳到電腦的軟體裡進行繪圖和統計,或是接收來自電腦的命令,並做出相對應的動作。電源:採用拆機的 350W 電腦電源供應器。PWM 電機驅動模組選用:因為 avr 晶片的 PORT 最大電流約為 5v、20ma,無法正常驅動風扇所以必須要外加電機驅動電路。平均一個風扇所需的電流為 0.8A*2=1.6A 模組驅動的最大電流為 12V、2
A,可以使風扇工作正常。繼電器模組選用:因為 ASA 電路板無法提供製冷晶片足夠的電流,故使用繼電器做 on/off 控制開關,繼電器模組同時控制水箱馬達和製冷晶片。水箱馬達規格為 12V 0.33A,製冷晶片規格為 12V 6A 而繼電器規格為 DC 30V 10A 可以讓製冷晶片工作在安全範圍內。溫度感測模組選用:實驗所需量測的精度,並沒有很高,所以選擇常見且資料豐富的 DS18B20。DS18B20 是屬於 1-wire 通訊家族,特色是可以只使用一條線和 ASA 電路板進行溝通,量測範圍為攝氏-55~125,最大解析度為 12bit,專題將使用 3 個溫度感測器,分別量測 散冷排、冰箱外部、及內部的溫度。
頁 3
測試驗證製冷晶片模組選用:採用 TEC-12708 127 為熱電偶係數 08 為最大電流數 實際上在 12V 工作電壓下熱面溫度至少有 70~80 度以上,用 50 度來估計,參考(圖 2), 假設熱面溫度在 75 度室溫為 25 度C(冷面溫度) 溫差大約為 50 度此時在 12V 工作電壓下 工作電流約為 5.4A
Qc 約為 18W Qc 為冷面吸收的功率 Qp 為製冷晶片功率= 12V*5.4A =64.8 W heat sink
熱排量為 64.8+18=82.8Watt ,在選用排熱系統 heat sink 的負荷要高於 84.8watt。啟動製冷晶片應該要避免低頻的反覆開關,低頻的反覆開關會造成,Termal Cycling。晶片裡的焊點在短時間造成收縮膨脹,會容易脫落,如果使用 PWM 控制頻率要大於2000~3000 以上 避免 Thermal cycling 的產生,但使用 PWM 配合 Nchannel 控制效率並不高,會在 nchannel 上產生不必要的熱故配合繼電器使用 on/off 控制效率較高。
頁 4
圖一 TEC-12708 127
Performance Specifications圖二 TEC-12708 127
溫度─電壓 關係圖
圖三 TEC-12708 127
功率─溫度差 關係圖
測試驗證水冷系統完整水冷系統循環:幫浦->水冷頭->散熱排->水箱->幫浦幫浦選用:幫浦功能在於驅動整個水路,讓水箱的水經過一個完整的水循環。幫浦空轉有可能會燒壞,所以在啟動幫浦前要先把水路裡多餘的空氣排除,再啟動。因為冰箱的尺寸沒有很大用一般 揚程 2m 的小馬達即可。水冷頭選用:水冷頭功能在和製冷晶片的熱面做熱交換,所以非常重要。水冷頭面積一定要能完全覆蓋在製冷晶片表面,且表面要平整光滑(需做研磨加工),水冷頭和製冷晶片間務必要塗上散熱膏幫助散熱和黏合散熱排:散熱排最大的功能是裡用大面積的鰭片和空氣進行熱交換,將水路裡的熱散出去為什麼要採用水冷,而不採用空冷:雖然空冷的進風量比水冷的進水量大很多,但空冷需要比較大的面積做散熱,且水的比熱約為空氣的 4 倍,單位體積可以帶走的能量也約是空氣的 4 倍,可以很有效抑制小面積的溫度上升,製冷晶片的排熱會很集中在熱面區,正常工作電壓下,不接散熱器,會使熱面溫度瞬間升高,約在通電後 2~5 秒(啟動瞬間製冷效率最高)即可達到 1
00 度以上 而製冷晶片裡的接點是使用低熔點銲錫(138)當超過時會使接點脫落,更嚴重的會燒壞半導體的部分。.
頁 5
測試驗證
程式碼:1. /*----------------Include---------------------*/ 2. #include "ASA_Lib.h" 3. /*---------------Define------------------------*/ 4. float onewire_temperature(unsigned char addr); 5. unsigned char ds18b20_reset(unsigned char addr); 6. void ds18b20_write_byte(unsigned char value,unsigned char
addr); 7. unsigned char ds18b20_read_byte(unsigned char addr); 8. 9. float temp; 10. float temp0; 11. float temp1; 12. /*-----------------Main-------------------------*/ 13. int main( void ) { 14. int goal=5; 15. char str[15]; 16. char change=0; 17. char flag=1; 18. char start=1; 19. char data; 20. ASA_M128_set(); 21. /*----------relay pin------------*/ 22. DDRC=0xff; 23. PORTC=0xff; 24. PORTC&=~0x08; 25. /*---------pwm 設定---------------*/ 26. DDRB|=0x80; //PB7 27. TCCR2=0x72; // 28. OCR2=0x75; // 29. /*------------------------------*/ 30. _delay_ms(3000); 31. temp =onewire_temperature(0); 32. temp1=onewire_temperature(1); 33. temp0=onewire_temperature(2); 34. printf("\n---------start--------\n"); 35. 36. while(1){ 37. if(UCSR0A&(1<<RXC)) 38. scanf("%c",&data);
頁 9
測試驗證39. if(data=='1'){ 40. PORTC|=0x08; 41. printf("on\n"); 42. } 43. else if(data=='0'){ 44. PORTC&=~0x08; 45. printf("off\n"); 46. } 47. /***************************************/ 48. temp=onewire_temperature(0); 49. _delay_ms(1); 50. temp1=onewire_temperature(1); 51. _delay_ms(1); 52. temp0=onewire_temperature(2); 53. printf("##%.2f,%.2f,%.2f\n",temp,temp1,temp0); 54. _delay_ms(500); 55. /////////////////////////////////// 56. if (temp0<(goal-1.5)){ 57. PORTC|=0x02; //冷晶片關上 58. PORTC|=0x01; //馬達關上 59. } 60. else if(temp0>(goal+1.5)){ 61. PORTC&=~0x01; //馬達打開 62. PORTC&=~0x02; //冷晶片打開 63. } 64. }//while end 65. } //end 66. 67. unsigned char ds18b20_reset(unsigned char addr){ 68. unsigned char i; 69. DDRA|=1<<(addr); 70. PORTA&=~(1<<(addr)); 71. _delay_us(280); 72. PORTA|=1<<(addr); 73. _delay_us(100); 74. DDRA&=~(1<<(addr)); 75. i=PINA; 76. _delay_us(500); 77. return i; 78. } 79. void ds18b20_write_byte(unsigned char value,unsigned char
addr){
頁 10
測試驗證80. 81. for(int i=0;i<8;i++){ 82. DDRA|=1<<(addr); 83. PORTA&=~(1<<(addr)); 84. _delay_us(10); 85. if(value & 0x01) 86. PORTA|=1<<(addr); 87. _delay_us(100); 88. PORTA|=1<<(addr); 89. value=value>>1; 90. } 91. } 92. 93. unsigned char ds18b20_read_byte(unsigned char addr){ 94. unsigned char value=0x00; 95. for(int i=0;i<8;i++){ 96. value=value>>1; 97. DDRA|=1<<(addr); 98. PORTA&=~(1<<(addr)); 99. _delay_us(10); 100. PORTA|=1<<(addr); 101. DDRA&=~(1<<(addr)); 102. if(PINA & 1<<(addr)){ 103. value|=0x80; 104. } 105. _delay_us(50); 106. } 107. return value; 108. } 109. float onewire_temperature(unsigned char addr)//線上只有 1個
sensor才使用 110. { 111. float temperature=0; 112. unsigned int tempH=0,tempL=0; 113. ds18b20_reset(addr); 114. ds18b20_write_byte(0xcc,addr); 115. ds18b20_write_byte(0x44,addr); 116. _delay_us(100); 117. ds18b20_reset(addr); 118. ds18b20_write_byte(0xcc,addr); 119. ds18b20_write_byte(0xbe,addr); 120. _delay_us(500); 121.
頁 11
測試驗證122. tempL=ds18b20_read_byte(addr); 123. tempH=ds18b20_read_byte(addr); 124. if (tempH&0x80) 125. { 126. tempH^=0xff; 127. tempL^=0xff; 128. tempL+=1; 129. temperature=(float)tempL*0.0625+(float)
(tempH&0x07)*16; 130. temperature=temperature*(-1.01); 131. } 132. else 133. { 134. temperature=(float)tempL*0.0625+(float)
(tempH&0x07)*16; 135. } 136. return temperature; 137. }
頁 12
測試驗證PC 端溫度監控軟體(使用 VB.NET 製作)軟體功能簡介:1. 透過串列通訊,和不同種的微控制器做溝通2. 即時接收來自微控控器的資料3. 將得到的資料繪成圖表,方便觀看溫度趨勢4. 可將資料輸出成 excel 或 txt 檔案5. 可對微控器做簡單的操作介面使用圖:
頁 13