中文 | English

神啊!請賜我一個小巧玲瓏的 Arduino 吧~

Arduino 是一個很適合拿來做作品原形的方案,但是等過了原形這個階段、打算縮小作品的時候,Arduino 的身形就成了阻礙。

通常遇到這種狀況,可以去買 SMD 封裝的微控制器,但是要用人工的方式焊接 SMD 封裝,並不是一件容易事情,往往最後弄得桌面一團亂,卻還是什麼都沒接起來。

SMD 封裝

一般來說,我們平常看到的積體電路都是採取 DIP 封裝,也就是那種兩排直立接腳、長得很像蜘蛛的樣子(下圖中比較大的那種)。

這種封裝方式的晶片方便人工焊接,但它體積就較另一種常見的 SMD 封裝的積體電路(上圖中比較小的)大上許多。

另外一種比較簡單的方式,是用 Attiny45/85 來作為替代品,但它們體積小歸小,就是價格貴了點(一個大約 60~90 元台幣)。最好的方法大概就是用 Attiny13/13A 了;他們不但便宜( 30 元台幣左右)而且規格對小作品來說也堪用了。

Breadboard Atmel ATtiny13

硬體規格

在 Attiny13/13A 的體積以及價格都縮減的狀況下,它自然沒辦法像 Arduino UNO 用的 ATmega328P 有那麼多功能,像是 Arduino UNO 有 13 個數位腳位(Digital Pin)、 5 個類比腳位(Analog Pin),而 Attiny13/13A 就只有 2 個數位腳位跟 4 個類比腳位。

設定 Arduino IDE

要上傳 Arduino 程式到 Attiny13 需要的步驟如下:

  • 開啟 Arduino IDE
  • 打開 File > Preferences
  • 輸入以下網址到 Additional Boards Manager URLs: https://mcudude.github.io/MicroCore/package_MCUdude_MicroCore_index.json
  • 打開 Tools > Board > Boards Manager
  • 等待更新
  • 往下滑直到看到 MicroCore
  • 點擊 Install
  • 等安裝完畢關閉管理視窗

上傳 Arduino Bootloader

Attiny13/13A 需要 Arduino Bootloader(有點像是作業系統)才能執行 Arduino 程式。要上傳 Bootloader 的話你需要一個 ISP ,例如 USBASP AVR Programmer,不過最簡單的方式還是把 Arduino 當 ISP 來用

上傳 Arduino 範例程式

接下來就是上傳程式的部分了,試著把下面的原始碼貼進 Arduino IDE 裡,並按下上傳。上傳成功後把一個 LED 的陽極(Anode)接到 Pin 2,然後 LED 的陰極(Cathode)腳接到電阻再接到 Attiny13/13A,再給它提供電力,你應該就會看到 LED 在閃爍了。

void setup()
{
    pinMode(3, OUTPUT);
}

void loop()
{
    digitalWrite(3, HIGH);
    delay(1000);
    digitalWrite(3, LOW);
    delay(1000);
}

進階 Arduino 範例程式

接下來進階一點,我們上傳一個從 potentiometer 讀取電壓值,並用 PWM 的方式調控 LED 的程式。上傳成功後在 Pin 2 接 potentiometer、Pin 5 接 LED 燈;LED 燈應該會隨著你轉動而變亮或者變暗。

#define LED 1

int data;

void setup()
{
    pinMode( LED, OUTPUT);
}

void loop()
{
    data = analogRead(A3);
    analogWrite( LED, data/4);
}

結語

當然,這次這些都只是一些簡單的範例,幫助你開始用 Attiny13,但它的能耐可不只這些;Attiny13/13A 雖然不如 Arduino UNO 的 ATmega328P 強大,但是大部分時候限制你的可還是你打想像

參考資料

分享到社群

SHY

半途出家踏入資工與資安的領域,發現軟體硬體本一家,又玩起 Arduino 與 Raspberry Pi ,基本上什麼都碰一點,夢想是成為一隻駭客犬。