Arduino 中,副程式如何撰寫?(控制 LED 閃爍)
在 Arduino 中,副程式(或稱為函式/子函式)是透過 void 或有回傳值的函式來撰寫的。
以下舉一個簡單的例子示範。
使用副程式來控制 LED 閃爍
// 定義 LED 的腳位 const int ledPin = 13; // 初始化程式 void setup() { // 設定 LED 腳位為輸出 pinMode(ledPin, OUTPUT); } // 主程式迴圈 void loop() { // 呼叫副程式讓 LED 閃爍 blinkLED(500); // 每次閃爍 500 毫秒 delay(1000); // 間隔 1 秒後再閃爍 } // 副程式:讓 LED 閃爍一次 // 參數:interval(毫秒),指定 LED 亮和滅的時間 void blinkLED(int interval) { digitalWrite(ledPin, HIGH); // LED 亮 delay(interval); // 等待 interval 毫秒 digitalWrite(ledPin, LOW); // LED 滅 delay(interval); // 等待 interval 毫秒 }
void blinkLED(int interval)
函式名稱:blinkLED
參數:interval 用於指定 LED 的亮滅時間(以毫秒為單位)。
功能:控制 LED 亮滅一次。
如果副程式中再有副程式,如何完美呈現。
Arduino 程式中,副程式(函式)內可以呼叫其他副程式,這種結構通常被稱為函式巢狀呼叫
設計一個功能,讓 LED 按不同的模式閃爍:
快閃模式:快速閃爍(每次亮滅 100 毫秒)。
慢閃模式:緩慢閃爍(每次亮滅 500 毫秒)。
程式碼:
// 定義 LED 的腳位 const int ledPin = 13; void setup() { // 設定 LED 腳位為輸出 pinMode(ledPin, OUTPUT); } void loop() { // 呼叫主副程式,啟動快閃模式 controlLED(5, 100); // 閃爍 5 次,每次亮滅 100 毫秒 delay(1000); // 等待 1 秒 // 呼叫主副程式,啟動慢閃模式 controlLED(3, 500); // 閃爍 3 次,每次亮滅 500 毫秒 delay(1000); // 等待 1 秒 } // 主副程式:控制 LED 的閃爍模式 // 參數:times - 閃爍次數;interval - 每次亮滅的間隔時間 void controlLED(int times, int interval) { for (int i = 0; i < times; i++) { blinkOnce(interval); // 呼叫次副程式執行一次閃爍 } } // 次副程式:執行單次閃爍 // 參數:interval - LED 亮滅的時間 void blinkOnce(int interval) { digitalWrite(ledPin, HIGH); // LED 亮 delay(interval); // 等待 interval 毫秒 digitalWrite(ledPin, LOW); // LED 滅 delay(interval); // 等待 interval 毫秒 }
熱門評論