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
限會員,要發表迴響,請先登入