用stm32F407实现红外信号的发射与接收(1)
2016-09-11 23:39
218 查看
首先讲讲红外发射。要实现红外发射,必须对信号进行调制。调制的原理如下:原本的二进制信号采用NEC编码规则,560us的低电平加上560us的高电平表示逻辑0,560us的低电平加上1680us的高电平表示逻辑1,发送时低位在前高位在后。
NEC指令的数据格式为:引导码、地址码、地址反码、数据、数据反码。引导码是9ms的低电平加上4.5ms的高电平。
当初开始做调制的时候,有人说一路信号,一路载波通过一个与门实现调制,这有点尴尬,因为我手边没有与门,专门去买有点费时间。上了OpenEDV的论坛,原子哥说可以控制PWM的开关来实现信号的调制,当时不是很理解。后来看了红外接收的原理就知道怎么通过控制PWM的开关调制信号了。
注意红外接收头接收的原理是当接收到38khz的脉冲的时候信号输出端输出低电平,而没有收到脉冲的时候为高电平。那么我在想发低电平的时候打开定时器,产生38khz的载波,通过红外发射管发射出去,想发高电平关掉定时器即可,这样就实现调制啦,是不是原理很简单?
NEC指令的数据格式为:引导码、地址码、地址反码、数据、数据反码。引导码是9ms的低电平加上4.5ms的高电平。
当初开始做调制的时候,有人说一路信号,一路载波通过一个与门实现调制,这有点尴尬,因为我手边没有与门,专门去买有点费时间。上了OpenEDV的论坛,原子哥说可以控制PWM的开关来实现信号的调制,当时不是很理解。后来看了红外接收的原理就知道怎么通过控制PWM的开关调制信号了。
注意红外接收头接收的原理是当接收到38khz的脉冲的时候信号输出端输出低电平,而没有收到脉冲的时候为高电平。那么我在想发低电平的时候打开定时器,产生38khz的载波,通过红外发射管发射出去,想发高电平关掉定时器即可,这样就实现调制啦,是不是原理很简单?
相关文章推荐
- ASP编码必备的8条原则
- XML指南——XML编码
- C#中字符串编码处理
- ExtJS中文乱码之GBK格式编码解决方案及代码
- 程序员趣味读物 谈谈Unicode编码
- 文本文件编码方式区别
- C语言安全编码之数值中的sizeof操作符
- C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)
- VC中BASE64编码和解码使用详解
- 计算机中的字符串编码、乱码、BOM等问题详解
- Base64编码解码原理及C#编程实例
- C#编码好习惯小结
- javascript编码的几个方法详细介绍
- UTF8编码开发中页面空白问题的解决方法
- php生成固定长度纯数字编码的方法
- 重新restore了mysql到另一台机器上后mysql 编码问题报错
- c# Base64编码和图片的互相转换代码
- java自动根据文件内容的编码来读取避免乱码
- PHP写入WRITE编码为UTF8的文件的实现代码
- 设置php页面编码的两种方法示例介绍