NEC 红外通信 - vs1838B
不积跬步无以至千里,不积小流无以成江海。
代码下载可以到Github上<传送门>。
HS0038红外接收头,内部集成了监测,放大,滤波,解调等一系列电路处理输出基带信号。
其实HS0038 和vs1838B 没什么区别,只是相比0038的性能更好!
原始信号就是我们要发送的一个数据“0”位或者一位数据“1”位,而所谓 38K 载波就是频率为 38K 的方波信号,调制后信号就是最终我们发射出去的波形。我们使用原始信号来控制 38K 载波,当信号是数据“0”的时候,38K 载波毫无保留的全部发送出去,当信号是数据“1”的时候,不发送任何载波信号。
要想让 HS0038B 识别到 38K的红外信号,那么这个 38K 的载波必须要大于 10 个周期,这就限定了红外通信的基带信号的比特率必须不能高于 3800,那如果把串口输出的信号直接用 38K 调制的话,波特率也就不能高于 3800。
但是更常用的红外通信协议——NEC 协议。
NEC 协议的数据格式包括了引导码、用户码、用户码(或者用户码反码)、按键键码和键码反码,最后一个停止位。
引导码:9ms 的载波+4.5ms 的空闲。
比特值“0”:560us 的载波+560us 的空闲。
比特值“1”:560us 的载波+1.68ms 的空闲。
HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平。
程序的逻辑不难,难是难在了编码!
多练!
多练!
多练!