它是一种电磁波,可以实现数据的无线传输

它的波长范围为760nm ~ 1mm,不为人眼所见

紫外光波长为10-400nm

红外与蓝牙

红外:对准、直接、0-10米,单对单

蓝牙:10米左右,加强信号后最高可达100米,可以绕弯,可以不对准,可以不在同一间房间,链接最大数目可达7个,同时区分硬件

红外线系统的组成

红外线系统一般由红外发射装置和红外接收设备两大部分组成

红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成

红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成

红外遥控器发射

红外遥控器是将遥控信号(二进制脉冲码)调制在38KHz的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的



开发红外接收设备,一定要知道红外遥控器的编码方式和载波频率

红外线接收

大多都采用成品红外接收头。均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VOUT)



用时注意成品红外接收头的载波频率

数据格式

数据格式包括了引导码、用户码、数据码和数据码反码,编码总占32位

数据反码是数据码反相后的编码,编码时可用于对数据的纠错



第二段的用户码也可以在遥控应用电路中被设置成第一段用户码的反码

位定义

用户码或数据码中的每一个位可以是位‘1’ ,也可以是位‘0’

区分‘0’和‘1’是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式



时间间隔取一个中间值(高电平时间1秒)

举例

sbit IRIN = P3 ^ 2;

void IrInit()
{
IT0 = 1; //下降沿触发
EX0 = 1; //打开中断0允许
EA = 1; //打开总中断 IRIN = 1; //初始化端口
} void ReadIr() interrupt 0
{
u8 j, k;
u16 err;
Time = 0;
delay(700); //7ms
if(IRIN == 0) //确认是否真的接收到正确的信号
{
err = 1000; //1000 * 10us = 10ms, 超过说明接收到错误的信号
/*当两个条件都为真是循环,如果有一个条件为假的时候跳出循环,免得程序出错的时
侯,程序死在这里*/
while((IRIN == 0) && (err > 0)) //等待前面9ms的低电平过去
{
delay(1);
err--;
}
if(IRIN == 1) //如果正确等到9ms低电平
{
err = 500;
while((IRIN == 1) && (err > 0)) //等待4.5ms的起始高电平过去
{
delay(1);
err--;
} for(k = 0; k < 4; k++) //共有4组数据
{
for(j = 0; j < 8; j++) //接收一组数据
{
err = 60;
while((IRIN == 0) && (err > 0)) //等待信号前面的560us低电平过去
{
delay(1);
err--;
}
err=500;
while((IRIN == 1) && (err > 0)) //计算高电平的时间长度
{
delay(10); //0.1ms
Time++;
err--;
if(Time > 30)
{
return;
}
}
IrValue[k] >>= 1; //k表示第几组数据
if(Time >= 8) //如果高电平出现大于565us,那么是1
{
IrValue[k] |= 0x80;
}
Time = 0; //用完时间要重新赋值
}
}
} if(IrValue[2] != ~IrValue[3]) //用户码是否匹配
{
return;
}
}
}

使用逻辑分析仪分析遥控器协议



抓取的二进制值:0b00000000 – 0b11111111 – 0b00110000 – 0b11001111

因为红外接收是反相的,低位在前,高位在后。

所以解码完的数据应该是:0b00001100 = 0x0c

红外 NEC编码的更多相关文章

  1. MicroPython TPYBoard v102 无线红外遥控舵机(基于红外解/编码模块)

    转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 红外解码/编码模块介绍 模块上搭载了红外接收头.红外 ...

  2. 红外NEC协议

    注意: 用示波器在接收头抓的电平看起来和NEC协议刚好相反, 那是因为:HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平. 具体情况,具体分析. ...

  3. 红外解码编码学习----verilog

    在设计中运用红外遥控器可以很好的解决按键缺少的问题,还可以方便的控制产品. 红外发射部分: 红外发射管: 判断红外发射管的好坏 : 电路原理图: 接收部分: 传输的NEC协议: 本实验电路: veri ...

  4. 蓝牙BLE实用教程

    蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...

  5. 蓝牙BLE实用教程(转载)

    欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Ready 和 Smart 以及传统蓝牙之间是什么关 ...

  6. 38KHz,NEC红外模拟发送和接收程序

    /*************************************************************************************************/ ...

  7. 基于Arduino、STM32进行红外遥控信号接收

    catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...

  8. Android使用AudioTrack发送红外信号

    最近要做一个项目,利用手机的耳机口输出红外信号,从而把手机变成红外遥控器,信号处理的知识基本都还给老师了,刚开始真的挺头疼.找了不少资料研究了一下,总算有点心得,在这里做个备忘. 一.音频信号输出原理 ...

  9. 玩转X-CTR100 l STM32F4 l 红外遥控接收

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      X-CTR100控制器具有红外接收头,例程 ...

随机推荐

  1. 关于axios如何在请求头添加参数

    vm.$http.post(apiUrl.refundOrder, data,{ headers:{ 'lz-shopid':vm.orderRecords.shopId } }).then(res ...

  2. 2018.04.03 ABAP OLE操作整理

    OLE整理: 1.定义,分别对应EXCEL,workbook(工作簿),sheet(页),单元格 DATA: EXCEL_OBJ TYPE OLE2_OBJECT, BOOK_OBJ TYPE OLE ...

  3. 【python画图】

    1.热力图 import numpy as np import numpy.random import matplotlib.pyplot as plt # Generate some test da ...

  4. c语言ARP应用

    对于windows环境,winsock不能用来发ARP请求: 发表于: 2002-04-23 11:45:12 arp是请求硬件地址的.winsock层次太高啦... 用winsock中的sendto ...

  5. lnmp 命令 及其 TP5 部署遇到的一些问题

    1.添加站点域名命令: lnmp vhost add; 2.重置mysql密码: 第一种方法:用军哥的一键修改LNMP环境下MYSQL数据库密码脚本 一键脚本肯定是非常方便.具体执行以下命令: wge ...

  6. 局部内部类的final问题

    局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量就必须是final的(或者只赋值一次) 从Java8开始,只要局部变量事实不变那么final关键字可以省略 为什么需要保证变量为final, ...

  7. CentOS7下使用Sonatype Nexus3搭建Docker私有仓库

    相关资料: Sonatype Nexus3官方网站:https://www.sonatype.com/download-oss-sonatype Sonatype Nexus3 Docker Hub地 ...

  8. 坦克大战--Java类型

    写在前面       Java编译器下载教程(真的良心):https://blog.csdn.net/Haidaiya/article/details/81230636 本项目为本人独自制作,请各位尊 ...

  9. tensorflow lite 之生成 tflite 模型文件

    下载最新的的tensorflow源码. 1.配置 tflite 文件转换所需环境 安装 bazel 编译工具 https://docs.bazel.build/versions/master/inst ...

  10. 第一章、web应用安全概论--web应用系统介绍--TCP/IP协议

    TCP/IP协议源于1969年,是国际互联网Internet采用的协议标准TCP/IP协议是一组通信协议的代名词,是由一系列协议组成的协议族,本身是指两个协议集:    TCP--传输控制协议    ...