本篇文章由 VeriMake 旧版论坛中备份出的原帖的 Markdown 源码生成
原帖标题为:超声波传感器|测距
原帖作者为:hi(旧版论坛 id = 39)
原帖由作者初次发表于 2021-03-30 13:04:53
超声波测距
通过超声波模块来测量与某个物体之间的距离,并将测得的数据通过串口监视器显示出来。
准备材料:
NanoC 1,数据线 1,400孔面包板 1,HC-SR04 超声波模块 1,公对母杜邦线 *4。
接线图:

VCC — 5V
Trig — 10
Echo — 9
GND — GND

代码
unsigned long d;           //定义long类型变量来存储测得的微秒数
unsigned long ping(){
  digitalWrite(10,HIGH);   //10设置成高电位
  delayMicroseconds(10);    //持续10微秒
  digitalWrite(10,LOW);    //10设为低电位
  return pulseIn(9,HIGH);  //传回高脉冲的持续时间
}
void setup() {
  pinMode(10,OUTPUT);      //10设置为输出
  pinMode(9,INPUT);        //9设置为输入
  Serial.begin(9600);      //初始化串行端口
}
void loop() {              //显示距离
  d=ping()/58;
  Serial.print(d);
  Serial.print("cm");     //输出单位
  Serial.println();       //换行
  delay(1000);
}
关于测距式子和函数的介绍可参考https://blog.csdn.net/qq_31077649/article/details/72581968
运行结果
打开串口监视器观看结果,移动超声波模块对准不同物体时,测得超声波模块到该物体的距离。

测得的数据在串口监视器中实时显现出来,这个数据更新速度可以通过delay语句来控制。