8415|22

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于2个红外传感器被触发的先后顺序的问题 [复制链接]

两个红外传感器被触发的先后顺序怎么来判断?哪位大神来帮帮我啊~
此帖出自51单片机论坛

最新回复

楼主能不能分享一下这个红外触发的代码,最近也在做这个,不过遇到瓶颈了,我只需要一个触发  详情 回复 发表于 2017-5-11 09:33
点赞 关注
 

回复
举报

1071

帖子

7

TA的资源

纯净的硅(中级)

沙发
 
加发光二极管呗
此帖出自51单片机论坛

点评

额。。。这个。。。这个。。。。不对吧  详情 回复 发表于 2014-5-5 20:16
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
dj狂人 发表于 2014-5-5 19:46
加发光二极管呗

额。。。这个。。。这个。。。。不对吧
此帖出自51单片机论坛

点评

你想说有时候会两个二极管一起亮,当红外管还是有触发先后当看不出来?  详情 回复 发表于 2014-5-5 20:21
怎么不对  详情 回复 发表于 2014-5-5 20:19
 
 
 

回复

1071

帖子

7

TA的资源

纯净的硅(中级)

4
 
豆小擎 发表于 2014-5-5 20:16
额。。。这个。。。这个。。。。不对吧

怎么不对
此帖出自51单片机论坛

点评

额,你说的是正常看来是可以的,但是在我要做的程序里面不对,怪我,我一开始没说明白  详情 回复 发表于 2014-5-5 20:31
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

5
 
我用的两个全局变量flog_a=0,flog_s=0;采用的外部中断
/*************外部中断**********************/
void EX_INT0() interrupt 0
{
        if(flog_a==0)//判断是否有折返
        {
                flog_a=1;
                if(flog_s==1)//判断出
                        count--;
        }
        else flog_a=0;
}

void EX_INT1() interrupt 2
{
        if(flog_s==0)//判断是否有折返
        {
                flog_s=1;
                if(flog_a==1)//判断进
                         count++;
        }
        else flog_s=0;
}
/*************************************/
但是这个程序有问题,我在用proteus仿真的时候,进两个人计数器才加1个,减也是
此帖出自51单片机论坛
 
 
 

回复

1071

帖子

7

TA的资源

纯净的硅(中级)

6
 
豆小擎 发表于 2014-5-5 20:16
额。。。这个。。。这个。。。。不对吧

你想说有时候会两个二极管一起亮,当红外管还是有触发先后当看不出来?
此帖出自51单片机论坛

点评

用两个红外传感器1,2放在门口,进门时依次碰到1,2,计数器加1;出门时依次碰到2,1两根,计数器减1。我是想这样判断12还是21,这个先后顺序  详情 回复 发表于 2014-5-5 20:28
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

7
 
dj狂人 发表于 2014-5-5 20:21
你想说有时候会两个二极管一起亮,当红外管还是有触发先后当看不出来?

用两个红外传感器1,2放在门口,进门时依次碰到1,2,计数器加1;出门时依次碰到2,1两根,计数器减1。我是想这样判断12还是21,这个先后顺序
此帖出自51单片机论坛

点评

先不说那个先触发 ,中断里面得加个循环吧, 不然进一个人会引起多次触发  详情 回复 发表于 2014-5-5 20:31
 
 
 

回复

1071

帖子

7

TA的资源

纯净的硅(中级)

8
 
豆小擎 发表于 2014-5-5 20:28
用两个红外传感器1,2放在门口,进门时依次碰到1,2,计数器加1;出门时依次碰到2,1两根,计数器减1。我是 ...

先不说那个先触发 ,中断里面得加个循环吧, 不然进一个人会引起多次触发
此帖出自51单片机论坛

点评

加循环。。。不理解,求指教  详情 回复 发表于 2014-5-5 20:36
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

9
 

额,你说的是正常看来是可以的,但是在我要做的程序里面不对,怪我,我一开始没说明白
此帖出自51单片机论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

10
 
dj狂人 发表于 2014-5-5 20:31
先不说那个先触发 ,中断里面得加个循环吧, 不然进一个人会引起多次触发

加循环。。。不理解,求指教
此帖出自51单片机论坛
 
 
 

回复

1071

帖子

7

