刚刚上了个遥控的视频!
为了调好这个红外控制程序可把我累坏了.买了个万能的电视遥控器,7个按键的那种,用频道加减控制前后运动,音量加减控制左右运动,电源键控制停车,TV/AV键用做多功能组合键.设想是蛮好的,没想到买来这个遥控器后,用数字示波器分析它的波形,花了好大的力气一个一个地把按键的数据分析出来,还很高兴地发现,这个代码格式和我以前做过的那个一样,都是9MS的低电平加4.5MS的高电平做引导头,然后是32位的数据,其中高两位是地址码,每个按键都一样,后两位是键码和它的反码,600US的脉宽代表0,1800US的代表1,直接拷贝以前的程序,把键码数据该成这个新遥控器的,就写了一个芯片去试,结果怎么都不灵,真怪啊,想想这么简单的东西也懒得用仿真器来调试,结果弄了很久才发现,遥控器的发送代码已经改变了,因为这是个万用的遥控器,里面也不知道存了多少种电视机的遥控代码和格式.我刚开始分析信号的时候是拿来就直接分析的,但这个遥控器可以通过长按静音键来改变控制格式和代码,如果真的用来控制电视的话,就是长按静音键直到电视有静音的动作,这个时候其它的键就可以控制电视的相应功能了.也不知道我什么时候长按了静音键就把辛辛苦苦分析的数据给改了。没办法,在示波器前趴了一下午,一个一个地分析过去,希望找到那个代码。结果把眼睛看花了都没找到,示波器调成单次触发,接收信号后,自动显示波形,需要再按一次RUN才能接收下一个波形。好累!实在搞烦了,索性拔了遥控器电池,经过测试发现,只要拔电后按一下任意键,再装上电池,遥控器发出的波形格式和数据都是一样的,索性就用这个初始代码格式吧,以后弄乱了就拔电池。这个格式还不一样,是4MS的低电平和4MS的高电平做引导头,再是24位的数据,其中1MS宽度的代表0,2MS宽度的代表1。重新编了个程序才彻底解决红外信号识别的问题。不过那个2032的锂电池也基本没电了,量了下只有2.5V不到了,刚买来时测了下发射距离还真有说明书上说的6M,现在1米都不到了,看视频上,遥控器几乎要拿到红外接收头前才有反应。希望红外发射管没老化,要不然还得再买个新的。 |