一个按键控制流水灯开启停止代码
时间: 2023-06-05 12:07:43 浏览: 47
这个问题属于编程技术问题,我可以为你提供代码实现。以下是一个简单的按键控制流水灯开启停止的代码:
```
const int buttonPin = 2; // 按键接口
const int ledPin1 = 3; // 灯1接口
const int ledPin2 = 4; // 灯2接口
const int ledPin3 = 5; // 灯3接口
const int ledPin4 = 6; // 灯4接口
int buttonState = 0; // 存储按键状态
bool ledRunning = true; // 是否启动流水灯
int currentLed = 3; // 当前流水灯的位置
int interval = 200; // 流水灯的闪烁速度
void setup() {
pinMode(buttonPin, INPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
// 读取按键状态
buttonState = digitalRead(buttonPin);
// 判断是否按下按键,改变流水灯状态
if (buttonState == HIGH) {
ledRunning = !ledRunning;
// 停止流水灯
if (!ledRunning) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
}
// 启动流水灯
else {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
}
// 等待按键释放
while (digitalRead(buttonPin) == HIGH);
}
// 如果流水灯正在运行
if (ledRunning) {
// 关闭当前位置的灯
digitalWrite(currentLed, LOW);
// 计算下一个位置
currentLed++;
if (currentLed == 7) currentLed = 3;
// 打开下一个位置的灯
digitalWrite(currentLed, HIGH);
// 等待一段时间
delay(interval);
}
}
```