一個Arduino腳本程式碼(SKETCH)由兩部分組成
void setup()
在這個函數範圍內放置初始化Arduino 板子的程式 - 在主要程式開始撰寫前, 使Arduino 板子裝置妥當的指令。
void loop()
在此放置你的Arduino腳本。這部份的程式會一直重複的被執行,直到Arduino 板子被關閉。
特殊符號
Arduino 語言用了一些符號描繪程式碼,例如註釋和程式區塊。
; //(分號)
Arduino 語言每一行程序都是以分號為結尾。這樣的語法讓你可以自由地安排代碼,你可以將兩個指令放置在同一行,只要中間用分號隔開。(但這樣做可能降低程式的可讀性。)
範例:
{}(大括號)
大括號用來將程式代碼分成一個又一個的區塊,如以下範例所示,在loop()函數的前、後,必須用大括號括起來。
範例:
void loop(){
Serial.pritln("cial");
}
註釋
程式的註釋就是對代碼的解釋和說明,編寫註釋有助於程式設計師(或其他人)了解代碼的功能。
Arduino處理器在對程式碼進行編譯時會忽略註釋的部份。
Arduino 語言中的編寫註釋有兩種方式
//單行註釋:這整行的文字會被處理器忽略
/*多行註釋:
在這個範圍內你可以
寫一整首詩
*/
常數
在Arduino語言中事先定義了一些具特殊用途的保留字。HIGH 和 LOW 用來表示你開啟或是關閉了一個Arduino的腳位(pin)。INPUT 和 OUTPUT 用來指示這個Arduino的腳位(pin)是屬於輸入或是輸出用途。true 和 false 用來指示一個條件或表示式為真或是假。
變數
變數用來指定Arduino 記憶體中的一個位置,變數可以用來儲存資料,程式人員可以透過腳本代碼去不限次數的操作變數的值。
因為Arduino 是一個非常簡易的微處理器,但你要宣告一個變數時必須先定義他的資料型態,好讓微處理器知道準備多大的空間以儲存這個變數值。
Arduino 語言支援的變數型態:
布林boolean
布林變數的值只能為真(true)或是假(false)
字元char
單一字元例如 A,和一般的電腦做法一樣Arduino 將字元儲存成一個數字,即使你看到的明明就是一個文字。
用數字表示一個字元時,它的值有效範圍為 -128 到127。
注意:有兩種主流的電腦編碼系統ASCII 和UNICODE。ASCII 表示了127個字元, 用來在序列終端機和分時計算機之間傳輸文字。
UNICODE可表示的字元量比較多,在現代電腦作業系統內它可以用來表示多國語言。
在位元數需求較少的資訊傳輸時,例如義大利文或英文這類由拉丁文,阿拉伯數字和一般常見符號構成的語言,ASCII仍是目前主要用來交換資訊的編碼法。
位元組byte
儲存的數值範圍為0到255。如同字元一樣位元組型態的變數只需要用一個位元組(8位元)的記憶體空間儲存。
整數int
整數資料型態用到2位元組的記憶體空間,可表示的整數範圍為 –32,768 到 32,767; 整數變數是Arduino內最常用到的資料型態。
整數unsigned int
無號整數同樣利用2位元組的記憶體空間,無號意謂著它不能儲存負的數值,因此無號整數可表示的整數範圍為0 到 65,535。
長整數long
長整數利用到的記憶體大小是整數的兩倍,因此它可表示的整數範圍從 –2,147,483,648
到 2,147,483,647。
長整數unsigned long
無號長整數可表示的整數範圍為0 到 4,294,967,295。
浮點數float
浮點數就是用來表達有小數點的數值,每個浮點數會用掉四位元組的RAM,注意晶片記憶體空間的限制,謹慎的使用浮點數。
雙精準度 浮點數double
雙精度浮點數可表達最大值為
1.7976931348623157 x 10308。
字串string
字串用來表達文字信息,它是由多個ASCII字元組成(你可以透過序串埠發送一個文字訊息或者將之顯示在液晶顯示器上)。字串中的每一個字元都用一個組元組空間儲存,並且在字串的最尾端加上一個空字元以提示Ardunio處理器字串的結束。下面兩種宣告方式是相同的。
char string1[] =
"Arduino"; // 7 字元 + 1 空字元
char string2[8] =
"Arduino"; // 與上行相同
陣列array
一串變數可以透過索引去直接取得。假如你想要儲存不同程度的LED亮度時,你可以宣告六個變數light01,light02,light03,light04,light05,light06,但其實你有更好的選擇,例如宣告一個整數陣列變數如下:
int light[6] = {0,
20, 50, 75, 100};
"array"
這個字為沒有直接用在變數宣告,而是[]和{}宣告陣列。
控制指令
Ardunio 利用一些關鍵字控制程式碼的邏輯。
if … else
If必須緊接著一個問題表示式(expression),若這個表示式為真,緊連著表示式後的代碼就會被執行。若這個表示式為假,則執行緊接著else之後的代碼. 只使用 if不搭配else是被允許的。
範例:
if (val == 1) {
digitalWrite(LED,HIGH);
}
for
用來明定一段區域代碼重覆指行的次數。
範例:
for (int i = 0; i
< 10; i++) {
Serial.print("ciao");
}
|