基于wemos d1用arduino写一段超声波测距小于10cm wemos d1上的led亮
时间: 2023-06-18 17:08:48 浏览: 133
arduino超声波测距程序
5星 · 资源好评率100%
好的,以下是代码:
```
#define TRIGGER_PIN D1 // 定义超声波模块的控制引脚
#define ECHO_PIN D2 // 定义超声波模块的测距引脚
#define LED_PIN D5 // 定义LED的控制引脚
void setup() {
pinMode(TRIGGER_PIN, OUTPUT); // 设置超声波模块的控制引脚为输出模式
pinMode(ECHO_PIN, INPUT); // 设置超声波模块的测距引脚为输入模式
pinMode(LED_PIN, OUTPUT); // 设置LED的控制引脚为输出模式
Serial.begin(9600); // 初始化串口通信,用于输出测距结果
}
void loop() {
digitalWrite(TRIGGER_PIN, LOW); // 给超声波模块的控制引脚发送低电平信号
delayMicroseconds(2); // 延迟2微秒
digitalWrite(TRIGGER_PIN, HIGH); // 给超声波模块的控制引脚发送高电平信号
delayMicroseconds(10); // 延迟10微秒
digitalWrite(TRIGGER_PIN, LOW); // 给超声波模块的控制引脚发送低电平信号
long duration = pulseIn(ECHO_PIN, HIGH); // 读取超声波模块返回的脉冲信号的持续时间
float distance = duration * 0.034 / 2; // 根据声波在空气中的传播速度计算出距离,单位为厘米
if (distance < 10) { // 如果距离小于10厘米
digitalWrite(LED_PIN, HIGH); // 点亮LED
} else { // 如果距离大于等于10厘米
digitalWrite(LED_PIN, LOW); // 熄灭LED
}
Serial.print("Distance: "); // 输出距离
Serial.print(distance);
Serial.println(" cm");
delay(500); // 延迟500毫秒,避免频繁读取超声波模块返回的脉冲信号
}
```
在这段代码中,我们使用 `pulseIn()` 函数读取超声波模块返回的脉冲信号的持续时间,然后根据声波在空气中的传播速度计算出距离。如果距离小于10厘米,则点亮LED,否则熄灭LED。同时,我们还通过串口输出当前的测距结果。你可以将Wemos D1连接到电脑上,打开串口监视器,就可以看到测距结果了。
阅读全文