关于单片机 发射红外线遥控电视机疑问?
首先我是业余学习单片机 没有系统的知识也是刚接触到单片机并且非常喜欢单片机。最近想通过单片机和红外发射管(红外线二极管),制作一个能控制电视机的遥控程序。
硬件:STC1205A32S2 单片机。12M 晶振。红外线二极管。
想法直接通过单片机连接二极管发射信号 控制电视机。不通过外部芯片。
疑问1:如果通过单片机内部时钟和中断产生38KHZ的载波,并且如何将调制波加到 38KHZ载波上?
疑问2:通过一体化红外线接受管连接立体声接口通过电脑声卡和处理软件获得的遥控波形(见下图)如何分析,其中的抬高部分是代表接收管输出了高电平吗还是其他,请详细说明?
疑问3:图中第一个信号是抬高的,见资料是说一体化接收头在接收到38KHZ的信号时输出低电平,那第一部分抬高是指接收头输出高电平还是低电平。
疑问4:请给出具体的电路图(单片机如何于发射管连接,这款单片机可以使I/O口推挽输出可以直接驱动红外线发射管吗),并且附上 38KHZ载波产生和调制波如何加到载波上的完整C程序!
如果 C语言内容不方便粘贴清E-mail:linxuedao@gmail.com
请发可行的C程序,分数可以加 展开
是电视机遥控器?还是机顶盒遥控器?
还有写程序之前需要确认电视机遥控器的编码方式,否则一切都是白搭。
是NES编码?还是SAA3010T编码?……
如果你不知道就说说你电视机的品牌型号吧。
比如我家的:
电视机是长虹,长虹遥控器的编码方式是SAA3010T。
机顶盒遥控器的编码方式是NES。
艾诺MP4 V8000 遥控器的编码方式也是NES。
红外遥控插排 遥控器的编码方式也是NES。
几个遥控器挺麻烦的,所以我就用STC11L04做了一个4和1遥控器,很方便的!
STC1205A32S2比传统51单片机有所改进,有很多扩展功能,只要你将它的各项功能大概了解,上面的程序只是小问题了。
不建议:
使用中断产生38K载波。
推免驱动发射二极管。
用软件或者PWM产生38K载波更好:
方便调制,可以调节占空比,提高脉冲电流峰值,实现低功耗发射远的目的。
推免驱动允许最大电流20mA,一般6米左右也是可以的,
但是,加个三极管,发射距离比推挽远的多,为什么不用,反正又不复杂。
下面是PNP三极管驱动电路(占空比使用约3:4)
2024-10-17 广告
2.你挺有才 用电脑做了个示波器,红外接收头资料中说 发射端电平与接收端电平是反相的,也就是 当红外发射亮的时候,(发射端应称作1),接收头那端应是低电平(也就是0)。遥控的协议中有几个ms低电平的起始,所以接收头那端会拉高几个ms
这是红外协议,虽为e文但比较详细http://wenku.baidu.com/view/2f77818da0116c175f0e48a8.html
3.你用什么单片机不知道,做什么不知道,但是电路很简单,红外二极管直接接在io口上就行
选好单片机后程序百度一抓一大把,基本都可以用。
红外最难的不是底层以及协议,而是四字节的编码,因为没人报出各个厂商红外编码以及对应的指令(我没见过),如果你想用,得自己解码后记下来
这是人家弄得 可以减少你的开发时间
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4493205&bbs_page_no=1&search_mode=1&search_text=红外遥控&bbs_id=9999
就是冲着你那200分来的 觉得可以就给我
我想要的是电路图(不接其他芯片) 和发射端的C程序
“http://www、ourdev、cn/bbs/bbs_content、jsp?bbs_sn=4493205&bbs_page_no=1&search_mode=1&search_text=红外遥控&bbs_id=9999”
你把上面链接的“、”改为“.”他写的程序就完全可以用,并且还能实现解码,我说过,最难的是编码,其他的都有资料,就编码没资料。
电路图也是,如果不要求距离,直接将io口接在红外发射管的负极,正极串一个200Ω左右的电阻与VCC相连。(一般的单片机的灌电流都不小),如果想距离远(几米左右),你得找一个io口具有推挽能力的单片机比如avr 或者stc12系列。当io口拉低,灯亮,发射端发射“1”,接收端接收到“0”,就是如此。
参考资料: ourdev ,算是帮阿莫做做广告了
定时时间到后把红外发射控制管脚取反就可以了,另一个信号脚可以通过一个与门和38K信号一起输入,输出信号即为调制后的信号了。
3,抬高,是说明接收头没有收到含有38K载波的信号
对于抬高,那前面一段空白的时候 未发射红外信号为何不是抬高的呢?
那是不确定状态,也就是所谓的:三态 状态
并不是考虑开发价值 这只是一个学习的过程
没有开发价值的东西,不值得学习。