问题描述
大家好,在做红外遥控时碰到了问题,由于没接触过这方面,请做过这方面的朋友指点下。要实现的是通过PC端一个程序发送红外指令,控制空调设备。PC端接了一个水木行的IR220红外串口适配器;1、通过像串口发送指令字符串无反应;2、接收遥控器按键,收到的基本都是这样的一些内容00C0C0C0C0C0C0C0C0,发送收到的内容无反应(转0,1也试过);
解决方案
解决方案二:
接收数据应该有问题,那个边是你自己整理的吗,有两个28?
解决方案三:
引用1楼yuankaiwsl的回复:
接收数据应该有问题,那个边是你自己整理的吗,有两个28?
图第二个28是写错了29,但不是那个问题。
解决方案四:
1、你收到的遥控器发送的数据00C0C0C0C0C0C0C0C0是9个字节=72位,而你整理的表中只有36位=4.5个字节,不是整字节,这里不对吧;2、你用收到的遥控器发送的数据发给设备,没有反应,说明这个数据不对,你确定排除抖动连发数据;3、建议你把遥控器上的按键发出的键值全部列出来,看规律,难不成都是9个字节?
解决方案五:
引用3楼yuankaiwsl的回复:
1、你收到的遥控器发送的数据00C0C0C0C0C0C0C0C0是9个字节=72位,而你整理的表中只有36位=4.5个字节,不是整字节,这里不对吧;2、你用收到的遥控器发送的数据发给设备,没有反应,说明这个数据不对,你确定排除抖动连发数据;3、建议你把遥控器上的按键发出的键值全部列出来,看规律,难不成都是9个字节?
上面没抄完,收到遥控器按键开机是00C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0关机是00C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
解决方案六:
1、你首先得确认红外协议是否正确;2、确认红外接收端(空调)接收数据后,有无特殊处理;3、最好有一个独立的可读的红外接收端,验证你发出的数据是否如协议一样。你现在的情况感觉就是在蒙点,你不知道你发送出去的是否正确,同样不知道空调收到的是否正确,这样是找不到问题的。
解决方案七:
1、开关机数据一样,应该是空调自己判断,收到此指令如果是关机状态就开机,如果是开机状态就关机。2、我怀疑数据有问题,发送一个开关机指令要几十个字节!
解决方案八:
引用5楼Snowwolf_119的回复:
1、你首先得确认红外协议是否正确;2、确认红外接收端(空调)接收数据后,有无特殊处理;3、最好有一个独立的可读的红外接收端,验证你发出的数据是否如协议一样。你现在的情况感觉就是在蒙点,你不知道你发送出去的是否正确,同样不知道空调收到的是否正确,这样是找不到问题的。
的确就是你说的这样。目前1,2都无法确认,可能只有考虑加个设备接收发出的数据来看看了;
解决方案九:
引用6楼yuankaiwsl的回复:
1、开关机数据一样,应该是空调自己判断,收到此指令如果是关机状态就开机,如果是开机状态就关机。2、我怀疑数据有问题,发送一个开关机指令要几十个字节!
看他的协议介绍上,每个操作都是把所有可操作的指令都一起发了的。对于这个起始码和连接码我不是很明白,起始码(S)+35位数据码+连接码(C)+32位数据码。各种编码的电平宽度:数据码由“0”“1”组成:0的电平宽度为:600us低电平+600us高电平,1的电平宽度为:600us低电平+1600us高电平起始码S电平宽度为:9000us低电平+4500us高电平连接码C电平宽度为:600us低电平+20000us高电平
解决方案十:
应该是你的IR220红外串口适配器驱动程序没装好或设置不对
解决方案十一:
1、波特率设置对了不;2、电平宽度应该不需要软件考虑吧,该是适配器去处理吧
解决方案十二:
你这个数据格式明显不对,自己检查下。