3D打印噴頭的熱敏電阻更換
我的3D打印機是alt design的這臺ATOM 3D打印機, 開工不到一個禮拜, 溫度感應(yīng)就掛了, 可能我的運氣特差吧!
原廠本來說要換一組噴嘴給我, 但我自己覺得如果這個溫度感應(yīng)這麼脆弱, 我應(yīng)該要能自己處理才對, 於是就想自己買熱敏電阻回來修復它。
這篇是自己從失敗中學到的一些經(jīng)驗分享, 重點說明噴頭上熱敏電阻的挑選及安裝方式。
規(guī)格
熱敏電阻以溫度和阻值的關(guān)系, 可分兩種:
PTC: 正溫度系數(shù), 也就是溫度愈高, 阻值愈大。
NTC: 負溫度系數(shù), 也就是溫度愈高, 阻值愈小。
3D打印機通常用NTC的熱敏電阻, 且因為噴嘴工作溫度大約在200度C左右, 所以所用的熱敏電阻至少要耐溫到250度左右。巿面上一般可找到耐溫到260度或300度的都可以。
如果買到耐熱溫度不足的, 就會像我第一次一樣, 裝上去時溫度好像是對的, 可是到了150度左右溫度顯示卻上不去, 噴嘴都熱到冒泡了, 也出現(xiàn)了焦味(熱敏電阻被烤焦了), 顯然溫度是錯的!
另一個重要的參數(shù)是B值, 它表示熱敏電阻隨溫度變化的程度, 公式如下:
R(t) = R0 * Exp(B*((1/t) - (1/t0)))
其中R0表示在溫度t0時的阻值, 一般常見如25度C下100K或10K等等不同的阻值。
R(t)則表示在溫度t時的阻值, 其中 t 和 t0 都要用凱氏溫度表示, 所以等於是273.13加上攝氏溫度。
知道 t0, R0, 和 B 值, 將公式輸入Excel就可以由 R(t) 算出 t 值。
在3D打印機裡, 這個熱敏電阻會串一個pull-high電阻, 通常是4.7K ohm, 然后由ADC讀出分壓即可算出阻值; 知道阻值就等於知道了溫度。
例如若採100K, B值為3950的熱敏電阻, 則在100度C時可算出R(t)=6.97K ohm, 再和4.7K ohm做分壓, 由10bit ADC讀出值為611。
基本上這就是打印機感應(yīng)噴嘴上溫度的方式, 這部份會直接對應(yīng)到firmware的原始碼中。了解了這樣, 萬一找不到和原來一模一樣規(guī)格的熱敏電阻, 自己改firmware也是可以的。
基本理論知道了, 接下來就是實作。
先看一下我找到的熱敏電阻, 長這樣, 是玻璃封裝的, 應(yīng)該比較武凍逃一點。
它的資料如下:
資料:負溫度系數(shù)(NTC)熱敏電阻
型號:B2-100-3950-1
R @ 25:K100K-1%
B25/50:K3950-1%
元素:熱敏電阻型MJB2
特性
(1)電氣特性
A:電阻值:R(25°C)= 100K±1%
B:B值:B=3950±1%(在25℃和50℃的電阻值計算出)
C:絕緣電阻50MΩ或以上DC500V兆歐表(玻璃和引線之間)
(2)熱時間常數(shù)(τ):τ≤10?17S(在靜止空氣中)
(3)熱耗散系數(shù)(δ):δ=1.1~1.6MW/°C(在靜止空氣中)
(4)工作溫度范圍:-50~ 260°C
換電阻只要兩個焊點, 其實也非常簡單。要注意的是要用鐵氟龍?zhí)坠馨央娮鑳啥俗龊媒^緣, 并做好固定。
固定的材料當然也是要選擇耐熱的, 原來的設(shè)計是用石綿(應(yīng)該是吧)襯墊夾住熱敏電阻, 但那個襯墊在我拆裝幾次后就已經(jīng)破爛到無法使用了。在這個步驟我花了很多時間, 最后還是用鐵氟龍膠帶從旁邊固定, 讓熱敏電阻直接靠在加熱片上。
把熱敏電阻固定好, 噴嘴裝回去, 硬體部份就大功告成了。注意裝的時候噴嘴要鎖緊, 否則材料會溢出直接在加熱片上加熱!
接下來是firmware的部份, 因為我買的熱敏電阻規(guī)格和原先的不太一樣, 所以要改一下firmware, 溫度才不會弄錯。
在原廠附的SD卡裡有完整的firmware, 這裡面有兩個檔要改:
1. Configuration.h
在原程式碼第113行開始是熱敏電阻設(shè)定說明, 實際上定義在142~145行。
這裡可以定義四個熱敏電阻, 其中最后一個是加溫床。
ATOM只用了一個噴嘴上的溫度感應(yīng), 所以只將 TEMP_SENSOR_0 設(shè)為 5。其它叁個都設(shè)為 0, 表示不使用。
由程式碼的註解中可以知道 5 表示 ATC Semitec 104GT-2 這顆熱敏電阻。
我保留了原來的代碼定義, 自己增加了一個代碼 11 代表我所用的熱敏電阻。
2. thermistortables.h
這個檔案定義了不同溫度感應(yīng)的對照參數(shù), 如原來的程式碼是設(shè)定 TEMP_SENSOR_0 為 5, 在這裡就會參考到 temptable_5[][2] 這個陣列, 如下:
每一行就是一個讀取值和溫度的對應(yīng)。例如 20度時ADC的讀值是986。這個對應(yīng)關(guān)系可由前面的公式計算出來, 或像ATC Semitec是在datasheet中直接給了對照表, 但后再以電阻分壓計算出來。有興趣的朋友只要拿104GT-2的datasheet查一下, 對一下應(yīng)該就了解了。
同樣的方式, 我們?yōu)樾滦吞柕臒崦綦娮杞艘粋對照表, 先在Excel裡把公式建進去, 拉出不同溫度對應(yīng)的讀值。順便把溫度和阻值的關(guān)系畫出來, 可以看出NTC熱敏電阻的阻值和溫度的關(guān)系。
再把這個表放到firmware中, 定義在temptable_11[][2]裡, 如下:
將打印機的USB接上, 開啟Arduino就可以將改過的firmware上傳了: |
|