首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简单红外线解码

我去搜索了一个回来了 配置一下 开启串口 然后使能 把12的引脚配置成高电平 接着开始对收到信息开始解码 对比接收的值是不是第一个的键值 是的话就驱动引脚输出电压 然后打印 以下逻辑相同 这个是红外线的库...发送IR远程数据包,而IRrecv接收解码IR消息。...38KHz红外接收器模块的输入。...但是,Linux红外远程控制项目(LIRC)具有用于描述许多遥控器代码的开放格式。请注意,即使您找不到确切设备型号的代码,特定的制造商通常也会对多个产品使用相同的代码。...接收问题 如果接收不起作用,请首先确保Arduino至少正在接收原始代码。当接收红外线时,Arduino引脚13上的LED指示灯将闪烁。如果没有,则可能是硬件问题。

2.2K51

单片机红外接收红外发射

红外接收1.1 说明1.2 NEC协议1.3 关于红外接收的波形1.4 解码1.4 红外对射思考2....HS0038B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平,我们用逻辑分析仪抓出来一个红外按键通过HS0038B 解码后的图形来了解一下。...1.3 关于红外接收的波形 通过逻辑分析仪对红外接收管上的数据采集,基本上可以对数据的采集进行一个比较准确的时序图。 关于红外接收管的电路连接其实很简单,就是接电源和数据引脚即可 ?...通过对数据的采集,我们可以对其进行解码。 1.4 解码 一般来说,解码放在中断中,这里的中断一般是GPIO的上升沿或者下降沿中断。对于一般的程序而言,这样的设计是没有问题的。...2.3 程序设计 通过对红外发射管的研究发现,当红外发射管发出38Khz的波形时,接收管上输出的是低电平,其他情况下,红外接收管上接收的电平为高电平,所以要让红外接收管上的电平为特定的波形,需要采用26us

3.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

Linux驱动开发-编写NEC红外线协议解码驱动

红外线知识点介绍 在光谱中波长自760nm至400um的电磁波称为红外线,它是一种不可见光。...当前文章就介绍如何在Linux下通过红外线接收模块,编写一个NEC协议的红外线解码驱动,解析遥控器传输过来的各种控制指令,完成对应的动作响应;驱动里用到了外部中断接收数据,通过定时器计算间隔时间完成解码...接收的数据是0: 560us低电平+560us高电平 接收的数据是1: 560us低电平+1680us高电平 2....下面是红外线接收模块原理图: 通过杜邦线接在开发板的中断输入脚上:(GPX1_0接口上,第9个排针。) 驱动安装后,解码的效果: 3....#include #include #include #include <linux/gpio.h

1.1K30

红外遥控接收发射原理及ESP8266实现

红外遥控一般有发射和接收两部分组成,发射元件为红外发射管,接收一般采用一体化红外接收头,但发射载波频率与接收头固定频率需一致才能正确接收。 1.gif 一、发射 1. ...对于红外发射,就是按照协议规定高电平时间内,在红外输出口输出固定频率载波;低电平则直接输出低。红外接收头接到载波时输出高电平,没有载波时输出低电平,完成数据解码。...8.png 二、接收 红外接收常采用一体化红外接收头,集红外接收、放大、滤波、比较器输出等功能,并输出MCU可识别的TTL信号的。...红外接收应用电路图: 11.png 三、ESP8266红外发送与接收 ESP8266定义了1个IR红外遥控接口,IR红外遥控接口由软件实现,接口定义如下: 12.png 1. ...接收 红外接收功能通过GPIO的边沿中断实现,读取系统时间,将2次时间相减可以得到波形持续时间,然后通过软件逻辑实现红外协议处理。

3.2K20

46.Linux-分析rc红外遥控平台驱动框架,修改内核的NEC解码函数BUG(1)

内核版本          :  Linux 3.10.14 rc红外接收类型:  GPIO 类型的NEC红外编码 ---- 本章内容 1) rc体系结构分析 2) 分析红外platform_driver...平台驱动框架 3) 分析内核自带的NEC红外解码过程 4) 修改内核自带的NEC红外解码BUG,实现按键重复按下 下章内容 1) 自己创建一个红外platform_device平台设备 2) 试验 在分析之前...,先来复习下NEC红外编码的发送波形(在后面分析NEC解码会用到) 基本数据格式如下: ?...它们用途在于: 1) 当内核解码后,通过我们红外平台设备的dev.platform_data里map_name成员去匹配这些文件....其中红外平台设备platform_data对应的结构体为: struct gpio_ir_recv_platform_data { int gpio_nr; //红外接收管对应的管脚

2.4K31

STM32F407实现NEC协议红外线解码

发送方通过以38kHz频率调制红外线光信号,接收方则通过解调来接收数据。 (2)数据编码:NEC红外线协议使用脉冲宽度编码(Pulse Width Encoding)来表示二进制数据。...(5)接收端工作原理:接收端使用红外线接收模块接收红外线信号,并通过解调将其转换为数字数据。接收端在接收到引导码后,开始解析自定义码和数据码,并进行校验。...); USART1_Init(84,115200); KEY_EXTI_Init(); DS18B20_Init(); InfraredRxInit(); //红外线解码初始化...LED0=0; DelayMs(100); LED0=1; } } } Infread.c文件示例 #include "infrared.h" /* 函数功能:红外线解码初始化...data|=0x80; //1000 0000 } } InfraredRxBuff[i]=data; } InfraredRxBuff[4]=1; //标志红外线解码成功

