用Arduino写一个超声波测距代码
时间: 2023-03-14 20:24:00 浏览: 82
你可以参考这篇文章:https://www.arduinoecia.com.br/tutoriais/arduino-ultrassom-hc-sr04/。它提供了一个完整的代码例子,用于使用Arduino来测量HC-SR04超声波传感器的距离。
相关问题
写一个Arduino超声波测距代码
你好,以下是Arduino超声波测距的代码:
```
#define trigPin 9
#define echoPin 10
void setup() {
Serial.begin(960);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * .034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
delay(500);
}
```
希望能对你有所帮助。
基于wemos d1用arduino写一段超声波测距小于10cm wemos d1上的led亮
好的,以下是代码:
```
#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连接到电脑上,打开串口监视器,就可以看到测距结果了。