太興奮了 超頻成功!用來運算一些公式快很多

比如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元
arrow
arrow

    MakerKo 發表在 痞客邦 留言(2) 人氣()