51单片机驱动超声波测距模块在程序上有两个特别需要注意的地方,已公布。
本帖最后由 jianhong_wu 于 2014-11-18 19:26 编辑顺顺--秦皇岛:
下图这种超声波模块我玩过,有个地方需要特别注意,是我摸索出来的,就是发送超声波的时间有的时候需要调整。
leefei-佛山:
为什么?
顺顺--秦皇岛:
就是你发超声波的时候有噪音。得避开这个噪音对回波的影响。
鸿哥-深圳:
怎么调整?
顺顺--秦皇岛:
以下是我的程序,用的是51单片机,11.0592MHz的晶振,好多时候超声波模块不能正常工作就是因为这个函数里面的延时不够。
voidStartModule() //启动模块
{
TX=1; //启动一次模块
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TX=0;
}
鸿哥-深圳:
还有什么需要注意的地方?
顺顺--秦皇岛:
还有就是定时器里面尽量别放东西,就是超声波计时用的那个定时中断里面别有其他的东西,会影响计时的。我亲自用示波器试过。
这个程序我看过,写了一个delay代替nop,这模块不太好用,测数据不稳定,而且只能对着平面
页:
[1]