從現在開始,我們將開展一些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的數據類型。