打印
[51单片机]

关于红外收发的问题

[复制链接]
1126|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小盼abc|  楼主 | 2014-12-24 17:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main (void)
{
unsigned char i,pulse_num;

Init_Timer0();
IRSend_A=0; //关闭2个发射管
IRSend_B=0;
while (1)   //主循环
  {
  if(Flag)
    {
        pulse_num=0;   //脉冲计数
        for(i=0;i<30;i++)
                 {
             IRSend_A=1;//打开A发射
                DelayUs2x(150);
                 if(! IRRev)
                           pulse_num++;
            IRSend_A=0;//关闭A发射
             DelayUs2x(150);
                }

        if(pulse_num>25)
           LED_A=0;//如果判断有障碍,点亮LED_A指示,否则熄灭
        else
           LED_A=1;

    pulse_num=0;//清零脉冲计数
   
        for(i=0;i<30;i++)
                 {
             IRSend_B=1;//打开B发射
                 DelayUs2x(150);
                 if(! IRRev)
                      pulse_num++;
             IRSend_B=0;//关闭B发射
             DelayUs2x(150);
                }

        if(pulse_num>25)
           LED_B=0;//如果判断有障碍,点亮LED_B指示,否则熄灭
        else
           LED_B=1;
        }
  }
}
不明白为什么上面的DelayUs2x(150)必须是150;不然就无法检测障碍物

相关帖子

沙发
lnulibin| | 2014-12-24 19:47 | 只看该作者
可能,是这样。

如果前方近距离有障碍物,
则红外光返回的时间短。也就是经过DelayUs2x(150);时间,即能返回。

如果,前方没有障碍物,则红外光线也可能返回到接收管子,不过时间较长。
经过一定时间,接收管,也能接收到。

如果延时太长了,不管是有没有障碍物,都能接收到反射光。这样就无法判断有没有障碍了。

我猜的,有没有专家,给个说法。

使用特权

评论回复
板凳
小盼abc|  楼主 | 2014-12-24 20:38 | 只看该作者
lnulibin 发表于 2014-12-24 19:47
可能,是这样。

如果前方近距离有障碍物,

不对啊 ,我用了两个led模拟显示接收信号,如果不是150,是基本不会有接收信号的,换句话说,即使前面近距离存在障碍,也没有红外反射信号传回来

使用特权

评论回复
地板
小盼abc|  楼主 | 2014-12-24 20:38 | 只看该作者
大家帮帮忙啊 ,初学者,存在疑惑

使用特权

评论回复
5
小盼abc|  楼主 | 2014-12-24 22:54 | 只看该作者
:'(都没人愿意帮忙

使用特权

评论回复
6
小盼abc|  楼主 | 2014-12-25 09:24 | 只看该作者
焦急的等待

使用特权

评论回复
7
NE5532| | 2014-12-25 14:13 | 只看该作者
先确定一下这个延时的时间有多长,等光返回的时间说法不靠谱,你单片机的速度不可能跑过光速吧?有可能是等接收管信号输出的时间,检查你接收端的上拉电阻多大,再用示波器测一下上升沿速度。

使用特权

评论回复
8
小盼abc|  楼主 | 2014-12-25 14:27 | 只看该作者
本帖最后由 小盼abc 于 2014-12-25 14:30 编辑
NE5532 发表于 2014-12-25 14:13
先确定一下这个延时的时间有多长,等光返回的时间说法不靠谱,你单片机的速度不可能跑过光速吧?有可能是等 ...

延时大约150us,R35,100其他得版主可以说的简单点摸,懂的不怎么深

使用特权

评论回复
9
NE5532| | 2014-12-25 20:36 | 只看该作者
小盼abc 发表于 2014-12-25 14:27
延时大约150us,R35,100其他得版主可以说的简单点摸,懂的不怎么深


端口上的电平变化不可能瞬间完成,因为有寄生电容,实际上就是个RC过程。

使用特权

评论回复
10
wujh| | 2015-1-1 23:36 | 只看该作者
端口电平变化是有一个过程,但好像也不需要150us。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

86

帖子

0

粉丝