打印

新手求助一个简单的红外点灯问题

[复制链接]
3120|34
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xgybq321|  楼主 | 2014-12-13 11:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
最近买了一个板子,做到红外接收实验部分了,但遇见了一个问题:用红外遥控器点亮LED灯的时候,无论是否按下遥控器,灯都会亮,只是亮的不明显,而且是属于那种一闪一闪的微亮状态,而按下键之后亮的比较厉害罢了,请问这是为什么呀?

然后我在跳过这个阶段,做一个用遥控器控制电子钟的实验的时候,也出现了类似的问题,本来我设定的是按一个键就加一分或者一秒,或者启动/关闭中断,但是现在我只要按一个键,板子就不停的对我按的那个键连续解码,比如,加一分钟,它就不停的加,或者关闭/开启中断,也是不停的关闭和开启,这是为什么呀?

这里附上我的点LED灯的代码,请各位指导。
sbit LED=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易**的符号
sbit IR_IN=P3^2;

void main (void)
{
while (1)         //主循环
  {
  LED=IR_IN;//主循环中添加其他需要一直工作的程序
  }
}
这里附一张红外接收头部分的图,我用的是PIC3388的接收头,已经用金属壳封装了,附近也只有电脑屏幕,日光灯,和外面的阳光三种光线而已,但是我在实验室中,晚上将灯和电脑都关闭之后也会发生这种情况

红外接收头PIC3388,不过发射口的跳帽已经给我拔了,所以肯定不会是发射头的干扰,求助各位高手帮忙

相关帖子

沙发
xgybq321|  楼主 | 2014-12-13 17:00 | 只看该作者
求助

使用特权

评论回复
板凳
NE5532| | 2014-12-13 22:52 | 只看该作者
找示波器看一下红外接收头输出的信号是啥样的。

使用特权

评论回复
地板
xgybq321|  楼主 | 2014-12-14 11:19 | 只看该作者
NE5532 发表于 2014-12-13 22:52
找示波器看一下红外接收头输出的信号是啥样的。

这样做的意思是检测我的红外接收头是否在不停的接收数据吗?可是我这里暂时没有能用的示波器,有一台还是坏的,还有别的方法能检测吗

使用特权

评论回复
5
NE5532| | 2014-12-14 12:01 | 只看该作者
对,而且你用遥控器来做信号源,遥控器输出的数据是啥,你调研过米??

使用特权

评论回复
6
xgybq321|  楼主 | 2014-12-14 14:16 | 只看该作者
NE5532 发表于 2014-12-14 12:01
对,而且你用遥控器来做信号源,遥控器输出的数据是啥,你调研过米??

我遥控器用的是TC9012,是那种学习用的小遥控器,我也是根据9012的说明书来编码的,主要是开始的时候写了一个数码管解码的程序,这个正常运行,所以我就认为这个是可用的了,但是在后期想用遥控器来控制电子钟的时候发现了这个问题,结果回溯到这个点灯的实验,也发现同样的问题,这才有此一问...

使用特权

评论回复
7
lgnativs| | 2014-12-14 17:27 | 只看该作者
可能是你的红外接收头有干扰吧

使用特权

评论回复
8
huayuliang| | 2014-12-14 18:43 | 只看该作者
程序问题

使用特权

评论回复
9
NE5532| | 2014-12-14 21:22 | 只看该作者
接收头是不能输出直流的,所以遥控器也不可能用直流来调制,那么解码以后的数据应该是什么,楼主说得清么?

使用特权

评论回复
10
xgybq321|  楼主 | 2014-12-15 09:40 | 只看该作者
huayuliang 发表于 2014-12-14 18:43
程序问题

那程序应该如何修改呢

使用特权

评论回复
11
xgybq321|  楼主 | 2014-12-15 09:41 | 只看该作者
lgnativs 发表于 2014-12-14 17:27
可能是你的红外接收头有干扰吧

还会有什么类型的干扰呢,我在不停的测试...

使用特权

评论回复
12
xgybq321|  楼主 | 2014-12-15 09:44 | 只看该作者
NE5532 发表于 2014-12-14 21:22
接收头是不能输出直流的,所以遥控器也不可能用直流来调制,那么解码以后的数据应该是什么,楼主说得清么? ...

