八位流水灯和按键蜂鸣器的代码
时间: 2024-10-28 14:12:08 浏览: 28
八位流水灯和按键蜂鸣器通常用于基础的电子项目,比如学习单片机控制。这里以Arduino Uno为例,假设我们使用了8个LED和1个按钮以及1个蜂鸣器:
```cpp
// 导入必要的库
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define LED_PINS 8 // 流水灯引脚数组
#define BUTTON_PIN A0 // 按键引脚
#define HUMIDIFIER_PIN 9 // 蜂鸣器引脚
Adafruit_BME280 bme; // 创建BME280实例
void setup() {
// 初始化BME280传感器
if (!bme.begin(0x76)) { // 这里需要替换实际的I2C地址
Serial.println("Could not find a valid BME280 sensor, check wiring!");
return;
}
for (int i = 0; i < 8; i++) {
pinMode(LED_PINS[i], OUTPUT); // 设置LED引脚为输出模式
}
pinMode(BUTTON_PIN, INPUT_PULLUP); // 设置按键为上拉输入
pinMode(HUMIDIFIER_PIN, OUTPUT); // 设置蜂鸣器为输出模式
}
void loop() {
// 读取并显示BME280数据
float temperature = bme.readTemperature();
float humidity = bme.readHumidity();
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" C\n");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println("%");
// 按键检测:当按下时,点亮对应LED并蜂鸣
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
for (int j = 0; j < 8; j++) {
digitalWrite(LED_PINS[j], HIGH);
delay(500); // 照亮每个LED间隔500ms
digitalWrite(LED_PINS[j], LOW);
}
tone(HUMIDIFIER_PIN, 500, 500); // 发出500Hz的声音持续500ms
noTone(HUMIDIFIER_PIN); // 停止蜂鸣
}
}
```
阅读全文