從現在開始,我們将開展一些Arduino的知識學習,首先我們來研究Arduino的程式結構,通過本文的學習,可以了解更多Arduino世界中使用的新術語。記住我們的Arduino軟體是開源的,Java environment的源代碼遵循GPL,C/ C++微控制器庫遵循LGPL。

Sketch — 第一個新術語是Arduino程式“sketch”。(多翻譯為草圖)
程式結構(Structure)
Arduino程式主要分為三個部分: 結構(Structure)、值(變量和常量)和函數。接下來我們将逐漸通過使用Arduino IDE程式來了解如何編寫沒有文法或編譯錯誤的程式。
我們首先從結構(Structure)開始。軟體結構包括兩個主要函數,當我們打開Arduino IDE程式,建立一個sketch時,視窗會預設給新sketch添加兩個函數,分别為 setup() 和 loop() ,它們的具體功能如下:
Setup( )函數: setup()函數在sketch開始運作時調用,使用它可以完成初始化變量,pinMode設定,庫檔案引入等等操作。通常情況下,每次開機或複位Arduino開發闆後,setup ( ) 函數隻會運作一次。如:
void setup()
{
servo_test.attach(8); // 舵機信号腳8
pinMode(8, OUTPUT);
}
在setup()函數中設定舵機控制信号引腳為8,pinMode 8腳為輸出引腳。源代碼見:制作寵物自動喂食器
Loop( )函數:運作完setup()函數後,程式會循環運作 loop() 函數中的内容,Loop()函數可以設定初始值,它精确地連續循環執行既定操作,Loop裡面的代碼是控制Arduino闆如何工作的精髓。如:
void loop() {
// 在早上6點:
servo_test.write(80); //舵機旋轉80度,打開出口
delay(60000); //出口的打開持續時間
servo_test.write(0); // 關閉
delay(25200000UL); //7小時後再次打開出口
//下午1點:
servo_test.write(80); //舵機旋轉80度,打開出口
delay(60000); //出口的打開持續時間
servo_test.write(0); // 關閉
delay(25200000UL); //7小時後再次打開出口
// 晚上8點:
servo_test.write(80);
delay(60000);
servo_test.write(0);
delay(36000000UL); //10小時後再次打開出口
}
也就是說,整個代碼中,我們可以将loop裡面的内容了解為,loop是我們希望Arduino怎麼反複去完成工作的具體标準和要求。
Arduino的主要程式結構就是這樣,是不是很簡單!下一章将介紹Arduino的資料類型。