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 毫秒
}


0 條回復   |  直到 1月前 | 92 次瀏覽




熱門評論


登入後才可發表內容