Contents ...
udn網路城邦
arduino 按鈕控制led燈4種變化
2025/08/30 12:31
瀏覽35
迴響0
推薦0
引用0
const int buttonPin = 10;         // 按鈕接腳

const int ledCount = 8;           // LED數量

const int ledPins[ledCount] = {2, 3, 4, 5, 6, 7, 8, 9};


int mode = 0;                     // 模式

bool lastButtonState = HIGH;      // 上次按鈕狀態


void setup() {

  for (int i = 0; i < ledCount; i++) {

    pinMode(ledPins[i], OUTPUT);

  }

  pinMode(buttonPin, INPUT_PULLUP); // 使用內建上拉

}


void loop() {

  // 讀取按鈕狀態

  bool buttonState = digitalRead(buttonPin);

  if (buttonState == LOW && lastButtonState == HIGH) {

    mode = (mode + 1) % 4; // 切換模式

    delay(200);            // 消抖

  }

  lastButtonState = buttonState;


  // 模式選擇

  switch (mode) {

    case 0:

      runningLight();

      break;

    case 1:

      oddLEDs();

      break;

    case 2:

      evenLEDs();

      break;

    case 3:

      allOff();

      break;

  }

}


// 跑馬燈模式

void runningLight() {

  for (int i = 0; i < ledCount; i++) {

    allOff();

    digitalWrite(ledPins[i], HIGH);

    delay(150);

  }

}


// 基數燈亮

void oddLEDs() {

  for (int i = 0; i < ledCount; i++) {

    digitalWrite(ledPins[i], (i % 2 == 0) ? HIGH : LOW);

  }

}


// 偶數燈亮

void evenLEDs() {

  for (int i = 0; i < ledCount; i++) {

    digitalWrite(ledPins[i], (i % 2 == 1) ? HIGH : LOW);

  }

}


// 全部熄滅

void allOff() {

  for (int i = 0; i < ledCount; i++) {

    digitalWrite(ledPins[i], LOW);

  }

}

測試影片:https://www.youtube.com/shorts/ki-x7zSDRcQ
全站分類:興趣嗜好 其他
自訂分類:Arduino
下一則: Arduino 按鈕控制LED閃爍

限會員,要發表迴響,請先登入