技术标签: 红外遥控 嵌入式学习 【单片机学习】 单片机学习
2.2.1.红外遥控背景知识
本节讲述人机界面的概念以及红外遥控相关的背景知识,目的是拓宽大家的视野和知识面,为进一步深入学习指点方向。
2.2.2.原理图电路分析
本节分析红外接收部分的原理图和工作原理,同时拆解了红外遥控器并讲解其工作原理。
2.2.3.NEC协议讲解
本节主要讲解NEC协议,重点是协议的理解和时序图的解析方法,理解了协议的时序图就可以接着去分析解码代码了。
2.2.4.官方示例代码解析1
本节开始讲解官方示例代码,主要是通过软仿真方式确定精确延时的方法,以及从头到尾读一下官方示例代码。
2.2.5.红外接收程序的移植和调试1
本节开始做程序移植和调试,主要是时间相关的部分需要注意。
2.2.6.红外接收程序的移植和调试2
本节对移植中的问题进行总结,并且提出现有程序的漏洞和修复方法,在项目中会实际去做。
2.2.1.1、人机界面
(1)当面操作的:按键、旋钮 / 触摸按键、触摸屏
(2)遥控操作的:红外遥控、433M-2.4G无线通信、蓝牙-WIFI-Zigbee-4G-LoRa等无线网络
2.2.1.2、红外遥控相关知识
(1)红外线基本知识
(2)红外发射和接收2部分
空调、电视遥控等等,红外遥控器和红外发光二极管如下图所示:
(3)38KHz载波、数字信号和调制
(4)红外遥控器通信协议
之前我们接触的协议有哪些?有什么特点?红外遥控通信协议和他们有什么不同?
红外遥控通信协议很多很多!比如NEC公司的NEC协议、Philips的RC5协议、Sony的SIRC协议等等,本节课程学习NEC协议!后面会详细介绍!
2.2.2.1、原理图和接线
(1)接收端原理图
主要是三个引脚:即电源正( VDD)、电源负(GND)和数据输出(VOUT)
VOUT就是把编码后的二进制脉冲信号通过引脚输出到微处理器
(2)外观图
(3)IR接收模块原理。
(4)接线
2.2.2.2、红外遥控器全解析
(1)功能演示
(2)拆解
(3)芯片Wire-Bonding工艺
2.2.2.3、红外遥控系统工作过程综述
(1)发射端—红外遥控器,不需要操作,里面已经做好处理了,按下之后,发出来的是红外信号
(2)传播:通过空气传播
(3)接收端:需要用协议解调,生成二进制信号,这里就需要学习NEC协议,看下一小节!
2.2.3.1、红外遥控协议原理
(1)红外遥控协议的作用:从二进制层面上定义了如何传输一帧数据
(2)解析协议的关键点:把握好时间—delay函数
(3)不同协议的差异:定义‘1’和‘0’的调制方式、帧的格式
2.2.3.2、NEC协议的关键点
(1)学会看图:载波和信号
(2)关键点:1和0分别是如何表示的
– 逻辑1为2.25ms,高电平0.56ms,低电平1.69ms
– 逻辑0为1.12ms,高电平0.56ms,低电平0.56ms
(3)数据是一帧一帧的整帧传递的
NEC协议中,
以上是一个指令码的序列,但当长时间按住遥控按钮,在这这种情况下,使用NEC协议的红外遥控器将会发射一个以110ms为周期的重复码。也就是说,每一次用户按下遥控器按钮,遥控器在发送一次指令码后,就不会再发送指令码了,而是发送一段重复码。如下图:
重复码由9ms高电平和2.25ms的低电平以及560us的高电平组成,如下图所示:
(4)这是个串行协议
(5)写代码时时序中的时间仍然是关键点
(1)如何得到一段代码的精确延时时间?
(2)利用keil的软仿真确定精确延时
遥控器上面的键值:
电源 | 0x45 | Mode | 0x46 | 静音 | 0x47 |
快进 | 0x44 | 上一曲 | 0x40 | 下一曲 | 0x43 |
EQ |
0x07 | VOL- | 0x15 | VOL+ | 0x09 |
0 | 0x16 | RPT | 0x19 | U/SD | 0x0D |
1 | 0x0C | 2 | 0x18 | 3 | 0x5E |
4 | 0x08 | 5 | 0x1C | 6 | 0x5A |
7 | 0x42 | 8 | 0x52 | 9 | 0x4A |
(1)延时时间配合
(2)屏蔽无效数据的正确姿势
(3)程序缺陷和改良方案
ABCDEF怎么显示出来
本节课程序下载链接:红外遥控
本节课结束!
Peewee是一个简单小巧的Python ORM,它非常容易学习,并且使用起来很直观。如果想快速入门,请参考官方的Quckstart。基本知识在官方的Quckstart中,Peewee中Model类、fields和model 实例与数据库的映射关系如下:也就是说,一个Model类代表一个数据库的表,一个Field字段代表数据库中的一个字段,而一个model类实例化对象则代...
jax_ws 通常,利用图表提供数据的可视表示很有用。 PrimeFaces提供制图解决方案,使您可以轻松地将数据的可视表示形式添加到Web和移动应用程序中。 如果我们将PrimeFaces图表组件的使用与RESTful Web服务数据结合在一起,我们可以创建自定义图表,以适合台式机和移动设备。 在本文中,我将更新Java EE 7动手练习MoviePlex应用程序,以提供一个仪表板,我们可以...
目录 1.类文件结构 1.1 Class类文件结构 1.2 魔数与Class文件的版本 1.3 常量池 1.4 访问标志 1.5 类索引、父索引与接口索引集合 1.6 字段表集合 1.7 方法集合 1.8 属性表集 ...
Hack The Box :: Starting Point - Tier2 - Vaccine
目录Altium Designer(AD18)常用操作和快捷方式简单操作分层设计原理图库PCB库集成库PCB绘制覆铜 Altium Designer(AD18)常用操作和快捷方式 简单操作 方格与格点的切换:View-Grids-ToggleVisible Grid Kind 原点:Edit-Origin-Set 边界的定义:Keep Out Layer-Utility Tools-Place Line 按TAB可定义线宽
文章首发及后续更新:https://mwhls.top/3680.html新的更新内容请到mwhls.top查看。无图/无目录/格式错误/更多相关请到上方的文章首发页面查看。stackoverflow热门问题目录如有翻译问题欢迎评论指出,谢谢。 目录 1. Pytorch tensor 转为 numpy array 2. Pytorch tensor to numpy array Pytorch tensor 转为 numpy arrayDukeLover asked:对于一个大小为 torch
iOS中有三个定位服务组件: Wifi定位,通过查询一个Wifi路由器的地理位置的信息。比较省电,iPod touch和iPad也可以采用。 蜂窝基站定位,通过移动运用商基站定位。也适合有3G版本的iPod touch和iPad。 GPS卫星定位,通过3-4颗GPS定位位置定位,最为准确,但是耗电量大,不能遮挡。Core LocationCore
经常有人贬低ORM(Object Relational Mapping),说性能不好,麻烦。这种人要么是互联网企业的大牛,要么是根本没维护过大型代码。做为接地气的程序 员,多少还是要接触到Hibernate, ActiveRecords这样各种ORM框架的。不然你就要面对成千上万行的SQL代码无从下手。peewee是以简单为卖点的ORM, 我就喜欢这样的框架,类似的还有flask, sinatra...
下面写了一些经常用的e.target //e.target是指向我们点击的对象,那个触发了事件,点那个li你们a.target就指向li //this是指向绑定的对象,绑定了ul那么this指向ul var ul=document.querySelector("ul"); ul.addEventListener("click",function(e){ console.log(e.target); co..
由于Linux系统提供了复杂的内存管理功能,所以内存的概念在Linux系统中的相对复杂,有常规的内存、高端的内存、虚拟地址、逻辑地址、总线地址、物理地址、I/O内存、设备内存、预留内存等概念11.1 CPU与内存、I/O11.1.1 内存空间与I/O空间I/O空间:在X86处理器中存在着I/O空间的概念,I/O空间是相对于内存空间而言的它通过特定的指令in、out来访问指令格式:IN 累加器
导语:去年双11支付宝核心交易流量完全不依赖Oracle数据库,100%由阿里巴巴自主研发的数据库产品OceanBase承载的消息,不仅让OceanBase名声大噪,也让项目负责人阳振坤被推到了前台。不少人惊呼国产数据库发...
java 异步 同步应用概念性的东西总是忘记,记下来,有时间可以回味得看看java 异步同步应用所谓异步输入输出机制,是指在进行输入输出处理时,不必等到输入输出处理完毕才返回。所以异步的同义语是非阻塞(None Blocking)。网上有很多网友用很通俗的比喻把同步和异步讲解的很透彻转过来举个例子:普通B/S模式(同步)AJAX技术(异步)同步:提交...