单片机做红外遥控器的问题求教。。。
我是用单片机来做发射信号,我将单片机的一个I/O口作为输出脉冲信号的管脚,输出通过一个电阻接红外发射管接地。单片机编程时,我先选定单片机的工作频率为4Mhz,然后用延时子...
我是用单片机来做发射信号,我将单片机的一个I/O口作为输出脉冲信号的管脚,输出通过一个电阻接红外发射管接地。单片机编程时,我先选定单片机的工作频率为4Mhz,然后用延时子程序产生38Khz的波形作为载波,然后利用这个载波频率作为输出代码的基本频率,比如“0”用4个载波周期的低电平和12个载波周期的高电平表示,这样算实现了频率的加载吗?这样的频率加载有什么问题吗?求有过用单片机做红外遥控器的高手前辈多多指教,在下不胜感激。谢谢
展开
4个回答
展开全部
首先一点,你的驱动方式可以更合理一点,比如发射管的正极接电源,负极通过一个电阻到单片机的IO,单片机输出低的时候发射管工作.一般来说,单片机的灌电流能力通常会强于推电流的能力,特别是当IO可以工作于开漏或集电极开路模式时,还可以工作于不同的电压等级.
另外,通常用到的红外遥控,其信号绝大多数都是采用的"OOK"调制模式,也就是说,有信号时表示1或者0,否则表示相反的数据.例如,接收头接收到38KHz信号时,输出为高,没接收到的时候,输出为低.因此,你可以直接用所要发送的数据,来控制定时器是否输出,就完成了信号的调制.
当然,具体到不同的遥控-接收设备,其通讯的格式和信号的表示方式会有所不同,例如有些可能是直接用固定周期的信号有或来表示每一个bit,或者在同一个周期中,用信号有或无的比例来表示一个bit.
例如,前者可能每10mS表示一个bit,那么连续20mS就表示连续的两个1,之类的;
而后者,则可以是25%的载波+75%的空波表示0;而用75%的载波+25%的空波表示1,等等.
这些具体的表示方法都不一而足,还有一些遥控器是使用的周期不固定的信号,这都需要具体看所应用的具体设备.
当然如果你是做实验,那就可以自行定义了.
另外,通常用到的红外遥控,其信号绝大多数都是采用的"OOK"调制模式,也就是说,有信号时表示1或者0,否则表示相反的数据.例如,接收头接收到38KHz信号时,输出为高,没接收到的时候,输出为低.因此,你可以直接用所要发送的数据,来控制定时器是否输出,就完成了信号的调制.
当然,具体到不同的遥控-接收设备,其通讯的格式和信号的表示方式会有所不同,例如有些可能是直接用固定周期的信号有或来表示每一个bit,或者在同一个周期中,用信号有或无的比例来表示一个bit.
例如,前者可能每10mS表示一个bit,那么连续20mS就表示连续的两个1,之类的;
而后者,则可以是25%的载波+75%的空波表示0;而用75%的载波+25%的空波表示1,等等.
这些具体的表示方法都不一而足,还有一些遥控器是使用的周期不固定的信号,这都需要具体看所应用的具体设备.
当然如果你是做实验,那就可以自行定义了.
追问
不知道你的QQ多少,很多问题我想你向你求教
追答
285307250,koii
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通常用到的红外遥控,其信号绝大多数都是采用的"OOK"调制模式,也就是说,有信号时表示1或者0,否则表示相反的数据.例如,接收头接收到38KHz信号时,输出为高,没接收到的时候,输出为低.因此,你可以直接用所要发送的数据,来控制定时器是否输出,就完成了信号的调制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询