46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
// 定义引脚编号
|
||
const int trigPin = 2; //D4
|
||
const int echoPin = 4; //D2
|
||
const int pinBuzzer = 5; //D1
|
||
|
||
// 定义变量
|
||
long duration;
|
||
int distance;
|
||
|
||
void setup() {
|
||
pinMode(pinBuzzer, OUTPUT);
|
||
digitalWrite(pinBuzzer, LOW);
|
||
|
||
pinMode(trigPin, OUTPUT); // 将trigPin设置为输出
|
||
pinMode(echoPin, INPUT); // 将echoPin设置为输入
|
||
Serial.begin(9600); // 启动串行通信
|
||
}
|
||
void loop() {
|
||
// Clears the trigPin
|
||
digitalWrite(trigPin, LOW);
|
||
delayMicroseconds(2);
|
||
|
||
//将trigPin设置为HIGH状态10微秒
|
||
digitalWrite(trigPin, HIGH);
|
||
delayMicroseconds(10);
|
||
digitalWrite(trigPin, LOW);
|
||
|
||
// 读取echoPin,以微秒为单位返回声波传播时间
|
||
duration = pulseIn(echoPin, HIGH);
|
||
|
||
// 计算距离
|
||
distance = duration * 0.034 / 2;
|
||
// 打印距离在串行监视器
|
||
Serial.print("Distance: ");
|
||
Serial.println(distance);
|
||
if (distance <= 20) { //如果距离小于10厘米小灯亮起
|
||
digitalWrite(LED_BUILTIN, LOW);
|
||
digitalWrite(pinBuzzer, HIGH);
|
||
} else {
|
||
digitalWrite(LED_BUILTIN, HIGH);
|
||
digitalWrite(pinBuzzer, LOW);
|
||
}
|
||
|
||
delay(1000);
|
||
}
|