Mega2560中按键控制流水灯的亮灭
时间: 2023-05-16 14:05:24 浏览: 84
可以使用以下代码实现:
```
const int buttonPin = 2; // 按钮引脚
const int ledPin = 13; // LED引脚
int ledState = LOW; // LED状态
int buttonState; // 按钮状态
int lastButtonState = LOW; // 上一次按钮状态
unsigned long lastDebounceTime = 0; // 上一次去抖时间
unsigned long debounceDelay = 50; // 去抖延迟
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// 读取按钮状态
int reading = digitalRead(buttonPin);
// 如果按钮状态改变,记录时间
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
// 如果时间超过去抖延迟,更新按钮状态
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
// 如果按钮被按下,切换LED状态
if (buttonState == HIGH) {
ledState = !ledState;
}
}
}
// 更新LED状态
digitalWrite(ledPin, ledState);
// 记录上一次按钮状态
lastButtonState = reading;
}
```
这段代码使用一个按键控制一个LED灯的亮灭,当按键被按下时,LED灯状态会切换。
阅读全文