佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

12
返回列表 发新帖
楼主: meimeyz

PIC Project (IR 计数 + RS232)

[复制链接]
发表于 25-1-2007 09:53 AM | 显示全部楼层
GeMan 大大,楼主一撒娇你就帮她了 。。。你真好啊。。。
Code 改的好, 没大问题(我也没compile),只是没有debouncing,跑的时候可能会“效笑”(福建), counter乱跳的。

本来我可以写2个input的,谁叫你一开始不说明?现在明白为什么每次网友发问时,我第一就是要知道是什么应用,什么要求等等,以便回覆也精确,看贴的人也从中受益。

楼主,GeMan大大在原来的code加了 status flag (PrevRlyInput1等),不明白就上来问吧。。。

其实,你做的Project, 正是我正在开发的商品之一 ,我们管它叫VTA (Visitor Traffic Analyzer),现在我正开发第三代的Sensor。 你要更多详情,可以去http://www.vta.com.my

最难的是Sensor,像GeMan说的, 如有人停留在IR sensor前,或有多人同时经过,就不准了。
所以第三代的Sensor要解决以上的问题,还要知道人流的方向, 是走进还是走出。

GeMan大大和各位高手,一却可行的方法。。。我已考虑IR, Camera, PIR, UltraSonic, 等等, 但有一定的难度。。。有什么建议给小弟吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 25-1-2007 06:27 PM | 显示全部楼层
--只是没有debouncing,跑的时候可能会“效笑”(福建), counter乱跳的。
##暂时不能加 debouncing (relay input filtering), 因为 code 太复杂了, 怕 楼主 一时看不明白。 (真正原因:没有时间写)

要 debouncing, 最简单的方法是 用 resistor + capacitor 做 hardware input noice filtering。
回复

使用道具 举报

发表于 25-1-2007 06:47 PM | 显示全部楼层
--GeMan大大和各位高手,一却可行的方法。。。我已考虑IR, Camera, PIR, UltraSonic, 等等, 但有一定的难度。。。有什么建议给小弟吗?
##小弟的浅见: IR sensor 上下 方向,一排过,越 5cm 一个 sensor。两个人同时经过,可以 detect。
回复

使用道具 举报

 楼主| 发表于 25-1-2007 08:31 PM | 显示全部楼层
PIC大大和GeMan大大,你们真的是我的在世救命恩人。。。 其实我自己也有在改那个coding的, 可惜我还是搞不懂coding的instruction,所以我所改的东西已经宣布失败了!!!!!! 我原本打算明天只demo一个input给我的supervisor和moderator看的,在这紧要的时刻我就跑上来看看还有没有挽救的机会。。。结果。。。GeMan大大却帮我写好了我要的coding。。。我可以说的是,如果没有你们,我的project就要被挡掉了。。

各位大大,我你们哦!!!!!!!!!

我已经在我的PIC input加了一个debouncing电路, 所以我现在的counter是不会乱跳的。。。 我聪明吗??? 等我明天demo完了,有时间了,我就上传我的电路图让大家一起分享。。。

还有PIC大大,你所说的问题也是我在presentation时,我的moderator问我的问题。。很可惜我答不出来。你有什么好的答案让我明天应付她吗??? 就是那个如果有两个人同时经过那个sensor,那怎么办。。。。

谢谢你们。。。我的成功是你们的最大功劳!!!!!!!!!!

[ 本帖最后由 meimeyz 于 25-1-2007 08:35 PM 编辑 ]
回复

使用道具 举报

发表于 26-1-2007 09:29 AM | 显示全部楼层

回复 #23 GeMan 的帖子

IR sensor 上下 , 是指头到脚吗?一边发射,一边接收?那地上的不容易按装, 用reflector也很奇怪。
IR 反射式(Proximity),是会较理想,但是它的范围很短,我最厉害也只是“勉强”1米 , 但我的要求是最少1.5米(轻松)。
回复

使用道具 举报

发表于 26-1-2007 09:36 AM | 显示全部楼层

