本篇文章由 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语句来控制。