一、US-100的电气参数:
工作电压 DC2.4V~5.5V
静态电流 2mA
输出方式 电平或UART
二、利用US-100电平模式测距核心代码
1、启动检测:
/*启动测距信号,只需要在 Trig/TX 管脚输入一个 10US 以上的高电平,系统便可发出 8 个 40KHZ 的超声波脉冲,然后检测回波信号。
当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX 管脚输出*/
void StartModule()
{
TRIG=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
TRIG=0;
}
2、计算距离:
/**************************************************
US-100超声波测距模块,模块将距离值转化为 340m/s 时的时间值的 2倍,通过 Echo 端输出一高电平,可根据此高电平的持续时间来
计算距离值。即距离值为:(高电平时间*340m/s)/2。
********************************************************/
void Conut(void) //计算距离
{
while(!ECHO); //当RX为零时等待,不为零是退出循环,执行下一行程序,给TR0赋值1,开启计数器。
TR0=1; //开启计数
while(ECHO); //当RX为1计数并等待(ECHO引脚持续输出高电平时),当ECHO为低电平退出循环,给TR0赋值0,关闭计数器。
TR0=0; //关闭计数
time=TH0*256+TL0; //读取脉宽长度time(TH0占八位,TL0占八位,一共16位,2^8=256,所以time=TH0*256+TL0)
TH0=0; //计数器重新初始化
TL0=0;
S=(time*1.7)/100; //(高电平时间*340m/s)/2,通过计算算出来是CM
}
/************************************************************************/