#include <Wire.h>
// 定义超声波传感器和RGB LED的引脚
#define TRIG_PIN 9
#define ECHO_PIN 10
#define RED_PIN 3
#define GREEN_PIN 5
#define BLUE_PIN 6
// 定义超声波传感器的速度(厘米/微秒)
#define SOUND_SPEED 0.0343
void setup() {
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RED_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
pinMode(BLUE_PIN, OUTPUT);
Serial.begin(9600); // 开始串口通信
}
void loop() {
// 发送10微秒的高电平脉冲到TRIG引脚
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// 读取ECHO引脚上的脉冲宽度
long duration = pulseIn(ECHO_PIN, HIGH);
// 计算距离
float distance = duration * SOUND_SPEED / 2;
// 根据距离调整RGB LED的颜色
if (distance < 10) {
// 近距离:红色
analogWrite(RED_PIN, 255);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 0);
} else if (distance < 20) {
// 中距离:蓝色
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 0);
analogWrite(BLUE_PIN, 255);
} else {
// 远距离:绿色
analogWrite(RED_PIN, 0);
analogWrite(GREEN_PIN, 255);
analogWrite(BLUE_PIN, 0);
}
// 打印距离到串口监视器
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(100); // 延时100毫秒
}