原创 如何用PIC做红外线遥控接收?(三)

2009-8-3 12:44 1968 1 1 分类: MCU/ 嵌入式

来源 CEPARK电子网 http://www.cepark.com/Index.html# 作者: hnrain


关于红外线接收的一点思路 
我现在在做电视机红外线接受,发射器,看了一些书,书上说信号被调制在38khz的调制信号上,但我通过一颗红外接收管加两级放大后看红外线波形,示波器要打到10ms档上才能看到完整波形,照书上说的话应该打到50us档上就能看到波形了,而且这个波形像梯形波,请问这是怎么一回是,我用的红外线源就是长虹电视机的遥控器,这样的话我的接收程序怎么写呢? 

你不用管他怎么调制的,你只需要用一个接收头就可以了,出来的就是方波,根据两个下降沿来判断信号就行了(空闲状态为高电平),我当初用示波器观察了一天才了解是怎么回事 

  那如果有人一直按着遥控器,单片机不是会当一个信号并记录下来,而且我用的是pic16c57的片子,没有中断的,两个下降沿的时常如何判断,而且如何确定一个信号已经结束了呢,

如果你没做过红外遥控接受,建议你先用带中断的片子来搞,用57是有一定难度的 
 

看了你写的红外线接收的程序,有点问题 
 
你写的接收程序第二条就用goto转跳到rf1,而在rf1上用了retlw 0这个指令,但这个指令不是要使用call指令返回时才用的吗,如果goto指令用了retlw 0,那返回到哪里去,
这个和遥控器使用的芯片有关,你可以了解一下有关这个遥控器按键的定义,也可用示波器观察。最好你先写一段程序来读码,观察一下按键定义和规律。 


如果要求不高的话可以用红外的编码、解码芯片 
如果想要误码率小的话最好自己编发射和接收(再加上解码)的程序

1.从红外线发射出来的是什么?接收倒的又是什么?一些高低电平吗?
2.我们怎么样来对这些进行解码?所谓的码是什么代码?是0.1码吗?还是什么?
问题好多,一切在于没有经验,谢谢大家帮忙解惑。


你学过高频吗?学过会容易理解一点 
红外传输一般分为两种:
1。有载波:就是把基带信号(就是“0”,“1”)调制到38k的载波上去,由红外发光管发射(同发光二极管)出去;
然后在接收端用红外光敏二极管(或三极管)或者红外一体化接收头接收。
用光敏二极管或三极管接收需要用程序或ic(如:cx20106等)解调。然后再对基带信号进行处理。这种方法主要用于载波需要有多种频率的场合。   
用一体化接收头的灵敏度比较高,体积相对比较小,内部集成了38k解调、低通滤波和其他一些抗干扰电路。这种接收头使用比较简单,不过据我使用过的情况来看,灵敏度越高抗干扰性能就越差,常常伴有脉冲干扰,用程序还是可以解决的。
基带信号最好使用编码、调整占空比等以加强抗干扰性能。

2。直接用0,1信号发送:在距离比较近(cm级别),环境干扰比较小的情况下使用。   
我的想法是直接将遥控器的信号经过两级放大,是三极管放大后输出,但我现在就是不知道,38khz的信号如何记入单片机,我想不用解码芯片 


好呀,发射一个9013就够了,假如买不到距离不够而且买不到大功率发射管的话可以把两个发射管串联起来。

为什么要把38k信号输入单片机呢?你用红外光敏三极管接收?成本倒是低了好多。工艺要求就比较高了。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
1
关闭 站长推荐上一条 /3 下一条