Sketch 入門

在這個教學中,你將學習到草稿碼各部分的運作方式。

草稿碼

草稿碼(sketch)是 Arduino 與 86Duino 用來稱呼一支程式的方式,它是一個上傳和運行在 Arduino、86Duino 板上的程式單元。

註解

Blink 草稿碼的頭幾行是 註解

/*
 * Blink
 *
 * 這是基本的 Arduino 範例;開啟 LED 燈一秒鐘,
 * 然後關閉它一秒鐘,如此反覆;在這個例子中我們使用 pin13,
 * 這取決於你的 Arduino 板,它是內建一個 LED 燈,或者是一個電阻
 * 如果是後者,則需要自行接上一顆 LED 燈。
 *
 * http://www.arduino.cc/en/Tutorial/Blink
 */

Arduino/86Duino 在運行草稿碼時,在 /**/ 之間的每一行敘述都會被忽略 (每一行敘述前面都有一個 *,那只是為了美觀,並不是必需的),對閱讀草稿碼的人來說,註解用來解釋這個程式是做什麼、是怎麼做的、又或者是為何使用這種方法。修改程式碼後立即加上註解是一個良好的習慣,好的註解可以幫助你花較少的時間了解程式碼的用意,也可以讓其他人學習或修改你的程式碼。

另一種簡潔的註解方式,以 // 開頭並且註解一整行敘述;例如:

   int ledPin = 13; // LED 連接到數位 pin13

以上的 “LED 連接到數位 pin13” 這行敘述就是註解

變數

變數 是用來儲存數據的地方。它有名字、型態和數值。Blink 草稿碼中,有一行宣告變數名稱為 ledPin、型態是 int、初始數值是 13。它用來指示 Arduino / 86Duino 哪一個腳位與 LED 燈相連,在草稿碼中每寫一次 ledPin,它的值就會被取出來使用一次。事實上在這個例子中,不一定要創建一個名為 ledPin 的變數,可以直接寫 13 去指定要使用的腳位。但使用變數的好處是,當你的草稿碼中很多地方使用到 ledPin 的時候,只需要在變數初始化時指派一次新值給 ledPin,就可以快速的把 LED 切換到其他的 pin 腳。

然而,變數值通常在程式碼運行過程中是會被改變的。舉個例子,你可以將讀取到的值儲存在變數中,更多的資訊可以在 變數 教學手冊中找到。

函式

函式 (又稱作 程序副程式) 是程式碼的片段,可以在草稿碼中使用它們。例如,Blink 範例中有一個已被定義好的 setup() 函式:

void setup()
{
  pinMode(ledPin, OUTPUT);      // 設定數位腳位為輸出
}

第一行提供了函式的資訊,像是名稱 ”setup”,在它前後的文字表示它的回傳資料型態及參數:這個後面會解釋,在 {} 之間的程式碼就是函式的主體:函式在做什麼。

可以 呼叫 已經被定義好的函式 (不論是在草稿碼中自行定義的函式或者是在 86Duino 語言 中定義的函式);舉個例子,pinMode(ledPin, OUTPUT); 這行呼叫 pinMode() 函式,傳給它兩個參數:ledPinOUTPUT,這些參數在 pinMode() 函式中是用來設定哪一個腳位還有模式。

pinMode(), digitalWrite() 和 delay()

pinMode() 函式將一個腳位設定為輸入或輸出,使用它可以傳進一個數字去指定要使用哪一個腳位,還有變數 INPUTOUTPUT 可以設定腳位模式;當設定為輸入時,腳位可以偵測感測器的狀態,像是按下按鈕 (參考 Arduino 教學手冊);如果設定為輸出,它可以驅動致動器,像是 LED 燈。

digitalWrite() 函式會從一個指定腳位輸出數值;舉個例子:

   digitalWrite(ledPin, HIGH);

ledPin (pin13) 設定成 HIGH (輸出 3.3 伏特),或設定 LOW 接地 (輸出 0 伏特)。

delay() 會使 86Duino 在執行下一行程式碼之前,等待一段以毫秒為單位的指定時間;1000 毫秒等於 1 秒鐘,看下面這行:

   delay(1000);

這是建立一個一秒鐘的延遲。

setup() 和 loop()

有兩個特別的函式是每個 86Duino 草稿碼都會具備的:setup()loop()setup() 函式在草稿碼開始執行時會被呼叫一次,裡面適合執行設定或初始化的任務,像是設定腳位模式或初始化類別,loop() 函式是整個程式碼的核心,會一次又一次的被呼叫;你的程式碼需要包含這兩個函式,不管需不需要用到它們的功能。

See also

setup()
loop()
pinMode()
digitalWrite()
delay()


語法參考主頁面

本頁由熱血青年 LBU 譯自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.