基于stm32f103红外遥控美的空调

一、红外nec协议

红外遥控的编码目前广泛使用的是:NEC Protocol的PWM(脉冲宽度调制)和Philips RC-5 Protocol的PPM(脉冲位置调制),而美的空调大多采用nec协议的R0d电控功能。

NEC协议的特征:
1、8位地址和8位指令长度;
2、地址和命令两次传输;(确保可靠性)
3、PWM脉冲宽度调制,以发射红外载波的占空比代表“0”和“1”;
4、载波频率为38KHz
5、推荐载波占空比为1/3至1/4
以上资料转载自: nec资料.
6、码位定义如下
基于stm32f103红外遥控美的空调_第1张图片

综上所述也就是说:
先产生38khz、1/3占空比的载波如下:
基于stm32f103红外遥控美的空调_第2张图片
加上
基于stm32f103红外遥控美的空调_第3张图片
等于
基于stm32f103红外遥控美的空调_第4张图片
这里是低电平时发送38khz载波,高电平不发送(低电平)。

二、R05d电控

美的采用的时R05d电控协议,与普通的nec协议有些不同,所以不能用网上买的nec红外模块控制,也不能解码。
1、编码规范如下(一般情况):
L,A,A’,B,B’,C,C’, S, L,A,A’,B,B’,C,C’
第一帧与第二帧相同(L,A,A’,B,B’,C,C与L,A,A’,B,B’,C,C’)

L为引导码
S为分隔码
基于stm32f103红外遥控美的空调_第5张图片
A为认别码(A=10110010,预留方案时A=10110111)
A’为A的反码(01001101)

B’为B的反码
C’为C的反码
B、C码都是8个位的码,里面储存着风速、模式、温度、关机(关机命令固定 B=0111 1011 , C=1110 0000(无定时信息情况))命令,例如B含义如下:

风速 B7 B6 B5(高三位)
自 动 1 0 1
低 风 1 0 0
中 风 0 1 0
高风 0 0 1
固定风 0 0 0

B的高三位代表风速信息,其他位是定时用的,这里暂且不讲,完整的功能表在文末贴出

2、 实例
拿关机码来说按照编码规范 “ L,A,A’,B,B’,C,C’, S, L,A,A’,B,B’,C,C’ ”
其中A、B、C均是固定值
A:10110010,B=0111 1011,C=1110 0000

L10110010  01001101  01110100  10000100 11100000  00011111 S L10110010  01001101  01110100  10000100 11100000  00011111 

按照上述规则,则发送的信号是这样的
基于stm32f103红外遥控美的空调_第6张图片
红条是很密集38khz信号。

三、编程

首先要生成38khz载波,我用的是使用定时器生成pwm波。
至于怎么生成最后的信号,我看过一些文章用的是外部发射电路,而我是直接用单片机延迟和控制pwm波占空比达到目的。
例如要发’1‘信号:
基于stm32f103红外遥控美的空调_第7张图片
程序如下:

		 TIM_SetCompare2(TIM3,1895/3); (占空比1/3)
	     delay_us(540);                        (540us高频)
	    TIM_SetCompare2(TIM3,0);   (占空比0,就是低电平)
	     delay_us(1620);                      (1.62低电平)

这样就可以将红外二极管接在io口上,达到发射信号的目的。

四、资源

R05d电控功能说明书
stm32红外遥控美的空调

你可能感兴趣的:(智能家居,红外遥控)