從去年夏令營全手工打造用來教學用的的艾力自走車開始,都是使用現成買的到的Arduino感應器模組,最近不滿足現成電子電路模組,組合成的尺寸太大且有不少不需要的接點,學習用Eagle畫電路圖,製作自己用電子電路製作需求,一開始用DIP插件專案,現在要進階SMD貼片專案。
SMD的如果用純手工焊,真的太辛苦了,就想參考網路成功製造迴焊爐的例子, 自己也來做一個,先請看Ben Hack Show有趣DIY的影片。
SMD的如果用純手工焊,真的太辛苦了,就想參考網路成功製造迴焊爐的例子, 自己也來做一個,先請看Ben Hack Show有趣DIY的影片。
主要材料 (總價約1200元):
- 小烤箱9L 一台
- SSR 固態繼電器 一個
- MAX6675 K型熱敏電阻溫度傳感器
- Arduino Uno
- 4位數數字LED TM1637
- 手機用電源充電頭(110V -> 5V)
實驗歩驟1 - 控制固態繼電器SSR
固態繼電器SSR 輸入側3V~24V,直接從Uno的數位腳位9,接到SSR輸入側+就可以,SSR輸入側另一頭是GND。其中不用加限流電阻,就可以直接驅動,有時加上電阻後壓降反而無法順利開關繼電器。繼電器輸出側控制110V的烤箱火線,通常是紅色線。
固態繼電器SSR 輸入側3V~24V,直接從Uno的數位腳位9,接到SSR輸入側+就可以,SSR輸入側另一頭是GND。其中不用加限流電阻,就可以直接驅動,有時加上電阻後壓降反而無法順利開關繼電器。繼電器輸出側控制110V的烤箱火線,通常是紅色線。
實驗歩驟2 - 讀取溫度
熱敏電阻有許多不同類型,這次用的就是K型,溫度感應範圍是到1024度,解析度為0.25°C,買來的MAX6675模組(https://www.adafruit.com/datasheets/MAX6675.pdf),使用SPI介面,除了VCC(5V)和GND外,CLK, CS, 和SO分別接上Uno的數位腳4,5,6。範例程式serialthemocople可以直接來測是否接線正確和溫度讀取正常工作。
熱敏電阻有許多不同類型,這次用的就是K型,溫度感應範圍是到1024度,解析度為0.25°C,買來的MAX6675模組(https://www.adafruit.com/datasheets/MAX6675.pdf),使用SPI介面,除了VCC(5V)和GND外,CLK, CS, 和SO分別接上Uno的數位腳4,5,6。範例程式serialthemocople可以直接來測是否接線正確和溫度讀取正常工作。
實驗歩驟3 - 顯示温度在LED
LED使用的是one-wire模組TM1637,大大簡化LED顯示工作,DO和CLK接到Uno Digital Pin2,3 ,TM1637 Library中的範例程式(TM1637Test)可以很容易的顯示數字出來,照著用應該很容易知道方法。
實驗歩驟4 製作Arduino Shield
用洞洞板和銀絲線很快的加工,符合Uno Pin腳位,也留出TM1637和MAX6675的訊號線。
用洞洞板和銀絲線很快的加工,符合Uno Pin腳位,也留出TM1637和MAX6675的訊號線。
實驗歩驟5 烤箱加工
這烤箱是小孩早餐時用來烤麵包,容量是9L,功率是800W,火力有點不足,如果在沒有包覆錫泊紙的情形下,用自製的MAX6675溫度計測量,溫度上昇速度約為0.4~0.7°C/s,溫度愈高上昇愈慢。錫泊紙包覆內部後上昇速度可以達到1~1.7°C/s,這速度在不用Arduino控制下,剛好是我們所需要的reflow速度。
打開烤箱,留下原來的主開關,接上5V充電器頭,再到SSR,SSR另一側接回原來的火線上。5V充電器供電給Uno,原有的過熱保險絲也也要留著,電源指示燈也留下來。
這烤箱是小孩早餐時用來烤麵包,容量是9L,功率是800W,火力有點不足,如果在沒有包覆錫泊紙的情形下,用自製的MAX6675溫度計測量,溫度上昇速度約為0.4~0.7°C/s,溫度愈高上昇愈慢。錫泊紙包覆內部後上昇速度可以達到1~1.7°C/s,這速度在不用Arduino控制下,剛好是我們所需要的reflow速度。
打開烤箱,留下原來的主開關,接上5V充電器頭,再到SSR,SSR另一側接回原來的火線上。5V充電器供電給Uno,原有的過熱保險絲也也要留著,電源指示燈也留下來。
實驗歩驟6 控制溫度在特定溫度上
可以用簡單開關(on/off)模式來控溫,控制理論上稱作ZigZag方法,只是石英加熱棒的特性就像是一台很大台的車,快到目標溫度時關閉,溫度會超過非常多,所以在離很遠的時侯就要把火力關小,到特定溫度時要開小火讓烤箱停留在溫度上。這時就要導入古典控制理論上最常用到的PID Control. 在這個簡單project上,我就是只有用P比例控制就可以了,未來如果加上積分I Control,微分D Control,可讓溫度的曲線可貼近我們需要的加熱profile.
可以用簡單開關(on/off)模式來控溫,控制理論上稱作ZigZag方法,只是石英加熱棒的特性就像是一台很大台的車,快到目標溫度時關閉,溫度會超過非常多,所以在離很遠的時侯就要把火力關小,到特定溫度時要開小火讓烤箱停留在溫度上。這時就要導入古典控制理論上最常用到的PID Control. 在這個簡單project上,我就是只有用P比例控制就可以了,未來如果加上積分I Control,微分D Control,可讓溫度的曲線可貼近我們需要的加熱profile.
實驗歩驟7 製作Reflow加熱曲線Profile
焊錫特性,曲分有鉛和無鉛,熔點也不同,含鉛量越來越多,熔點愈低。加熱曲線通常如下圖(有鉛),分成預熱preheat、吸附soaking、液化liquidus、冷卻cooling等不同階段,簡單說明如下:
焊錫特性,曲分有鉛和無鉛,熔點也不同,含鉛量越來越多,熔點愈低。加熱曲線通常如下圖(有鉛),分成預熱preheat、吸附soaking、液化liquidus、冷卻cooling等不同階段,簡單說明如下:
- 預熱階段(preheat) - 常溫~150°C,上升速度可以很快1~3°C/s,快一些可以減少等待的時間。
- 吸附階段(soaking) - 150~200°C,上升速度不可以快(1° C/s),通常60秒左右的時間完成。
- 液化階段(liquidus) - 200~220°C,這是最重要的階段,也就是reflow的階段,上升速度1.5~3° C/s,從200° C到220° C再下來離開220° C需要在60秒左右完成,這時間錫會熔開讓SMD零件落下來,緊貼在PCB板上,超過90秒就有可能把零件烤壞。
- 冷卻階段(cooling) - 讓溫度回到室溫,方便取出,溫度下降速度不低於-6° C/s
實驗歩驟8 整合測試
Uno要注意散熱的問題,和烤箱貼太近,可能會有電子零件高熱暫時工作的問題。同使用紅外線溫度計來確認溫度顯示是否正確,加速曲線是否會過快,在reflow區域是否停留太久,目前到達最高溫時因為沒有風扇散熱,所以採用打用前方的門讓自然風進去,歡察下降的速度還不錯。完成後就可以試烤一片看看,結果很不錯呢! 的確比當初手工的出色多了~ 手工容易冷焊或兩腳短路,目前還是用手點鍚膏,未來會試用3D印出solder paste mask(鋼網)。
Uno要注意散熱的問題,和烤箱貼太近,可能會有電子零件高熱暫時工作的問題。同使用紅外線溫度計來確認溫度顯示是否正確,加速曲線是否會過快,在reflow區域是否停留太久,目前到達最高溫時因為沒有風扇散熱,所以採用打用前方的門讓自然風進去,歡察下降的速度還不錯。完成後就可以試烤一片看看,結果很不錯呢! 的確比當初手工的出色多了~ 手工容易冷焊或兩腳短路,目前還是用手點鍚膏,未來會試用3D印出solder paste mask(鋼網)。
這次開始動工到完成,花了約7個小時製作簡單小型的迴焊爐,方便未來小量生產教室自製的電子電路教具和器材,結合教室老師Solidworks的3D能力,期待未來可以做出許多小而美的東西出來,給學生別的地方所沒有的動手做、動中學的學習經驗。
Arduino Uno 的程式碼