前置命令類似組合語言中的虛擬指令,是針對編譯器所下的指令,Arduino 語言在編譯之前會將程式中含有 ” # ” 記號的敘述先行處理,這個動作稱為前置處理,是由前置命令處理器 ( preprocessor ) 負責。 前置命令可以放在程式的任何地方,但是通常都放在程式的最前面。

☛ #define 前置命令

使用 #define 前置命令可以定義一個巨集名稱來代表一個字串,這個字串可以是一個常數、運算式或是含有引數的運算式。 當程式中有使用到這個巨集名稱時,前置處理器就會將這些巨集名稱以及其所代表的字串來替換,使用越多次的相同巨集名稱時,就會佔用更多的記憶體空間,但是函式只會佔用定義一次函數所需的記憶體空間。 雖然巨集較佔用記憶體空間,但是執行速度較函式快。

指令格式:

#difine 巨集名稱 字串

程式範例:

#define PI 3.14159           //定義巨集 PI=3.14159
#define AREA(x) PI*x*x       //定義巨集 AREA(x)=PI*x*x

void setup() {

}

void loop() {
     float resault=AREA(2);  //計算圓形面積
}

☛ #include 前置命令

使用 #include 前置命令可以將一個標頭檔案載入至一個原始檔案中,標頭檔必須以 h 為附加檔名。 在 #include 後面的標頭檔有兩種敘述方式,一是使用雙引號 ” “,一是使用角括弧 ” < > “。 如果是以雙引號將標頭檔包圍,則前置命令處理器會先從原始檔案所在目錄開始尋找標頭檔,找不到時再到其他目錄中尋找。 若是以角括號將標頭檔包圍,則前置命令處理器會先從標頭檔目錄中尋找,在 Arduino 語言中定義了一些實用的周邊標頭檔,以簡化程式設計,如 EEPROM 記憶體 ( EEPROM.h )、伺服馬達 ( Servo.h )、步進馬達 ( Stepper.h )、SD 卡 ( SD.h )、LCD 顯示器 ( LiquidCrystal.h )、TFT 顯示器 ( TFT.h )、乙太網路 ( Ethernet.h )、WiFi ( WiFi.h )、SPI 介面 ( SPI.h )、I2C 介面 ( Wire.h )、聲音介面 ( Audio.h )、USB 介面 ( USBHost.h ) 等。

指令格式:

#include <標頭檔>
#include "標頭檔"

程式範例:

#include <Servo.h>                 //載入 Servo.h 標頭檔案
Servo myservo;                     //定義 Servo 物件
int pos=0;                         //伺服馬達轉動角度

void setup() {
     myservo.attach(9);            //servo 連接至數位接腳 9
}

void loop() {
     for(pos=0;pos<180;pos+=1)     //由 0⁰ ~ 180⁰ 每次轉動 1⁰
     {
         myservo.write(pos);       //伺服馬達轉動至指定的角度
         delay(15);                //延遲 15ms
     }
     for(pos=180;pos>=1;pos-=1)    //由 180⁰ ~ 0⁰ 每次轉動 1⁰
     {
         myservo.write(pos);       //伺服馬達轉動至指定的角度
         delay(15);                //延遲 15ms
     }
}