TA的资源

纯净的硅(中级)

11
 
当一个红外检测到人的时候一直停在循环里,直到人离开红外检测区域,还有建议不要用中断,用扫描
此帖出自51单片机论坛

点评

直接在函数体里用if来判断?  详情 回复 发表于 2014-5-5 20:52
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

12
 
dj狂人 发表于 2014-5-5 20:40
当一个红外检测到人的时候一直停在循环里,直到人离开红外检测区域,还有建议不要用中断,用扫描

直接在函数体里用if来判断?
此帖出自51单片机论坛

点评

嗯,中断的话还有个优先级,扫描的话,哪个先检测到就直接停在循环里,直到人离开。不过不管怎样你都得把两个红外检测模块放远一点吧  详情 回复 发表于 2014-5-5 20:59
 
 
 

回复

6423

帖子

17

TA的资源

版主

13
 
定义两个标志位,查看标志位,如第一个被检测到标志置1,当检测到另一个时看第一个的标志位是0还是1,是1说明是第一个要早,第二个要晚;是0说明第一个还没检测到当然就是第二个要早了
此帖出自51单片机论坛

点评

和我上面那个程序是差不多的  详情 回复 发表于 2014-5-5 21:21
 
个人签名training
 
 

回复

1071

帖子

7

TA的资源

纯净的硅(中级)

14
 
豆小擎 发表于 2014-5-5 20:52
直接在函数体里用if来判断?

嗯,中断的话还有个优先级,扫描的话,哪个先检测到就直接停在循环里,直到人离开。不过不管怎样你都得把两个红外检测模块放远一点吧
此帖出自51单片机论坛
 
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

15
 
白丁 发表于 2014-5-5 20:56
定义两个标志位,查看标志位,如第一个被检测到标志置1,当检测到另一个时看第一个的标志位是0还是1,是1说 ...

和我上面那个程序是差不多的
此帖出自51单片机论坛
 
 
 

回复

1万

帖子

139

TA的资源

版主

16
 
哪个先被触发总该知道吧,楼主的这个问题实在不应该。
此帖出自51单片机论坛

点评

但是还要判折返呢  详情 回复 发表于 2014-5-6 09:42
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

17
 
chunyang 发表于 2014-5-5 22:26
哪个先被触发总该知道吧,楼主的这个问题实在不应该。

但是还要判折返呢
此帖出自51单片机论坛

点评

道理类似,估计楼主是不会编程吧。对人而言,判断哪个被触发也许是件难事,但对MCU而言,两个传感器的触发间隔那是一段足够长的时间间隔,哪怕你飞奔也不过如此。这样,中间有足够的时间可以去做适当的处理。  详情 回复 发表于 2014-5-6 23:50
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

18
 
同意13楼的说法
此帖出自51单片机论坛
 
 
 

回复

1万

帖子

139

TA的资源

版主

19
 
豆小擎 发表于 2014-5-6 09:42
但是还要判折返呢

道理类似,估计楼主是不会编程吧。对人而言,判断哪个被触发也许是件难事,但对MCU而言,两个传感器的触发间隔那是一段足够长的时间间隔,哪怕你飞奔也不过如此。这样,中间有足够的时间可以去做适当的处理。
此帖出自51单片机论坛

点评

确实是编程小白。。。不过,我说的那个判折返不是指单片机运行判断,而是我怎么写程序判折返的意思,最近满脑子的各种想法,已经统统混乱掉了。  详情 回复 发表于 2014-5-7 19:56
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

20
 
chunyang 发表于 2014-5-6 23:50
道理类似,估计楼主是不会编程吧。对人而言,判断哪个被触发也许是件难事,但对MCU而言,两个传感器的触 ...

确实是编程小白。。。不过,我说的那个判折返不是指单片机运行判断,而是我怎么写程序判折返的意思,最近满脑子的各种想法,已经统统混乱掉了。
此帖出自51单片机论坛

点评

编程思路是建立一个变量,不同传感器对应的变量位不同,根据读数就知道了。 给你个提示吧。 定义一个变量,初始化时清零。 当传感器中断发生时,先读该变量,如果该变量为0则将该变量置为非0数。 当传感器中断再  详情 回复 发表于 2014-5-7 23:02
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表