66021

4.4 51单片机-NEC红外线遥控器解码

4.4 NEC红外线遥控器解码 4.4.1 接收头原理图介绍 图4-4-1 实验板上的红外线接收头是接在单片机的P3.2 IO口上,要使用红外线接收功能,需要将红外线接收头的跳线帽接上。...红外线遥控器向红外线接收头按下一个按键之后,红外线接收头先收到的是9ms的高电平脉冲,接着是4.5ms的低电平,之后就是接收8bit的用户码、8bit的用户码的反码,8bit 的按键码,8bit 的按键码的反码...下面代码采用定时器+外部中断的方式解码红外线数据,外部中断采用外部中断0,接在P3.2口上,配置外部中断0的触发方式为下降沿触发。...解码思路: 红外线接收头没有收到38KHZ方波时,默认输出高电平,当收到38KHZ方波时输出低电平,这时就触发了下降沿,接着就进入到外部中断0 的中断服务函数;解码的过程就在中断服务函数里实现,高低电平的持续时间通过定时器...,收到一帧正确数据后置1 u8 Infrared_RX_Buff[4];//红外代码接收缓冲区 sbit Infrared_GPIO=P3^2;//红外接收引脚--外部中断0 /* 函数功能: 开始红外线解码之前的相关初始化

1.5K20

ESP8266_23基于硬件定时器的红外遥控器解码

所以,这一节,咱们研究下用ESP8266,连接一体式红外接收头,然后做红外解码的用法。 首先说需要准备什么:一个红外遥控器,一个一体式红外接收头(这里我用的是VS1838,你可以用你擅长的)就够了。...老夫很是郁闷,于是一气之下,把51单片机里常用的红外解码程序移植了过来。...选择GPIO5做为红外接收管脚,设置为输入、下降沿中断。设置中断相应的处理函数,跟51里面一样,就是irtime的一些处理。 2、硬件定时器初始化。...单片机做红外解码的时候,用的比较多的一种方法就是设置一个定时器,让它每隔0.278ms中断一次,依次做为检测引导码和0、1信号的时间基准。...所以通过软件定时器,每隔0.5秒,判断一下红外数据的接收是否完成,如果完成了,那就进行相应的处理。 很简单,基本没有涉及到新的知识。 程序修改完成,保存、清理、编译、下载一条龙,然后重新上电。

1.2K20

Linux开发】串口接收不定长数据,接收中断+超时判断方案

前言 Linux 开发时,经常会遇到串口通信来完成两个设备之间的交互。...接收方在接收到开始序列时开始收集数据,直到接收到结束序列为止。这种方法虽然简单明了,但需要接收方对每个字符进行判断,这会消耗 CPU 资源,增加能耗。...接收中断与超时判断: 当串口接收到数据时,会触发接收中断。...一旦接收到空闲中断,我们就可以认为已经接收到了一帧完整的数据。 接收中断 我们先理解下接收中断,当接收接收到数据时,就会触发接收中断。 举例:某中断寄存器的如下图所示。...tls_uart_write(TLS_UART_1, rx_fifo_buf, rx_len); // 发送 } } } } 小结 STM 32 串口通信功能在linux

30310

实现低成本接收解码韩国GK-2A气象卫星信号

上学的时候,玩过一段时间的电视卫星(中六、亚太五),介于气象卫星和电视卫星存在一些相通性,便在近期开始尝试接收解码气象卫星信号。 国家级卫星地面站往往占地十几公顷,投入数千万进行建设、安装、调试。...我们可以通过现有的SDR 硬件加上DIY 制作特定的天线,便可以花费几百上千块钱实现接收解码气象卫星的信号。 ? 老挝万象卫星地面站 ?...0x01 硬件: 前期相关资料、参数的收集整理基本上都可以通过上面的方法来完成,后面我们则考虑怎么接收解码卫星的信号。 接收解码这一步必不可少的是天线、SDR 硬件、SDR 软件。...后面改用 Linux 进行解码。...通过Python脚本可对图像红外增强成像: ? 当解码出足够多图像文件,通过合成,可将图片转成GIF动图: 网盘: https://mega.nz/#F!UMEV1IjQ!

7K42

图解Linux网络包接收过程