遥控器发射不是由38kHZ载波来传递脉冲信号吗,那解码后的数据难道不是脉冲信号吗,我是新手啊,所以请大神不要卖关子了,给我讲讲吧

使用特权

评论回复
13
hnkf118| | 2014-12-15 12:55 | 只看该作者
先看看。

使用特权

评论回复
14
thuacn| | 2014-12-15 15:16 | 只看该作者
LED=IR_IN;//主循环中添加其他需要一直工作的程序
这个实际上LED会一直在闪的。必须解码才可以

使用特权

评论回复
15
NE5532| | 2014-12-15 15:39 | 只看该作者
xgybq321 发表于 2014-12-15 09:44
遥控器发射不是由38kHZ载波来传递脉冲信号吗,那解码后的数据难道不是脉冲信号吗,我是新手啊,所以请大 ...

不是,38k是载波,解调以后是调制30k载波的那个信号,不是卖关子,是你自己要去研究,不然怎么给你讲得清楚,网上答帖子,有不是面对面,能帮你把思路理清就不错了。

使用特权

评论回复
16
huayuliang| | 2014-12-15 17:03 | 只看该作者
用红外遥控器点亮LED灯的时候,无论是否按下遥控器,灯都会亮,只是亮的不明显,而且是属于那种一闪一闪的微亮状态而按下键之后亮的比较厉害罢了

为了方便,俺为你的文字加了颜色。

前面说明LED处于闪烁状态,单片机的引脚始终在输出脉冲。这个问题,你该检查程序,看看程序流程是否正确。

后面的情况说明,你的程序还是有部分功能是正确的。但仍不能说明是否在输出脉冲。

在没有测试设备的情况下,你可以用万用表测量引脚的输出电压。嗯,PWM你肯定知道的,如果是50%的方波,5V的电压下,你测得的电压应该是2.5V左右。

搞电子的人应该为自己制作一些简易有效的器材,比如逻辑测试笔····



使用特权

评论回复
17
xgybq321|  楼主 | 2014-12-18 16:21 | 只看该作者
huayuliang 发表于 2014-12-15 17:03
用红外遥控器点亮LED灯的时候,无论是否按下遥控器,灯都会亮,只是亮的不明显,而且是属于那种一闪一闪的 ...

非常感谢您的提示,我这两天去买了点新东西,包括换了一个数字示波器。

今天我再次测试了一下这个程序,并且用示波器测试了输出口引脚,我的红外口是P3.2,现在示波器的显示是:大部分情况下是没有信号输出的,但是会时不时的有一个高电平信号输出,高电平的持续时间是微秒级的,约几十微秒的样子

同时,每输出一个高电平,灯就闪一次,这个是完全对应的,所以我想,是不是我的电路板本身就会产生这类的干扰信号,然后我试了试周围的引脚,却并未出现高电平跳动

接着,我又测试了一下一个解码程序,在解码的时候,也会产生相应的高电平跳动,但是由于频率不高,不影响解码程序的进行,所以,我还是没有找到问题会出现在哪里,呵呵

使用特权

评论回复
18
xgybq321|  楼主 | 2014-12-18 16:22 | 只看该作者
hnkf118 发表于 2014-12-15 12:55
先看看。

请随意观摩,哈哈

使用特权

评论回复
19
xgybq321|  楼主 | 2014-12-18 16:36 | 只看该作者
thuacn 发表于 2014-12-15 15:16
LED=IR_IN;//主循环中添加其他需要一直工作的程序
这个实际上LED会一直在闪的。必须解码才可以 ...

我刚刚回来,呵呵

我用示波器测试了一下,红外输出引脚会毫无规律的产生高电平,这一点是我不明所以的地方

我试着用一个他人写好能用的解码程序测试过,解码没问题,但是在不发送解码信号的时候,一样会冷不丁的有高电平产生,实在令我费解...

使用特权

评论回复
20
xgybq321|  楼主 | 2014-12-18 16:43 | 只看该作者
NE5532 发表于 2014-12-15 15:39
不是,38k是载波,解调以后是调制30k载波的那个信号,不是卖关子,是你自己要去研究,不然怎么给你讲得清 ...

额,扯远了,我现在是不用遥控器,甚至把遥控器扔的远远的,红外接收头依然会输出信号,而且是无规律的高电平,这才是我的问题所在

使用特权

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

本版积分规则

6

主题

32

帖子

0

粉丝