脉冲宽度测量函数
pulseIn()
pulse 是脉搏的意思,音标[pʌls],怕了死,脉搏停了就死了。(记忆力越来越差了,只能采用一些特殊的方法记忆)
pulseIn(pin,value,timeout)
pin,引脚
value,读取的脉冲类型,分为HIGH和LOW
timeout,超时时长单位为微秒,数据类型为长整型。
超声波测距仪工作原理
超声波可以理解为一种声波,声音在空气中传播,碰到障碍物立即返回,声音的速度为340米/秒,那么根据时间可以计算发射点到障碍物的距离。
S=340*t(时间,单位为秒)/2
除以2的意思是声波一来一回等于走了两趟。
image.png
image.png
线路图
image.png
(由于没有这个超声波测距仪,就没有贴实物图)
代码部分
由于没有实物,所以尽量将注释写清楚,来熟悉工组原理。
/*
SRO4超声波传感器驱动
*/
const int TrigPin = 2;//设置2号数字引脚为触发引脚
const int EchoPin = 3;//设置3号数字引脚为接收引脚
float distance;//定义距离为浮点型数据
void setup() {
//初始化串口信息以及连接SRO4的引脚
Serial.begin(9600);
pinMode(TrigPin,OUTPUT);//设置输出引脚此处为2
pinMode(EchoPin,INPUT);//检测3号引脚输入的脉冲宽度,需要先设置为输入状态
}
void loop() {
//制作一个10微秒的高频脉冲触发2号引脚,超声波测距仪触发至少需要10微秒的高电平信号
digitalWrite(TrigPin,LOW);//先设置为低电平
delayMicroseconds(2);//持续2微秒
digitalWrite(TrigPin,HIGH);//设置为高电平
delayMicroseconds(10);//持续10微秒
digitalWrite(TrigPin,LOW);//再设置为低电平,这样模拟出了脉冲信号
distance = pulseIn(EchoPin,HIGH)/58;//返回的是脉冲宽度/58得到实际距离
delay(1000);
本文介绍了arduino超声波测距仪的工作原理,通过脉冲宽度测量函数`pulseIn()`实现测距。内容包括超声波在空气中的传播速度、线路图及详细的代码注释,帮助理解测距过程。
1728

被折叠的 条评论
为什么被折叠?



