太興奮了 超頻成功!用來運算一些公式快很多
比如PID控制 等⋯
改天再來詳細分享 (於2017/2/22更新實作方式,請點入閱讀更多)
難易度
★★☆☆☆
本來是為了提升PID演算的反應,一直想找一個比較快的控制方式。
後來把腦筋動到晶片的頻率,我先是去查了晶片的規格,發現原廠規格其實可以達到20Mhz的。
測試過程依照網路論壇試了一些方法,大部分是教學如何改IDE讓修改過的Arduino可以上傳成功,但發現都不能搞定。
(而且就算搞定了對一般生手來說也太複雜了!)
後來讀到Marcelo Rodrigues's Blog某一篇文章(出處在這請點我)這位老兄他也是改了30Mhz,後來發現文章附註內有提到
一些狀況。
大致上是敘述他在把Sketch上傳到板子時使用16Mhz沒問題,若用30Mhz則會失敗。
這讓我回想到在論壇大家為什麼會一直討論改IDE的內部一些檔案。因此腦筋就動到硬體上
(我是機械出身的,改改硬體對我來說比較簡單)
怎麼做
首先你必須選擇一塊Arduino UNO R3或是 pro mini之類,只要這塊Arduino是採用Atmega328晶片就可以。
第二點要注意的是,石英震盪器最好是選擇插件式比較好改裝,若是選貼片式的因為腳位太小很容易失敗。
再來就是解焊掉板子上搭載的16Mhz振盪器,搭配吸錫器操作因該是不會太困難。
(要注意溫度且烙鐵不要在上面接觸太久!容易把板子上的其他零件燒壞)
再來就是製作轉接版,讓你在編寫好Sketch上傳更新的時候,可以使用16Mhz。
上傳完畢後就可以改插30Mhz,然後再開啟電源。
(更換晶體時記得關掉電源)
以上大概就完成了,另外需要注意的是Serial的速度,
當你的Arduino改用30Mhz要使用Serial(9600)速度通訊時必須先調整正確的速率才能通訊!
邏輯如下:
使用16Mhz 時 通訊速度為9600,所以使用30Mhz就必先算出兩個相對的倍率。
30是16的幾倍 (16/30=0.533333倍)
得到了倍率後再將9600去除你剛剛算出的倍率。
(9600/0.53 =5088)
因此你的草稿碼內要寫 Serial.begin(5088); 這樣開啟通訊時才不會亂碼。
當然對於Delay時間也是會有影響,依照上面的邏輯設定即可
delay 1000ms / 0.53 = 1886
材料
- Arduino pro mini 相容版 約50~70元
- 石英震盪器 30MHz 約5~10元
- 洞洞板 3cm*1cm 約2元
- jump 兩顆 約5元
- 針腳 8隻 約5元