找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2920|回复: 0
打印 上一主题 下一主题
收起左侧

[更好用的单片机]Stduino学习(三十一)红外接收模块

[复制链接]
跳转到指定楼层
楼主
本帖最后由 Stduino 于 2020-8-19 12:16 编辑

说明:
红外遥控是一种无线,非接触控制技术,具有抗干扰能力强,信息传输可靠,可以降低,成本低,易于实现等显着优点,被众多电子设备采用。
红外接收头的工作原理为:接收内置管将红外发射管发射出来的光信号转换为微弱的电 信号,此信号经由 IC内部放大器进行放大,然后通过自动增益控制,带通滤波,解调,波形整形后还原为遥控器发射出的原始编码,通过接收头的信号输出脚输出到电器上的编码识别电路。

HS0038 是经常常用到的红外接收电子元件,几乎可以接收市面所有红外遥控器的信号,因此我们采用它作为本实验的接收装置。
红外接收发射需要数据遵守一定的规则,常见的有 NEC 协议,飞利浦RC5 协议,索尼SIRC 协议,ITT JVC等。以NEC 协议为例,我们可以大致了解无线通信协议的规则。
首先, NEC 协议规定,逻辑1 和逻辑0 有严格的时间与电平对应关系,如下图:逻辑1 560 μs高电平,1690 μs低电平;逻辑0 560 μs高电平,560 μs小号低电平。

实际上,一次传输的内容包括起始位(引导码), 8 位地址和8 位命令,其中为了保证数据的有效性,有效数据是这样构成的:地址+ 地址反码+ 命令+ 命令反码。反码即把0 置为1 ,把1 置为0 ,从而两次检验保证了数据的可靠性。因此,一次传输内容的构成如下:

其中起始位为 9ms高电平4.5ms 低电平。
最后,当按键长按时,这样是发送一个 110ms 的重复码:

通过编写对应的程序,还可以利用红外发射可以模拟红外遥控器实现遥控功能,该部分见下分段内容。

实验目的:
在本例中,我们将利用红外接收模块,接收遥控器发出的信号,并利用窗口显示出来。

器材:
Stduino UNO / Nano; 杜邦线;红外接收(HS0038 )模块

电路连接:


代码展示:
#define IRMP_INPUT_PIN 11  //定义红外接收I/O引脚
#define IRMP_PROTOCOL_NAMES 1
#include <irmpSelectMain15Protocols.h>//使用15个主要的IR协议
#include <irmp.c.h>
IRMP_DATA irmp_data[1];//数据储存
void setup()
{
    Serial.begin(115200);
    irmp_init();//初始化红外通信
    irmp_irsnd_LEDFeedback(true); //开始接收红外通信
    irmp_print_active_protocols(&Serial);//打印支持的IR协议
}

void loop() {
    if (irmp_get_data(&irmp_data[0]))
    {
        irmp_result_print(&irmp_data[0]); //输出接收到的信息
    }
    delay(100);
}

实验效果:
如串口监视器所示,其中 P 表示采用的RC6 协议,C 表示指令为0x05 R 为长按重复。



Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。IDE当前支持的功能有:

    GDB调试
    封装库下载安装
    代码自动补全提示
    中英文模式
    UTF-8\GBK编码格式
    代码快速格式化
    SWD\串口程序下载&调试(已验证)
    DFU程序下载方式(待验证)
    USB HID程序下载方式(待验证)
    maple DFU程序下载方式(待验证)
    maple DFU2程序下载方式(待验证)
    MassStorage程序下载方式(待验证)

更多功能细节请点击图片上水印显示的网址进行了解

已经支持的芯片&板型列表:

    Stduino UNO&Nano
    Nucleo 144 boards
    Nucleo 64 boards
    Nucleo 32 boards
    Discovery boards
    Eval boards
    STM32MP1 series coprocessor boards
    Generic STM32F0 boards
    Generic STM32F1 boards
    Generic STM32F3 boards
    Generic STM32F4 boards
    Generic STM32H7 boards
    Generic STM32L0 boards
    3D printer boards
    LoRa boards
    Electronic Speed Controller boards
    Generic flight controllers
    Garatronics boards
    Midatronics boards

更多功能集成正在进行中~

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表