红外一般有NEC和RC5两种编码方式, 我实现了红外接收和NEC的解码, 使用1838接收头。
没有38kHz载波发生电路, 于是用了单片机来手工模拟(延时按照40kHz设置, 加上其他操作的耗时, 大概是37.7kHz, 占空比1/2, 其实据说1/4~1/3可以使得距离变远), 然后把信号调制到上面。
另外, 昨天写的解码代码有某个小问题: 红外是LSB在前, 我写成了MSB在前(因为315MHz和I²C都是MSB在前啊)。
使用ir_read测试程序读出遥控器的数据, 然后用ir_send测试程序发射, 控制某品牌空气净化器成功。
You are very creative.