更新时间: 试题数量: 购买人数: 提供作者:

有效期: 个月

章节介绍: 共有个章节

收藏
搜索
题库预览
理解超声波测距主程序的代码,如下: void setup() { Serial.begin(9600); pinMode(EchoPin, INPUT); pinMode(TrigPin, OUTPUT); } void loop() { digitalWrite(TrigPin, LOW); delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW); duration = pulseIn(EchoPin, HIGH); distance = duration / 58.00; Serial.print("Ultrasonic sensor: "); Serial.print(distance); Serial.println(" cm"); delay(1000); } 答: void setup() { Serial.begin(9600); // 初始化串口通信,波特率9600 pinMode(EchoPin, INPUT); // 将 EchoPin 引脚设置为输入模式,用于接收超声波返回信号 pinMode(TrigPin, OUTPUT); // 将 TrigPin 引脚设置为输出模式,用于发送超声波触发信号 } void loop() { digitalWrite(TrigPin, LOW); // 将 TrigPin 置低,确保初始状态稳定 delayMicroseconds(2); // 延时 2 微秒 digitalWrite(TrigPin, HIGH); // 将 TrigPin 置高,发送 10 微秒的高电平脉冲 delayMicroseconds(10); digitalWrite(TrigPin, LOW); // 将 TrigPin 置低,停止发送脉冲 duration = pulseIn(EchoPin, HIGH); // 测量 EchoPin 高电平持续时间(单位:微秒),即超声波往返时间 distance = duration / 58.00; // 将时间转换为距离(单位:厘米),公式:距离 = 时间(微秒) / 58 // 公式说明: // 声速约为 340 m/s = 34000 cm/s // 往返距离 = 声速 * 时间 = 34000 cm/s * (duration/10^6) s = duration * 0.034 cm // 单程距离 = 往返距离 / 2 = duration * 0.017 cm // 因此,距离(cm) = duration / 58.82 ≈ duration / 58 Serial.print("Ultrasonic sensor: "); // 输出距离信息到串口 Serial.print(distance); Serial.println(" cm"); delay(1000); // 延时 1 秒,每秒测量一次 }