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