而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。 我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。...对于UDP包来说,会被放到用户socket的接收队列中。 我们从上面这张图中已经从整体上把握到了Linux对数据包的处理过程。但是要想了解更多网络模块工作的细节,我们还得往下看。...二 Linux启动 Linux驱动,内核协议栈等等模块在具备接收网卡数据包之前,要做很多的准备工作才行。...上面我们说完了整个Linux内核对数据包的接收和处理过程,最后把数据包放到socket的接收队列中了。那么我们再回头看用户进程调用recvfrom后是发生了什么。...如果接收队列没有数据,进程就进入睡眠状态被操作系统挂起。这块相对比较简单,剩下大部分的戏份都是由Linux内核其它模块来表演了。 首先在开始收包之前,Linux要做许多的准备工作: 1.

4.6K73

STM32入门开发: NEC红外线协议解码(超低成本无线传输方案)

这是使用逻辑分析采集红外线接收头输出的信号: 这是采集红外线遥控器上的LED灯输出电平时序图,刚好和接收端相反: 单片机编写解码程序的时候,常见的方式就是采用外部中断+定时器的方式进行解析,中断可以设置为低电平触发...,因为接收头没有感应到红外光默认是输出高电平,如果收到NEC引导码,就会输出低电平,进入到中断服务函数,完成解码解码过程中开启定时器记录每一段的高电平、低电平的持续时间,按照NEC协议进行判断,完成最终解码...上,配置STM32的PB9为外部中断模式,下降沿电平触发;如果收到红外线信号就进入到中断服务函数里解码,如果解码过程中发现数据不符合要求就终止解码,如果数据全部符合要求就按照协议接收,直到解码完成,设置标志位...3.1 红外线解码.c #include "nec_Infrared.h" u8 InfraredRecvData[4]; //存放红外线解码接收的数据 u8 InfraredRecvState=0;...//0表示未接收到数据,1表示接收到数据 /* 函数功能: 红外线解码初始化(接收) */ void Infrared_RecvInit(void) { Infrared_Time6_Init

1.6K20

和12岁小同志搞创客开发:手撕代码,做一款遥控灯

在开始之前,先来个预热实验,通过串口来了解下如何使用红外接收管和遥控器。...在串口中,正确接收的话,应该收到以FD开头的六位数。如果遥控器没有对准红外接收管的话,可能会接收到错误的代码。如下图所示: 预热完之后,我们言归正传,开始制作遥控灯。...//串口波特率设为9600 irrecv.enableIRIn(); //启动红外解码 pinMode(ledPin,OUTPUT); // 设置LED为输出状态...} void loop() { //是否接收解码数据,把接收到的数据存储在变量results中 if (irrecv.decode(&results)) { //接收到的数据以...setup()函数中,对使用串口,启动红外解码,数字引脚模式进行设置。 到了主函数loop(),一开始还是先判断是否接收红外码,并把接收到的数据存储在变量results中。

25950

linux抓取snmp trap告警命令,linux snmptrap的发送与接收

linux snmptrap的发送与接收 由于需要管理服务器的一些参数,比如CPU使用率,IOwait之类的指标,管理方通过snmpwalk进行五分钟一次对受管服务器的轮询。.../$file”); while() { print HANDOUT “$_”; } 然后输入命令: Linux代码 snmptrapd -c /etc/snmp/snmptrapd.conf 将此配置文件设置为默认配置文件...,并启动snmptrapd进程: Linux代码 # snmptrapd -d -f -Lo 在受管方,使用命令: Linux代码 snmptrap -v 2c -c public 10.0.0.214...:162 “” .1.3.6.1.4.1.2021.251.1 sysLocation.0 s “this is test” 而后在管理方会接收到如下信息: Linux代码 Received 98 bytes....0 = OID: UCD-SNMP-MIB::ucdStart SNMPv2-MIB::sysLocation.0 = STRING: this is test 至此,最简单的snmptrap的发送与接收就完成了

3.3K20

基于单片机的串行通信发射机设计

2.3 红外发射管和接收头 选择具有较高发射功率和较长发射距离的红外发射管,并配合红外接收头进行数据传输。当红外接收头检测到红外光时,输出低电平;没有检测到红外光时,输出高电平。...【2】接收原理: 接收端通过红外接收头实现对发送端发送的红外控制码的接收解码接收原理包括以下步骤: 红外信号接收红外接收接收红外光,并将接收到的光信号转换为电流信号。...弱信号放大:对接收到的电流信号进行放大,以便进行后续处理。 数据解码:根据约定的帧格式和编码方式,将接收到的比特流解码为原始数据。 校验校准:对接收到的数据进行校验和校准,确保数据的准确性。...: #include // 定义红外接收头IO口 #define IR_RECV P2 // 接收一帧数据 unsigned char receiveFrame() { unsigned...// 处理接收到的数据 } } 四、代码实现 下面是基于STC89C52单片机的串行通信发射机和接收机的整体代码,其中包括了4x4矩阵键盘的读取和红外数据传输的功能: 发射机代码: #include

17820
领券