arduino用按键控制4个流水灯和蜂鸣器的代码
时间: 2024-04-29 16:24:48 浏览: 172
可以参考以下代码:
```C++
int ledPins[] = {2, 3, 4, 5}; // 4个流水灯的引脚
int buzzerPin = 6; // 蜂鸣器引脚
int buttonPin = 7; // 按键引脚
bool isPlaying = false; // 是否正在播放蜂鸣器声音
int curLed = 0; // 当前亮灯的序号
void setup() {
// 初始化引脚
for (int i = 0; i < 4; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], LOW); // 初始时关闭所有灯
}
pinMode(buzzerPin, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP);
randomSeed(analogRead(A0)); // 初始化随机数生成器
}
void loop() {
if (digitalRead(buttonPin) == LOW) { // 按键按下
if (!isPlaying) { // 如果没有播放声音
isPlaying = true;
buzz(); // 播放蜂鸣器声音
}
} else {
if (isPlaying) { // 如果正在播放声音
isPlaying = false;
noTone(buzzerPin); // 停止播放蜂鸣器声音
} else {
// 依次点亮流水灯
digitalWrite(ledPins[curLed], HIGH);
delay(50);
digitalWrite(ledPins[curLed], LOW);
curLed = (curLed + 1) % 4; // 循环遍历4个灯
}
}
}
void buzz() {
int freq = random(500, 1000);
for (int i = 0; i < 100; i++) {
tone(buzzerPin, freq);
delay(10);
noTone(buzzerPin);
delay(10);
}
}
```
希望能帮到你。
阅读全文