用按键中断写一个流水灯代码
时间: 2024-01-29 18:02:44 浏览: 71
按键中断流水灯
好的,以下是一个基于按键中断的流水灯代码,使用的是Arduino UNO开发板:
```c
int ledPin = 2; // 第一个LED的引脚
int numLEDs = 8; // LED的数量
volatile boolean buttonPressed = false; // 按键是否按下标志位
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(3, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(3), buttonPress, FALLING); // 将按键中断与函数关联
}
void loop() {
if (buttonPressed) { // 检查按键是否按下
buttonPressed = false; // 重置按键状态
for (int i = 0; i < numLEDs; i++) {
digitalWrite(ledPin + i, HIGH); // 点亮当前LED
delay(100); // 延迟一段时间
digitalWrite(ledPin + i, LOW); // 熄灭当前LED
}
}
}
void buttonPress() {
buttonPressed = true; // 设置按键状态为按下
}
```
这个代码中,我们使用了Arduino自带的attachInterrupt函数将按键中断与一个函数关联起来。在按键按下的时候,函数会被调用,设置一个标志位,然后在主循环中检查这个标志位,如果标志位为true,就执行流水灯的代码。最后,重置标志位,等待下一次按键中断的触发。
阅读全文