红外 NEC编码
它是一种电磁波,可以实现数据的无线传输
它的波长范围为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编码的更多相关文章
- MicroPython TPYBoard v102 无线红外遥控舵机(基于红外解/编码模块)
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 红外解码/编码模块介绍 模块上搭载了红外接收头.红外 ...
- 红外NEC协议
注意: 用示波器在接收头抓的电平看起来和NEC协议刚好相反, 那是因为:HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平. 具体情况,具体分析. ...
- 红外解码编码学习----verilog
在设计中运用红外遥控器可以很好的解决按键缺少的问题,还可以方便的控制产品. 红外发射部分: 红外发射管: 判断红外发射管的好坏 : 电路原理图: 接收部分: 传输的NEC协议: 本实验电路: veri ...
- 蓝牙BLE实用教程
蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...
- 蓝牙BLE实用教程(转载)
欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Ready 和 Smart 以及传统蓝牙之间是什么关 ...
- 38KHz,NEC红外模拟发送和接收程序
/*************************************************************************************************/ ...
- 基于Arduino、STM32进行红外遥控信号接收
catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...
- Android使用AudioTrack发送红外信号
最近要做一个项目,利用手机的耳机口输出红外信号,从而把手机变成红外遥控器,信号处理的知识基本都还给老师了,刚开始真的挺头疼.找了不少资料研究了一下,总算有点心得,在这里做个备忘. 一.音频信号输出原理 ...
- 玩转X-CTR100 l STM32F4 l 红外遥控接收
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] X-CTR100控制器具有红外接收头,例程 ...
随机推荐
- 连接池中的maxIdle,MaxActive,maxWait参数
连接池中的maxIdle,MaxActive,maxWait参数 线程池 name:表示你的连接池的名称也就是你要访问连接池的地址 auth:是连接池管理权属性,Container表示容器管理 typ ...
- Google Directions API 中路线编码解析
public List<Location> GetGeoPoints(string encoded) { List<Location> poly = new List<L ...
- 关于POW机制及POW难度调节机制
工作量证明,英文为proof of work,通过或与计算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其他节点验证后一起存储.简单理解就是一份证明,用来确认你做过一定量 ...
- iOS知识点总结
1.监测网络状态: - (void)checkNetwork { __block NSString *tips; _reachiabilityManager = [AFNetworkReachabil ...
- linux LVM 系统盘扩容
1.fdisk /dev/sda2.输入n,开始创建新分区3.输入p4.输入w5.mkfs.ext4 /dev/sda36.pvcreate /dev/sda37.vgdisplay 查看VG nam ...
- imregionalmax imregionalmin imextendedmax imextendedmin imhmax imhmin 函数的详解 matlab中函数
BW = imregionalmax(I): 该函数获得灰度图像 I 的局部极大值,返回值BW为和原图像大小相同的二值图像,BW中元素1对应极大值,其他元素为0 BW = imregionalmax( ...
- Impacket网络协议工具包介绍
转载自FreeBuf.COM Impacket是一个Python类库,用于对SMB1-3或IPv4 / IPv6 上的TCP.UDP.ICMP.IGMP,ARP,IPv4,IPv6,SMB,MSRPC ...
- 数据结构——关于任一二叉树n0=n2+1的证明
对于任一二叉树,若度为2的结点有n2个,则叶子结点数必为n2+1 证明: 假设该二叉树总共有n个结点(n=n0+n1+n2),则该二叉树总共会有n-1条边,度为2的结点会延伸出两条边, 同理,度为1的 ...
- IO-file 02 文件的状态
package com.bwie.io; import java.io.File; /** * 文件状态 * 1.不存在 exists * 2.存在 * 文件:isFile * ...
- [转帖]Kafka 原理和实战
Kafka 原理和实战 https://segmentfault.com/a/1190000020120043 两个小时读完... 实在是看不完... 1.2k 次阅读 · 读完需要 101 分钟 ...