1. 超声波原理
超声波发射模块向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。
我们取声速340m/s, 计时时间为t,则计算公式为: L = 170 * t
2. 在蓝桥杯单片机实现
在蓝桥杯单片机中超声波的TX引脚连在P10端口,RX连在P11端口,在知道管脚分布后我们使用超声波的步骤如下: 1.产生8个40khz的超声波信号,通过TX发送出去 2.启动定时器。 3.等待超声波信号返回,一旦接受到反射回来的信号,rx引脚变为低电平 4.停止定时器,获得时间 5.根据公式计算距离。
3.具体测试代码3位
void Delay12us()
{
unsigned char i;
_nop_();
_nop_();
i = 33;
while (--i);
}
void send_wave()
{
int i =0;
for(i;i<8;i++){
TX = 1;
Delay12us();
TX = 0;
Delay12us();
}
}
void get_distance()
{
unsigned t;
AUXR &= 0xBF;
TMOD &= 0x0F;
TL1 = 0x00;
TH1 = 0x00;
TF1 = 0;
TR1 = 0;
send_wave();
TR1 = 1;
while(TF1==0&&RX==1);
TR1 = 0;
if(TF1==0) {
t = (TH1<<8)|TL1;
distance = t * 17 / 1000;
}
else{
TF1 = 0;
distance = 999;
}
}
|