回复 #24 meimeyz 的帖子

还有PIC大大,你所说的问题也是我在presentation时,我的moderator问我的问题。。很可惜我答不出来。你有什么好的答案让我明天应付她吗???  就是那个如果有两个人同时经过那个sensor,那怎么办。。。。

告诉他用Camera, 但一分钱一分货, 或GeMan大大说的, 从头到脚,下整排IR。
回复

使用道具 举报

Follow Us
发表于 27-1-2007 10:54 PM | 显示全部楼层
原帖由 meimeyz 于 25-1-2007 08:31 PM 发表
...
谢谢你们。。。我的成功是你们的最大功劳!!!!!!!!!!


只许这次,下不违律。 (下次不要临时抱佛脚了)
回复

使用道具 举报

发表于 27-1-2007 11:06 PM | 显示全部楼层
原帖由 pic 于 26-1-2007 09:29 AM 发表
IR sensor 上下 , 是指头到脚吗?一边发射,一边接收?那地上的不容易按装, 用reflector也很奇怪。
IR 反射式(Proximity),是会较理想,但是它的范围很短,我最厉害也只是“勉强”1米 , 但我的要求是 ...


IR 反射式,但地下放 IR reflector(不是镜子),红色的那种。

IR emittor 加强 power。 IR receiver 用有 daylight filter 的那种。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 28-1-2007 08:42 PM | 显示全部楼层
GeMan大大,你写给我的code有问题。。。我用了port B0和B1来当我的第一个input,port B2和B3是我的第二个input.奇怪的是当我用了你的code,只有第二个input能用,还有它出来的data是“00000”,当然第一个input是完全不能用。 为什么会这样的呢???

