普通流水灯控制方向,速度代码
时间: 2023-12-20 22:13:28 浏览: 26
好的,以下是一个简单的普通流水灯控制方向、速度的代码:
```
int ledPin[] = {2, 3, 4, 5, 6, 7}; //定义LED引脚
int delayTime = 250; //定义延迟时间
int ledCount = sizeof(ledPin) / sizeof(int); //定义LED数量
bool direction = true; //定义流水灯方向
void setup() {
for (int i = 0; i < ledCount; i++) {
pinMode(ledPin[i], OUTPUT); //设置LED引脚为输出模式
}
}
void loop() {
for (int i = 0; i < ledCount; i++) {
digitalWrite(ledPin[i], HIGH); //点亮当前LED
delay(delayTime); //延迟一段时间
digitalWrite(ledPin[i], LOW); //熄灭当前LED
}
if (direction) {
for (int i = ledCount - 1; i >= 0; i--) {
digitalWrite(ledPin[i], HIGH); //点亮当前LED
delay(delayTime); //延迟一段时间
digitalWrite(ledPin[i], LOW); //熄灭当前LED
}
} else {
for (int i = 0; i < ledCount; i++) {
digitalWrite(ledPin[i], HIGH); //点亮当前LED
delay(delayTime); //延迟一段时间
digitalWrite(ledPin[i], LOW); //熄灭当前LED
}
}
}
void serialEvent() {
if (Serial.available() > 0) {
char input = Serial.read();
if (input == 'w') { //加速
delayTime = max(delayTime - 50, 50);
} else if (input == 's') { //减速
delayTime = min(delayTime + 50, 1000);
} else if (input == 'd') { //改变方向
direction = !direction;
}
}
}
```
这个代码和之前的代码非常相似,区别在于没有输出方向和速度。我们仍然通过定义 ledPin 数组来表示 LED 的引脚,delayTime 变量表示延迟时间,direction 变量表示流水灯的方向。在 setup 函数中,我们将 ledPin 数组中的引脚设置为输出模式。在 loop 函数中,我们先从前往后点亮每一个 LED,然后根据方向的变化,从后往前或从前往后点亮每一个 LED。在 serialEvent 函数中,我们通过检测串口输入来改变速度和方向,其中输入 w 表示加速,输入 s 表示减速,输入 d 表示改变方向。