2017年4月21日 星期五

Motoblockly Sensor board學Blockly (利用副程式(函數)與變數)

延續前面Section的課程:閃耀的彩色LED燈、利用「變數(Variables)」控制LED燈,我們會發現有一個共同的現象,程式因為執行的步驟較多,會造成迴圈非常的壟長,這在程式編輯過程容易出錯,在Debug時有不容易處理。這一個Section,我們將學習利用副程式(函數)及變數的應用,解決在程式編輯時的這些問題。

Example 01. 利用副程式(函數)控制 LED 燈


說明:
  1. 這個 Example 是延續上一個 Step 的內容;在程式中,我們會將紅燈、黃燈、綠燈的程式,利用副程式(函數)的方式,分別獨立在不同的副程式迴圈中。
  2. 利用程式的呼叫功能,在主程式中呼叫副程式(函數),執行副程式的迴圈內容。
範例:
  1. 如圖一,依序啟動 (數位腳位為) 和關閉(數位腳位為) LED 數位腳位 D10、D11、D12,將積木方塊堆疊在副程式積木的【流程】中,並在主程式建立呼叫副程式積木【流程】的積木,依序呼叫綠燈、黃燈、紅燈的副程式,觀察執行程式的變化。
  2. 範例檔:請選擇匯入 XML_ColorLED_SP01.xml ,可開啟本 Example 的範例,或利用 Arduino IDE 開啟 IDE_ColorLED_SP01.ino 執行程式的結果。
備註:
副程式的迴圈可以依據腳位,設定不同的流程名稱,本範例依據腳位分別有綠燈、黃燈、紅燈三個副程式(函數)。

Example 02. 利用副程式(函數)及變數控制 LED 燈


說明:
  1. 這個 Example 是延續上一個 Step 及 Example 01 的內容;在程式中,我們會將紅燈、黃燈、綠燈的程式,利用副程式(函數)的方式,分別獨立在不同的副程式迴圈中。
  2. 除了利用副程式(函數)迴圈的功能,方便掌握不同腳位燈號的控制;在這個 Example,我們也嘗試將之前學習變數的概念應用,利用變數來控制時間的變化。
  3. 利用程式的呼叫功能,在主程式中呼叫副程式(函數),執行副程式的迴圈內容。並利用「變數」來增加效率,只要設定一次變數,未來要改變時間間隔時,只要更動變數內容即可。
範例:
  1. 如圖二,依序啟動 (數位腳位為高) 和關閉(數位腳位為低) LED 數位腳位 D10、D11、D12,將積木方塊堆疊在副程式積木的【流程】中,並在主程式建立呼叫副程式積木【流程】的積木,依序呼叫綠燈、黃燈、紅燈的副程式,觀察執行程式的變化。
  2. 匯入XML範例檔,在「程式開始」的【設定 (Setup)】中,宣告Time01、Time02、DelayTime為時間變數,利用變數,觀察時間變化時,程式執行的結果。
  3. 範例檔:請選擇匯入 XML_ColorLED_SPV01.xml ,可開啟本 Example 的範例,或利用 Arduino IDE 開啟 IDE_ColorLED_SPV01.ino 執行程式的結果。
備註:
副程式的迴圈可以依據腳位,設定不同的流程名稱,本範例依據腳位分別有綠燈、黃燈、紅燈三個副程式(函數)。

沒有留言:

張貼留言

Related Posts Plugin for WordPress, Blogger...