请问pic大大可以再帮我写过整个code吗???我还有第二个demo的机会。。。(对不起GeMan大大,别生气哦!!!
回复

使用道具 举报

发表于 29-1-2007 12:38 AM | 显示全部楼层
放心,不会生气的。

因为我没用过 C 来 program,我也不敢说 100% 没问题, 但基本概念 (concept) 是 100% 没问题。

要注意的是:
1。port bit in/out setting

2。这几个 instruction 是否正确 (syntax):
RlyInput1=input(iRelay1);
if(PrevRlyInput1)

如果不能这样用就改成:


   while(1)
   {

        // remember previous relay input status
        PrevRlyInput1=RlyInput1;
        PrevRlyInput2=RlyInput2;

      ///////////////////////////////////////
      // If Input is Low, Relay Close/Short
      if(!input(iRelay1))
      {
          if(PrevRlyInput1==1)  // if previous input high (open) , this means relay clicked, need to add 1
          {
              counter1++;  // increase counter by 1
              // always send 2 counter values so that PC will not confuse
              printf("%lu\n\r",counter1); // send counter value to PC
              printf("%lu\n\r",counter2); // send counter value to PC
          }
         LED1On;      // On LED
         RlyInput1=0;
      }
      if(input(iRelay1))              // If Input is high, Relay open
      {
         LED1Off;      // Off LED
         RlyInput1=1;  
      }


      ///////////////////////////////////////
      // If Input is Low, Relay Close/Short
      if(!input(iRelay2))
      {
          if(PrevRlyInput2==1)  // if previous input high (open) , this means relay clicked, need to add 1
          {
              counter2++;  // increase counter by 1
              // always send 2 counter values so that PC will not confuse
              printf("%lu\n\r",counter1); // send counter value to PC
              printf("%lu\n\r",counter2); // send counter value to PC
          }
         LED2On;      // On LED
         RlyInput2=0;
      }
      if(input(iRelay2))              // If Input is high, Relay open
      {
         LED2Off;      // Off LED
         RlyInput2=1;
      }


      ///////////////////////////////////////
      // Read RS232
      ReadRS232();
   }

[ 本帖最后由 GeMan 于 29-1-2007 01:08 AM 编辑 ]
回复

使用道具 举报

发表于 29-1-2007 01:29 AM | 显示全部楼层
最好是用 port B 的 pin 1,2,4,5 做为relay input 及 LED output。
回复

使用道具 举报

发表于 29-1-2007 08:11 AM | 显示全部楼层
原帖由 meimeyz 于 28-1-2007 08:42 PM 发表
GeMan大大,你写给我的code有问题。。。我用了port B0和B1来当我的第一个input,port B2和B3是我的第二个input.奇怪的是当我用了你的code,只有第二个input能用,还有它出来的data是“00000”,当然第一个input是 ...

对不起,看不出有什么理由要帮你写第三次, 得寸进尺。已经说过,有问题可以问。。。
相信GeMan也是最后一次帮她了。。。
回复

使用道具 举报

发表于 29-1-2007 12:15 PM | 显示全部楼层
Meimeyz,不知你是不是真的是女生。。。
但无论如何,你犯了很大的错误。。。
第一,都要截止日期了,你才要开始想要怎样写code。要问的话,不是拖到这种地步才问的。应该在project开始或一半时,就问了的。
第二,你一而再,再而三的叫人写code。可以,但你必须要要问是什么问题,而不是叫人写。这样做太得寸进尺了。
第三,请不要用你爱我,我爱你来解决project的问题。

你好好想想。。。

[ 本帖最后由 Right 于 29-1-2007 12:16 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 29-1-2007 08:55 PM | 显示全部楼层
对不起。。。如果不是我的project临时被要求要改的话我也不会到处找人求救。。。还有请不要怀疑我的性别。。。我从来不会要他人可怜我而掩饰自己的性别。我也没有用所谓的“我爱你,你爱我”的方式来换取些什么,我只是不懂要怎样来报答帮过我的人所以才会这样说。。。

当然帮还是不帮是你们的权力。。。如果你们选择不帮的话我也没话好说,也不能做些什么。。。谢谢你们教了我这么多的东西。。。
回复

使用道具 举报

发表于 30-1-2007 11:09 AM | 显示全部楼层
“帮还是不帮是你们的权力。。。如果你们选择不帮的话我也没话好说”。 已经帮了啊,还帮了不少, 你说对吗?

很多时候, 同学在做project时, 会觉得没有头绪, 无从下手, 无助, 很需要有人能帮一把(Kick Start),但我认为只是帮一把, 不是送佛送到西,所以这里不是帮人做功课的地方,一开始已经说得很清楚了。。。

最基本的要求是自己试作做,遇到问题,可以讨论,但也需要向大家展示你做了什么,把有问题的源码放出来,让大家来抓虫,从中互相学习,这是正确的学习态度。

人生会有很多变数, 怎样面对也是历练的一种。以后如果工作了,突然老板或顾客临时改变主意,打乱了你的schedule,工作交不出来,怎么办?有限度的求助是一种方法,然后自助才是最终的方法,过关了,你发觉你也成长了,面对危机的能力也强了。

RIGHT网友只是把他的疑问提出,站在他的角度来看是没错啊。。。现在你已经澄清了,疑问也解除了。

如果你遇到和电子或MCU有关的问题,这里是很欢迎大家来发问的。。。
回复

使用道具 举报

发表于 31-1-2007 06:52 PM | 显示全部楼层
进 展 如 和 了 ?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 31-1-2007 10:35 PM | 显示全部楼层
GeMan大大,我这几个天没去上课。。。因为我病倒了。。。我下个星期三才去试试看能不能。。。因为我学校的工作室每天都有人上课,只有星期三下午能用而已。。。对不起哦。。。
回复

使用道具 举报

发表于 12-2-2007 04:33 PM | 显示全部楼层
若还有时间,不仿到此网站询问:

www.mikroe.com/forum

C 的找 MikroC forum
BASIC 的找 MikroBasic forum

此网站本是Mikroelectonical的官方网站
回复

使用道具 举报

发表于 22-2-2007 01:38 PM | 显示全部楼层
现在做学生的生意好像不错~~有钱学生特别多

哈哈~~~
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-12-2024 11:21 PM , Processed in 0.173553 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表