前置命令類似組合語言中的虛擬指令,是針對編譯器所下的指令,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 } }