STM32单片机对红外接收系统的设计
基于STM32的智能家居红外控制系统研究与设计共3篇
基于STM32的智能家居红外控制系统研究与设计共3篇基于STM32的智能家居红外控制系统研究与设计1智能家居系统在当今社会已经得到了广泛的应用,而红外控制技术也是其中的重要一环。
本文将对基于STM32的智能家居红外控制系统进行研究与设计,主要包括系统设计方案、硬件设计、软件设计等方面的内容。
一、系统设计方案系统的整体设计方案如下:1、硬件系统设计(1)基于STM32微控制器的控制板设计。
(2)通过红外传感器采集红外信号。
(3)通过继电器实现对家居电器的远程遥控。
2、软件系统设计(1)通过编写C语言程序,实现红外信号采集、远程遥控等功能。
(2)通过TCP/IP协议实现智能家居控制,并实现移动端APP对智能家居的远程控制。
二、硬件设计基于STM32F407VG微控制器,我们设计了控制板。
控制板的主要功能是通过GPIO口采集红外信号,并实现对家居电器的远程控制。
同时,设计一组2路继电器可实现对两路不同设备的控制。
此外,我们在控制板中加入了W5500以太网模块,以实现智能家居系统的远程控制。
它支持TCP/IP协议,可将设备与云端进行通信。
三、软件设计在软件方面,我们采用Keil软件开发环境,通过编写C语言程序实现各项功能。
红外信号采集:通过GPIO口的中断方式方便地实现对红外信号的采集。
远程控制:通过电路板上的两个继电器实现对家庭电器的控制。
使用TCP/IP协议实现控制面板与PC、手机等设备的远程控制通信。
移动端APP设计:手机APP通过连接TCP/IP协议,实现对家居设备的遥控。
APP采用Android平台进行开发,具有简单、易操作、界面友好等特点。
四、系统实现效果对系统进行实际测试,能够实现对家庭电器的控制。
在APP上,用户可以实时查看设备状态,并可对设备进行控制。
本系统能实现智能家居的简易、实用、高效的控制,满足用户的基本需求。
综上所述,本文对基于STM32的智能家居红外控制系统进行了研究与设计,详细分析了硬件系统和软件系统的设计,通过实际测试验证了系统的实现效果,证明本系统能够实现对家庭电器的控制,而且使用方便,界面友好,具有很高的实用价值。
单片机STM32F103C8T6的红外遥控器解码系统设计
单片机STM32F103C8T6的红外遥控器解码系统设计一、本文概述本文旨在详细阐述基于STM32F103C8T6单片机的红外遥控器解码系统的设计和实现过程。
随着科技的不断进步和智能化设备的普及,红外遥控器作为一种常见的遥控设备,已经广泛应用于家电、安防、玩具等多个领域。
然而,红外遥控器发出的红外信号往往需要通过解码器才能被设备正确识别和执行,因此,设计一款高效、稳定、可靠的红外遥控器解码系统具有重要意义。
本文将首先介绍红外遥控器的基本原理和信号特点,然后详细阐述STM32F103C8T6单片机的性能特点和在红外遥控器解码系统中的应用优势。
接着,将详细介绍红外遥控器解码系统的硬件设计,包括红外接收头的选择、电路设计和PCB制作等。
在软件设计部分,将详细阐述如何通过STM32F103C8T6单片机的编程实现红外信号的接收、解码和处理,以及如何将解码后的数据通过串口或其他通信方式发送给主控制器。
本文还将对红外遥控器解码系统的性能进行测试和分析,包括信号接收距离、解码速度和稳定性等方面的测试。
将总结本文的主要工作和创新点,并对未来的研究方向进行展望。
通过本文的研究和实现,旨在为红外遥控器解码系统的设计提供一种新的思路和方法,同时也为相关领域的研究人员提供有益的参考和借鉴。
二、红外遥控器基础知识红外遥控器是一种常见的无线遥控设备,它利用红外光作为信息载体,通过发射和接收红外光信号实现对设备的远程控制。
这种遥控方式因其简单、低成本和无需视线连接等优点,在各类消费电子产品中得到了广泛应用,如电视机、空调、音响等。
红外遥控器的工作原理主要基于红外辐射和光电器件的检测。
遥控器内部通常包含一个或多个红外发射管,当按下按键时,发射管会发射出特定频率和编码的红外光信号。
接收端则配备有红外接收头,该接收头内部有一个光敏元件(如硅光敏三极管或光敏二极管),用于检测红外光信号并将其转换为电信号。
为了区分不同的按键操作,红外遥控器通常采用特定的编码方式对按键信号进行编码。
STM32单片机红外遥控
STM32单片机红外遥控红外遥控接口电路STM32单片机红外遥控程序源代码#include "sys.h"#define LED_RED PBout(12) //红色发光二极管控制管脚初始化PB12 #define LED_GREEN PBout(13) //绿色发光二极管控制管脚初始化PB13 #define LED_YELLOW PBout(14) //黄色发光二极管控制管脚初始化PB14 #define LED_BLUE PBout(15) //蓝色发光二极管控制管脚初始化PB15 #define BEEP PBout(5) //蜂鸣器端口定义PB5#define RDATA PAin(1) //红外数据输入脚//红外遥控识别码(ID),每款遥控器的该值基本都不一样,但也有一样的//我们选用的遥控器识别码为0#define REMOTE_ID 0static u8 fac_us=0; //us延时倍乘数static u16 fac_ms=0; //ms延时倍乘数void delay_init(u8 SYSCLK);void delay_ms(u16 nms);void delay_us(u32 nus);void Led_Init(void); //发光二极管控制管脚初始化void Red_Led_Light(void); //点亮红色发光二极管void Green_Led_Light(void); //点亮绿色发光二极管void Yellow_Led_Light(void); //点亮黄色发光二极管void Blue_Led_Light(void); //点亮蓝色发光二极管void Red_Led_Goout(void); //熄灭红色发光二极管void Green_Led_Goout(void); //熄灭绿色发光二极管void Yellow_Led_Goout(void); //熄灭黄色发光二极管void Blue_Led_Goout(void); //熄灭蓝色发光二极管void Beep_Init(void);void Beep_Tweet(void);void Beep_Silent(void);extern u8 Remote_Cnt; //按键次数,此次按下键的次数extern u8 Remote_Rdy; //红外接收到数据extern u32 Remote_Odr; //命令暂存处u32 Remote_Odr=0; //命令暂存处u8 Remote_Cnt=0; //按键次数,此次按下键的次数u8 Remote_Rdy=0; //红外接收到数据void Remote_Init(void); //红外传感器接收头引脚初始化u8 Remote_Process(void); //红外接收到数据处理u8 Pulse_Width_Check(void); //检查脉宽extern u8 USART_RX_BUF[64]; //接收缓冲,最大63个字节.末字节为换行符extern u8 USART_RX_STA; //接收状态标记//如果想串口中断接收,请不要注释以下宏定义//#define EN_USART1_RX //使能串口1接收void uart_init(u32 pclk2,u32 bound);/*************************************************************开发板上电后,用红外遥控器对着开发板上的红外接收头。
基于STM32的智能家居红外控制系统研究与设计
基于STM32的智能家居红外控制系统研究与设计基于STM32的智能家居红外控制系统研究与设计智能家居系统已经成为人们生活中不可或缺的一部分。
随着科技的发展,越来越多的设备和家居设施可以通过智能控制实现自动化操作,为人们的生活带来更多的便利和舒适。
红外控制技术作为智能家居的一个重要组成部分,在家电遥控、安防监控、照明控制等方面有着广泛的应用。
本文将重点介绍一种采用STM32微控制器的智能家居红外控制系统的研究与设计。
该系统以红外控制为基础,通过智能算法和网络通信实现对家居设备的远程控制和监控。
首先,我们介绍STM32微控制器。
STM32是意法半导体公司推出的一系列基于ARM Cortex-M内核的微控制器产品,具有性能高、功耗低、易于开发等特点。
它具备丰富的外设资源和强大的处理能力,非常适合用于智能家居系统的设计。
基于STM32的智能家居红外控制系统主要包括硬件设计和软件设计两部分。
在硬件设计方面,系统通过红外收发模块实现与家电设备的红外通信。
同时,通过传感器模块采集环境数据,如温度、湿度、光照等信息,以实现对室内环境的感知和控制。
此外,为了实现远程控制和监控,系统还需要集成网络通信模块,如Wi-Fi或以太网模块,用于与用户手机或电脑进行数据交互。
在软件设计方面,系统主要包括红外通信协议解析、数据处理和网络通信等功能。
首先,红外通信协议解析模块负责解析红外遥控信号,将其转换为控制指令。
然后,数据处理模块根据用户的控制指令对家居设备进行相应操作。
最后,网络通信模块将室内环境数据和设备状态等信息发送到用户的手机或电脑上,实现远程监控和控制。
智能算法是该系统的关键技术之一。
通过分析室内环境数据和用户的使用习惯,系统可以学习并优化设备的控制策略,提高用户体验和设备能效。
比如,根据室内温度和湿度的变化,系统可以自动调整空调的运行模式,实现温湿度的舒适控制。
另外,系统也可以根据用户的作息时间和习惯,自动调节灯光亮度和色温,提供个性化的照明服务。
基于STM32的红外光通信系统设计
2 0 1 2 ( 1 0 ) : 7 4 - 7 7 .
在消 费需求, 获取 、 分析客 户信. g - 数据 , 做 到与合作伙伴 协 同 开展 定 向 营销 并 向客 户推 荐 合 作 伙 伴 的 更 多 业 务 。
( 3) : 7 ~l 1 .
行 为入 手 , 针 对受众群体制定新 式的营销模 式 , 研究、 剖 析 客 户的 个 体 特 征 、 社 交 网络 和 群 体特 征 。 收 稿 日期 : 2 0 1 7 — 2 — 1 0
4 结束语
本 文 介 绍 了大 数 据 的 基 本 内涵 及 当前 的应 用现 状 . 分析
生, 成 为 引领 社 会 发 展 的 新 高潮 。 因 此 , 基于“ 互联网+ ” 理 论 的推 广 实 践 期 , 笔 者 对 其 理 念 下 网 路安 全 问题 的新 挑 战 进 行 研 究 , 并 试 图 找 出 有 效
解决策略。
【 关键词 】 互联 网+ ; 网路 ; 安全性 【 中图分类号 】 F 7 2 4 . 6 【 文献标识码 】 A
次, 为使 达 到 针 对 用 户 、 业务部 门、 合 作 伙 伴 的 不 同 需 求提 供
有针对性 、 行 之 有 效 的服 务 , 可 通 过 访 问客 户 端 、 拨打客服 电
话 和 访 问网 页 这 三种 渠道 , 根 据 用 户行 为 分析 、 挖 掘 客 户 的 潜
参 考 文 献
1 互联 网+ 理念下带给 网路安全新挑战
1 . 1 个 人信 息安 全
1 . 2 企 业机 密威 胁
基于STM32的红外报警系统的设计实现部分介绍
基于STM32的红外报警系统的设计实现部分介绍硬件设计3.1 STM32单片机控制模块设计中主控芯片采用STM32F103C8T6单片机作为主控制。
该型号单片机为LQFP44封装,内部资源足够用于本次设计。
STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。
内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字节,本次设计足够,内部高达20K字节的SRAM。
STM32F103C8T6芯片工作电压在2.0V-3.6V,最佳工作电压在3.3V。
芯片具有上电/断电复位(POR/PDR)、可编程电压检测器。
芯片可以外接4~16MHZ外部晶体振荡器,且可分频最高可达72MHZ。
内部有经过出厂调校的40KHZRC 晶体振荡器,可以产生CPU时钟的PLL;带有校准功能的32khz的RTC振荡器。
具有低功耗模式,可在睡眠、停机和待机模式。
STM32F103系列具有2个12位模数转换器,1us转换时间,多达16个输入通道。
转换范围0-3.6V,转换通道还包含一个内部温度传感器,可以用来测量STM32内部温度。
其片上具有定时器、ADC、SPI、IIC、USART功能。
STM32F103C8T6具有37个I/O,所以的I/O都可以映射到16个外部中断;除了A/D引脚外,几乎所以的I/O都可以接受5V的信号。
该芯片的调试模式可用串行单片机调试(SWD)和JTAG 接口。
3个16位定时器,每个定时器有多达4个用于输入捕获/输出比较PWM或脉冲计数的通道和增量编码器输入。
1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器;2个看门狗定时器(独立的和窗口型的)。
系统时间定时器:24位自减型计数器。
如下图3-4TM32F103C8T6 管脚图如图3.1所示。
图3.1 STM32F103C8T6管脚图3.2 电源电路电源模块需要考虑在输入和输出端增加滤波电路设计,滤除不必要的干扰,使整个电源电路更加稳定可靠。
单片机STM32F103C8T6的红外遥控器解码系统设计
78M i c r o c o n t r o l l e r s &E m b e d d e d S ys t e m s 2019年第10期w w w .m e s n e t .c o m .c n单片机S T M 32F 103C 8T 6的红外遥控器解码系统设计胡进德(仙桃职业学院科研处,仙桃433000)摘要:设计了一种适用于N E C 红外传输协议的解码系统㊂系统以单片机S TM 32F 103C 8T 6为核心,采用外部中断和定时器进行软件解码,解码结果通过串口调试软件在P C 机上进行了验证㊂详细介绍了N E C 红外传输协议和解码方法,包括系统软硬件设计㊁软件设计流程图㊁核心功能函数和程序代码㊂关键词:S TM 32F 103C 8T 6;N E C 红外传输协议;红外解码;外部中断;定时器中图分类号:T P 31 文献标识码:AD e s i g n o f D e c o d i n g S ys t e m f o r I n f r a r e d R e m o t e C o n t r o l l e r B a s e d o n S T M 32F 103C 8T 6H u J i n d e(S c i e n t i f i c R e s e a r c h D e p a r t m e n t ,X i a n t a o V o c a t i o n a l C o l l e ge ,X i a n t a o 433000,C h i n a )A b s t r a c t :A d e c o d i n g s y s t e m of i n f r a r e d r e m o t e c o n t r o l l e r s u i t a b l e f o r N E C i n f r a r e d t r a n s p o r t p r o t o c o l i s d e s ig n e d .Th e s ys t e m t a k e s M C U S TM 32F 103C 8T 6a s t h e c o r e t o c o m p l e t e s o f t w a r e d e c o d i n g b y e x t e r n a l i n t e r r u p t a n d t i m e r ,a n d t h e d e c o d i n g re s u l t s a r e v e r if i e d o n P C b y s e r i a l d e b ug g i n g s o f t w a r e .N E C i n f r a r e d t r a n s p o r t p r o t o c o l a n d d e c o d i n g m e th o d a r ei n t r o d u c e d i n d e t a i l ,i n c l u d i n gt h e s o f t w a r e a n d h a r d w a r e d e s i g n ,t h e f l o w c h a r t o f s o f t w a r e d e s i g n ,c o r e f u n c t i o n s a n d p r o gr a m c o d e .K e y wo r d s :S TM 32F 103C 8T 6;N E C i n f r a r e d t r a n s p o r t p r o t o c o l ;i n f r a r e d d e c o d i n g ;e x t e r n a l i n t e r r u p t ;t i m e r 引 言红外遥控具有体积小㊁信息传输可靠㊁功耗低㊁成本低等显著特点,越来越多地应用于嵌入式系统㊂红外遥控系统一般由发射和接收两大部分组成,红外遥控器所发射的信号编码格式不同,其解码的方法也会随之发生变化㊂目图1 N E C 红外传输协议的帧数据格式前市场上所用红外遥控器广泛使用两种形式的编码格式,一种是采用N E C 红外传输协议的P WM (脉冲宽度调制)方式,一种是采用P h i l i ps 红外传输协议的P P M (脉冲位置调制)方式[1]㊂通过对市场上一种名为T E L E S K Y 的红外遥控器[2]所发射的信号进行测试,研究表明,其信号波形和脉冲间隔时间符合N E C 红外传输协议,无重复码㊂本文依项目需要针对T E L E S K Y 红外遥控器设计了基于单片机S TM 32F 103C 8T 6的解码系统㊂1 N E C 红外传输协议N E C 红外传输协议的主要特征是:一帧数据包含8位用户编码(地址码)和8位按键数据码(命令码);用户编码和按键数据码均传送两次,一次是原码,一次是反码,以确保可靠传送;采用P WM (脉冲宽度调制)方式,以发射红外载波的占空比代表比特 0 和比特 1;载波频率是38k H z ;一个数据位的传输时间是, 0 用时1.125m s, 1 用时2.25m s [1]㊂N E C 红外传输协议的帧数据格式如图1所示,其位定义如图2所示㊂图2 N E C 红外传输协议的位定义在图1中红外遥控器发射的每帧数据有32位,由16位用户编码(含低8位用户编码和高8位用户编码)㊁8位按键数据码和8位按键数据码的反码组成㊂每帧数据发敬请登录网站在线投稿 2019年第10期79送前有一个引导码(同步码),引导码由一个9m s 的高电平和一个4.5m s 的低电平组成㊂每帧数据按照低位在前㊁高位在后顺序发送[3]㊂帧数据中采用反码是为了增加传输的可靠性,因此,反码可用于解码时进行校验对比㊂需要注意的是,遵循N E C 红外传输协议的发射芯片可有两种用户编码方式,一种是8位用户码原码加8位用户码的反码,另一种是16位用户编码,通过改变红外发射芯片外部电路来选择不同的用户编码方式[1]㊂在图2中比特 1 由一个0.56m s 的脉冲和1.69m s的低电平构成,比特 0 由一个0.56m s 的脉冲和0.56m s 的低电平构成㊂一个0.56m s 的脉冲对应0.56m s 的连续载波[1]㊂2 解码系统硬件设计单片机解码红外遥控器常用的方法有查询法㊁外部中断法和定时器捕获法[4]㊂本系统采用外部中断法,即通过外部中断检测红外信号利用单片机定时器测量帧数据中每一位数据的传输时间,从而识别数据位是比特 1还是比特 0[3],解码系统硬件设计如图3所示㊂图3 红外信号接收与解码电路图3中U 1为S TM 32F 103C 8T 6处理器,这是一款以A R M C o r t e x M 3为内核的32位单片机,具有运行速度快㊁处理能力强㊁外设接口丰富㊁价格低廉等特点,专门应用于对性能要求较高㊁成本要求较低以及低功耗的场合,其最高工作频率为72MH z ,工作电压为2~3.6V ,64K B的闪存和20K B 的S R AM ,37个I /O ,与通用端口G P I O映射的外部中断E X T I 有16个,1个16位高级控制定时器,3个16位通用定时器,3个U S A R T 串口通信模块等[5]㊂本系统通过S TM 32F 103C 8T 6的P A 7引脚以外部中断方式检测红外信号,使用通用定时器T I M 2测量帧数据中每一位数据的传输时间,解码结果通过U S A R T 1(P A 9为发送引脚)和串口调试软件在P C 机上显示㊂图3中U 2为一体化红外接收头H S 0038B ,它负责将调制在38k H z 上的红外编码信号接收和解调后送给S TM 32F 103C 8T 6的P A 7引脚进行检测㊂H S 0038B 第1引脚为正电源引脚,工作电压为2.7~5.5V ,实际工作电压为3.3V ,与S TM 32F 103C 8T 6工作电压相同;第2引脚为负电源引脚,接地;第3引脚为输出端,连接S TM 32F 103C 8T 6的P A 7引脚㊂当H S 0038B 没有接收到红外遥控信号时,第3引脚输出保持高电平;当接收到红外遥控信号时,第3引脚输出从高电平变为低电平,其下降沿触发S TM 32F 103C 8T 6的外部中断[6-7]㊂需要注意的是,一体化红外接收头输出解调后的脉冲信号电平与红外遥控器发送的编码格式电平反相[8],即S TM 32F 103C 8T 6的P A 7引脚接收到的帧数据格式电平与图1反相,其数据位定义也与图2反相:比特 1 由一个0.56m s 的低电平和1.69m s 的高电平构成,传输比特 1 需要2.25m s ;比特 0 由一个0.56m s 的低电平和0.56m s 的高电平构成,传输比特 0 需要1.125m s [9]㊂因此,通过外部中断E X T I 和定时器T I M 2统计P A 7引脚接收到的帧数据中2个下降沿之间的间隔时间就可得到帧数据中每一位数据的传输时间,从而识别数据位是比特 1 还是比特 0㊂3 解码系统软件设计在A R M 嵌入式系统开发中,对处理器功能模块的操作既可以通过对芯片底层的寄存器,也可以使用S T 公司提供的标准函数库[10],本系统采用标准函数库操作S T M 32F 103C 8T 6相关寄存器㊂解码系统软件设计主要涉及5个方面㊂3.1 配置红外脉冲信号输入引脚P A 7为下降沿触发中断通过初始化通用端口G P I O ㊁外部中断E X T I 和嵌套向量中断控制器N V I C 的相关寄存器,配置P A 7为下降沿触发中断㊂3.1.1 初始化G P I O 的相关寄存器将P A 7配置为浮空输入[10],开启端口时钟和A F I O 时钟,相关初始化程序如下:G P I O _I n i t T y pe D ef G P I O _I n i t S t r u c t u r e ; //声明结构体变量以便初始化G P I O 相关寄存器R C C _A P B 2P e r i p h C l o c k C m d (R C C _A P B 2P e r i p h _G P I O A |R C C _A P B 2P e r i ph _A F I O ,E N A B L E );//开启G P I O 端口时钟,用到E X T I 必须开启A F I O 时钟G P I O _I n i t S t r u c t u r e .G P I O _P i n =G P I O _P i n _7;//选中当前端口的引脚7G P I O _I n i t S t r u c t u r e .G P I O _M o d e =G P I O _M o d e _I N _F L O A T -I N G ;//设定为浮空输入G P I O _I n i t (G P I O A ,&G P I O _I n i t S t r u c t u r e);//初始化G P I O A 相关寄存器80M i c r o c o n t r o l l e r s &E m b e d d e d S ys t e m s 2019年第10期w w w .m e s n e t .c o m .c n3.1.2 初始化E X T I 的相关寄存器应将P A 7与外部中断线连接[10],并配置为下降沿触发中断请求,相关初始化程序如下:E X T I _I n i t T y pe D ef E X T I _I n i t S t r u c t u r e ;//声明结构体变量以便初始化E X T I 相关寄存器G P I O _E X T I L i n e C o n f i g (G P I O _P o r t S o u r c e G P I O A ,G P I O _P i n -S o u r c e 7);//将P A 7与外部中断线连接E X T I _I n i t S t r u c t u r e .E X T I _L i n e =E X T I _L i n e 7; //使用外部中断输入线7E X T I _I n i t S t r u c t u r e .E X T I _M o d e =E X T I _M o d e _I n t e r r u pt ; //设置E X T I 线路为中断请求E X T I _I n i t S t r u c t u r e .E X T I _T r i g g e r =E X T I _T r i g g e r _F a l l i n g ;//设置E X T I 线路为下降沿触发中断请求E X T I _I n i t S t r u c t u r e .E X T I _L i n e C m d =E N A B L E ; //开放E X T I 线路中断请求E X T I _I n i t (&E X T I _I n i t S t r u c t u r e );//初始化E X T I 相关寄存器3.1.3 初始化N V I C 的相关寄存器程序中用到了2个中断源:来自P A 7引脚的E X T I 下降沿触发中断和定时器T I M 2计数溢出中断㊂设定E X T I 中断优先级高于T I M 2中断,使用v o i d N V I C _P r i o r i t y-G r o u p C o n f i g (u i n t 32_t N V I C _P r i o r i t y G r o u p )函数设定优先级分组为第1组,E X T I 中断抢占优先级为1,T I M 2中断抢占优先级为0,相关初始化程序如下:N V I C _I n i t T y pe D ef N V I C _I n i t S t r u c t u r e ;//声明结构体变量以便初始化N V I C 相关寄存器N V I C _P r i o r i t y G r o u p C o n f i g (N V I C _P r i o r i t y G r o u p_1);//选择第1组 N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l =E X T I 9_5_I R Q n ;//配置中断源N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l P r e e m p t i o n P r i o r i t y =1;//抢占优先级为1N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l S u b P r i o r i t y =1;//子优先级为1N V I C _I n i t S t r u c t u r e .N V I C _I R Q C h a n n e l C m d =E N A B L E ;//使能中断通道N V I C _I n i t (&N V I C _I n i t S t r u c t u r e );//初始化N V I C 相关寄存器3.2 配置定时器T I M 2每0.1m s 产生一次溢出中通过初始化定时器T I M 2和N V I C 的相关寄存器,配置T I M 2每0.1m s 产生一次溢出中断,以便在其中断处理程序中统计帧数据中每一位数据的传输时间㊂3.2.1 初始化T I M 2的相关寄存器设定系统时钟为72MH z ,预分频值P r e s c a l e r 为3600,计数器自动重装值P e r i o d 为2,此时定时器T I M 2每0.1m s 产生一次溢出中断[10]㊂相关初始化程序如下:S ys t e m I n i t (); //设置系统时钟为72MH z T I M _T i m e B a s e I n i t T y pe D ef T I M _S t r u c t I n i t ;//声明结构体变量以便初始化T I M 2寄存器R C C _A P B 1P e r i p h C l o c k C m d (R C C _A P B 1P e r i ph _T I M 2,E N A -B L E );//开启T I M 2时钟T I M _S t r u c t I n i t .T I M _P e r i o d =2;//设定计数器自动重装值T I M _S t r u c t I n i t .T I M _P r e s c a l e r =3600;//设定预分频值T I M _S t r u c t I n i t .T I M _C l o c k D i v i s i o n =T I M _C K D _D I V 1;//设置时钟分割T I M _S t r u c t I n i t .T I M _C o u n t e r M o d e =T I M _C o u n t e r M o d e _U p;//设置向上计数模式T I M _T i m e B a s e I n i t (T I M 2,&T I M _S t r u c t I n i t );//初始化T I M 2寄存器T I M _I T C o n f i g (T I M 2,T I M _I T _U p d a t e ,E N A B L E ); //使能T I M 2中断T I M _C m d (T I M 2,E N A B L E );//启动T I M 2T I M _C l e a r F l a g (T I M 2,T I M _F L A G _U pd a te ); //清除T I M 2的待处理标志位3.2.2 初始化N V I C 的相关寄存器配置定时器T I M 2为中断源,设置其优先级,相关初始化程序如下:N V I C _P r i o r i t y G r o u p C o n f i g (N V I C _P r i o r i t y G r o u p _1);//选择第1组N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l =T I M 2_I R Q n;//配置中断源N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l C m d =E N A B L E ;//使能中断通道N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l P r e e m p t i o n P r i o r i t y=0;//抢占优先级为0N V I C _S t r u c t I n i t .N V I C _I R Q C h a n n e l S u b P r i o r i t y=1;//子优先级为1N V I C _I n i t (&N V I C _S t r u c t I n i t ); //初始化N V I C 相关寄存器3.3 统计帧数据中每一位脉冲的传输时间定时器T I M 2每0.1m s 产生一次溢出中断,在T I M 2中断服务程序中,全局变量i r _t i m e 每0.1m s 自动加1㊂通过i r _t i m e 可统计P A 7引脚接收的帧数据中相邻的2个下降沿之间的间隔时间,同时也获得帧数据中每一位脉冲的传输时间㊂程序如下:v o i d T I M 2_I R Q H a n d l e r (v o i d ) //T I M 2中断服务程序{T I M _C l e a r I T P e n d i n g B i t (T I M 2,T I M _I T _U pd a te );//清除T I M 2中断标志位以便下一个0.1m s 到来时触发T I M 2//中断i r _t i m e ++;//全局变量i r _t i m e 的计数值自动加1}3.4 存储从引导码开始的33个脉冲传输时间当H S 0038B 没有接收到红外信号时,系统默认处在敬请登录网站在线投稿 2019年第10期81图4 E X T I 中断服务流程图空闲 状态,P A 7引脚一直是高电平㊂当H S 0038B 接收到红外信号时,P A 7引脚由高电平变为低电平,此时将触发外部中断E X T I ,在E X T I 中断服务程序中先判断采集到的脉冲信号是否为引导码,如果i r _t i m e 计数值大于90(9m s )且小于150(15m s),则可视为引导码(引导码传输时间理论值为13.5m s,考虑到S TM 32F 103C 8T 6和红外遥控发射器的晶振频率与标称值会有一定的偏差,以及H S 0038B 红外接收头输出波形的轻微畸变,在程序设计时要留有一定的容限误差[4]),并将从引导码开始的33个脉冲传输时间(i r_t i m e 的计数值)保存到事先定义好的数组i r d a t a [33](全局变量)中㊂E X -T I 外部中断服务程序流程图如图4所示㊂3.5 从数组i r d a t a [33]中提取比特 1和比特 0并形成4个字节的按键码数组i r d a t a [33]存放了33个脉冲传输时间,其中数组元素i r d a t a [0]存放的是引导码传输时间,其他32个数组元素i r d a t a [1]~i r d a t a [32]存放了4个字节按键码的传输时间㊂比特 1 的传输时间为2.25m s,其对应的数组元素取值为22或23;比特 0 的传输时间为1.125m s,其对应的数组元素取值为11或12㊂在程序设计时同样要留有一定的容限误差,当数组元素i r d a t a [1]~i r d a t a [32]取值为20~25时,可认为接收到比特 1,否则认为接收到比特 0 ㊂因此从数组i r d a t a [33]中可提取4个字节按键码:i r -d a t a [1]~i r d a t a [16]提取16位用户编码,i r d a t a [17]~i r d a t a [24]提取8位按键数据码,i r d a t a [25]~i r d a t a [32]提取8位按键数据码的反码㊂提取4个字节按键码的函数流程图如图5所示㊂4 解码结果验证为了验证解码方案的正确性,通过串口调试软件将实验结果显示在P C 机上㊂图6是T E L E S K Y 遥控器外观和对应的按键数据码,图7是显示在P C 机上的实验结果㊂图7中有84个数据码,从左向右每4个数据码(对应4个字节共32位比特)一组对应一个按键,分别指示按键的用户码原码㊁用户码的反码㊁按键数据码和按键数据码的反码㊂如遥控器左上角第一个按键 C H- 的解码为00F F 45B A ,按键 C H图5 提取4个字节按键码的函数流程图图6 遥控器外观和按键数据码的解码为00F F 46B 9,其他按键的解码依此类推㊂从解码的实验结果可以看出,32位比特的前16位为用户码,后16位为8位按键数据码和按键数据码的反码,符合N E C 红外传输协议,且图7中21个按键数据码与图6中21个按键的数据码相同,相互依次对应,从而验证了解码方法的正确性㊂图7 串口调试软件显示的按键码结 语本文介绍的红外遥控器解码方法原理直观㊁简单可靠,已经应用于实际项目中,可为无线遥控嵌入式系统学习者提供一个应用范例㊂该方法不仅适用于N E C 红外传输协议,对于其他传输协议的解码同样有很好85敬请登录网站在线投稿2019年第10期85表4使用H M M在嘈杂环境下识别结果控制指令1号正确次数/总次数2号正确次数/总次数3号正确次数/总次数4号正确次数/总次数闭合拇指7/106/105/104/10伸开拇指6/107/105/106/10手腕逆时针7/106/107/108/10手腕归位6/104/104/105/10伸开手掌5/105/106/107/10握紧拳头6/104/105/106/10结语HMM算法实现的前提是需要大量的语音样本训练,不仅需要考虑到语音语调的差别,还要考虑非特定人性别年龄的差异,这样才能够适应实际语音中的不同情况,因此HMM算法具有良好的识别性和抗噪性㊂参考文献[1]周艳萍.机器人嵌入式语音识别系统设计与开发[D].广州:华南理工大学,2012.[2]周慧芳.基于HMM的嵌入式语音识别系统的研究[D].广州:广东工业大学,2011.[3]黄岗.马尔可夫及隐马尔可夫模型的应用[J].电子设计工程,2013,21(17):6062.[4]任昕.基于隐马尔可夫模型和卷积神经网络的W e b安全检测研究[D].长沙:湖南大学,2018.[5]王稚慧.基于HMM建模的语音识别算法的研究[D].西安:西安建筑科技大学,2005.[6]曹冠彬.基于HMM的连续语音识别技术研究[D].南京:南京理工大学,2018.[7]袁腾,李秋红,杨国斌,等.基于Z i g B e e和3G技术的W S N s 环境监控系统设计[J].传感器与微系统,2012,31(6):128129,133.[8]田泽,智爱娟,阎效莺,等.U D A1341T S在嵌入式语音系统中的应用[J].西北大学学报:自然科学版,2006(2):214220.[9]周夕良.嵌入式语音识别系统研究[J].电脑与信息技术,2014,22(1):5658.张起浩㊁蒋少国,主要研究方向为智能硬件设计;赵鹏(助理实验师),通讯作者,主要研究方向为智能硬件设计㊁语音识别㊂(责任编辑:薛士然收稿日期:2019-04-23)[5]U n d e r w o o d C,P e l l e g r i n o S,L a p p a s V J,e t a l.U s i n gC u b e S a t/m i c r o s a t e l l i t e t e c h n o l o g y t o d e m o n s t r a t e t h e A u-t o n o m o u s A s s e m b l y o f a R e c o n f i g u r a b l e S p a c e T e l e s c o p e(A A R e S T)[J].A c t a A s t r o n a u t i c a,2015(114):112122.[6]韩忠辉.基于G P I B的无线通信计量自动测试系统[J].自动化与仪器仪表,2016(6):110.[7]刘倩茜,王格芳.基于多总线结构的电路板测试系统设计研究[J].价值工程,2016,35(32):131133.[8]S h l a d o v e r S E.C o n n e c t e d a n d a u t o m a t e d v e h i c l e s y s t e m s:I n-t r o d u c t i o n a n d o v e r v i e w[J].J o u r n a l o f I n t e l l i g e n t T r a n s p o r-t a t i o n S y s t e m s,2018,22(3):190200.[9]张凯,李涵,姜静.基于A T E与B I T组合的N AM P自动测试与故障诊断系统设计[J].海军航空工程学院学报,2015,30(4):321325.[10]刘鹏飞,谢森,姚玉山,等.某型制导武器通用自动测试系统方案设计[J].计算机测量与控制,2017,25(6):9599.[11]曹兴冈,韩晨.基于P X I航电计算机测试设备的设计与实现[J].电子技术,2016(2):6.[12]刘新飞,李亚利,王东,等.通用航管二次雷达功放模块自动测试系统研制[J].计算机测量与控制,2016,24(9):4749.[13]L i u Y,P e n g Y,W a n g B,e t a l.R e v i e w o n c y b e r p h y s i c a ls y s t em s[J].I E E E/C A A J o u r n a l o f A u t o m a t i c a S i n i c a,2017,4(1):2740.[14]郭栋梁,刘新妹,殷俊龄,等.通用电路板自动故障诊断系统的设计与实现[J].中国测试,2016,42(7):112116.[15]宋丽涵,张琴.基于总线技术的仪器仪表自动检定系统设计[J].兰州文理学院学报:自然科学版,2016(2):5256.何进(讲师),主要从事电子技术㊁电力电子技术等教学研究㊂(责任编辑:薛士然收稿日期:2019-05-06)的参考价值㊂参考文献[1]李幸泽.基于W E B方式的智能家电控制网关的硏究[D].广州:广东工业大学,2012.[2]T E L E S K Y.红外线遥控器,2019.[3]李雪莹.基于单片机的空调红外线编解码系统的设计和实现[D].成都:电子科技大学,2014.[4]何乃味.单片机定时器捕获模式解码红外遥控器的方法[J].现代电子技术,2012(18):1113.[5]意法半导体(S T).S TM32F103x8d a t a s h e e t,2019.[6]圣狄豹.H S0038B红外线接收发射对管,2019.[7]管芳绍,徐志江,孟利民.基于嵌入式系统的抗干扰红外软解码方法[J].计算机技术与应用,2010(10):3033.[8]杨萍.基于F P G A的功放遥控控制系统的设计与实现[D].成都:电子科技大学,2015(3):2933.[9]胥加林,游安华,皮大伟.基于单片机的智能红外遥控开关[J].机械制造与自动化,2016(4):200201.[10]肖广兵,万茂松,羊玢.A RM嵌入式开发实例[M].北京:电子工业出版社,2013.胡进德(副教授),主要研究方向为嵌入式系统㊁机电一体化㊂(责任编辑:薛士然收稿日期:2019-05-27)。
stm32红外遥控原理
stm32红外遥控原理标题:stm32红外遥控原理摘要:本文将介绍stm32红外遥控原理,包括红外遥控的基本原理、通信协议、硬件设计以及程序编写等方面。
通过详细步骤,读者能够深入了解stm32红外遥控的工作原理及实现方法。
引言:红外遥控技术是目前广泛应用于电视、空调、音响以及其他家电产品中的一种控制方式。
作为一种简单、方便、实用的遥控方式,红外遥控技术也被广泛应用于工业自动化、智能家居等领域。
本文将详细介绍基于stm32的红外遥控原理,并带领读者一步一步了解其工作原理及实现方法。
第一部分:红外遥控基本原理1.1 红外辐射与感光红外辐射是指波长在0.76μm至1000μm之间的电磁波辐射。
由于人类眼睛无法直接感应到红外辐射,常用的红外遥控设备将其用作通信手段。
在红外遥控中,遥控器中的红外发射器会发射特定频率的红外光,在设备的接收端,红外接收器能够感受到这些红外光。
1.2 遥控信号解码与通信协议遥控信号解码是红外遥控中至关重要的一步。
常见的红外遥控通信协议有NEC、SONY、RC-5等。
在不同的协议中,通过解码器能够将接收到的红外遥控信号转换为具体的命令码,从而实现对被遥控设备的控制。
第二部分:stm32红外遥控硬件设计2.1 stm32开发板选择在设计stm32红外遥控系统时,首先需要选择合适的stm32开发板。
根据项目需求,选择具有足够IO口和外设的开发板,例如STM32F103系列开发板。
2.2 红外接收电路设计为了接收红外遥控信号,需要设计一个红外接收电路。
该电路包括红外接收器、电阻、电容等组成。
红外接收器能够将接收到的红外光转换为电信号,经过滤波电路处理后,输出给stm32开发板。
2.3 红外发射电路设计红外发射电路主要由红外发射器和电流驱动器组成。
通过STM32的IO口,输出一定频率、占空比的PWM信号,经过电流驱动器放大后,通过红外发射器发送红外光信号。
第三部分:stm32红外遥控程序编写3.1 初始化红外接收模块通过stm32的GPIO初始化函数,将红外接收器的输出引脚连接至相应引脚,并对其进行配置。
基于STM32单片机的非接触式红外测温系统设计
价值工程0引言随着新冠疫情的全球性发展,传统接触式测温的测量方法和测量速度都已无法满足需求[1,2]。
相比于接触式测温,非接触式红外测温耗时短、灵敏度高、测量范围宽,而且不会对被测物体造成影响,因此非接触式红外测温已成为测量体温的主流方式[3,4]。
但目前市面上主要应用的测温系统大多只显示温度,不能直观地显示具体的测量部位,因此本文设计一种能同时显示热像图和具体温度的测温系统。
本文设计的非接触式红外测温系统采用STM32F103MCU 作为主控芯片,采用AMG8833红外热成像模块作为传感器,实现非接触式快速测温,并能够实时显示热像图,当温度超过设定阈值时能够报警,该系统使用方便快捷,具有一定的实用性。
1总体方案设计本系统主要基于STM32F103ZET6单片机开发平台,获取AMG8833红外热成像传感器采集的信息,完成信息计算与处理并显示被测物体温度,系统的整体设计方案如图1所示。
本设计主要实现的功能如下:①在TFT-LCD 显示屏上显示动态热像图;②在热像图的右侧显示三个数据(图像中的最大温度、最小温度和中间位置温度);③当中间位置温度大于预设值(系统默认预设值为50℃,显示在热像图下方)时,LED 灯亮,蜂鸣器响,表示警报;④通过按下设置按钮,可增加或减少预设值,每次增加或减少1℃;⑤按下复位按钮,系统还原到初始状态。
2系统硬件设计非接触式红外测温系统的硬件设计分为6个子模块,分别是AMG8833红外热成像模块、TFT-LCD 液晶显示模块、复位模块、按键模块、LED 模块和蜂鸣器模块。
AMG8833红外热成像模块:该模块可测量产生8*8的热像矩阵,通过I2C 通讯将数据传至MCU 。
在设计时将IIC_SCL 引脚与STM32的GPIOB6引脚连接,SDA 引脚与GPIOB7引脚连接,达到I2C 通讯的目的。
TFT-LCD 液晶显示模块:该模块采用RGB565编码,接收MCU 通过热像矩阵计算出的RGB 颜色矩阵,并实时显示热像图,同时可显示图像中的最大温度、最小温度和中间位置温度。
使用irmp库创建的基于stm32的红外遥控例程+源代码+文档说明
使用irmp库创建的基于stm32的红外遥控例程+源代码+文档说明全文共四篇示例,供读者参考第一篇示例:使用irmp库创建的基于stm32的红外遥控例程引言红外遥控技术在现代生活中得到了广泛应用,无论是电视遥控、空调遥控还是其它家用电器遥控,都离不开红外遥控技术。
而在嵌入式系统中,基于STM32开发的红外遥控系统也广泛应用于各种智能家居、智能家电中。
本文将介绍如何使用irmp库创建一个基于STM32的红外遥控例程,并提供源代码和文档说明。
一、什么是irmp库irmp库是一个用C语言编写的红外接收器解码库,可以用于解码不同品牌、型号的红外遥控器信号。
它支持多种不同的协议,包括NEC、SONY、RC-5等。
irmp库可以很方便地在STM32系列的单片机中使用,实现红外信号的接收和解码。
二、STM32开发环境搭建在使用irmp库创建红外遥控例程之前,首先需要搭建STM32开发环境。
可以选择Keil、IAR等集成开发环境进行开发。
在安装好开发环境后,需要配置好对应的STM32系列的芯片支持,包括芯片型号、引脚配置、时钟设置等。
然后创建一个新的工程,并导入irmp库的源代码。
三、irmp库的使用irmp库的使用主要分为两个部分:初始化红外接收器和处理接收到的红外码。
首先需要在初始化阶段对红外接收器进行配置,包括选择引脚、设置定时器等。
然后就可以启动红外接收器,开始接收红外信号。
在接收到红外信号后,irmp库会自动对信号进行解码,并将解码后的红外码存储在一个全局变量中。
在接收到红外码后,可以通过对不同的红外码进行判断,实现不同功能的控制。
四、红外遥控例程的实现下面以一个简单的LED控制为例,来演示如何使用irmp库创建一个基于STM32的红外遥控例程。
假设我们要用红外遥控器控制一个LED灯的开关。
1. 创建一个新的工程,并导入irmp库的源代码。
2. 配置红外接收器的引脚和定时器。
3. 在主函数中启动红外接收器,并进入一个无限循环。
基于STM32定时器的红外遥控数据接收设计原理
基于STM32定时器的红外遥控数据接收设计原理一、原理1、红外发射协议红外发射协议已经在之前的文章中写过,在此就不赘述。
2、定时器计数和输入捕获定时器就是按照一个特定的频率对计数值进行加一或减一操作,当数值溢出时则产生一个标志或中断。
定时器的输入捕获就是可以测量输入信号的脉冲宽度。
本次就是通过普通计数和输入捕获的结合来实现的。
3、实现方法利用定时器记录输入信号高脉冲的时间,通过该时间来判断数据是否是同步头信息、数据 1 或者数据 0。
二、实现1、配置定时器2 输入捕获通道示例代码中使用 PA1 管脚,配置为上拉输入模式,复用功能为定时器2的通道2。
定时器采用普通定时器,定时器2,该定时器具有输入捕获功能。
配置定时器的两种工作模式,一个是普通计数器TIM_TImeBaseInit,一个是输入捕获模式TIM_ICInit。
配置定时器2的中断源,有两个中断源,一个是更新中断TIM_IT_Update,一个是输入捕获中断TIM_IT_CC2。
配置代码如下:2、添加定时器2的中断服务函数使用了两种定时器中断源,分别为计数溢出中断和输入捕获中断。
但是这两种方式触发中断的中断服务函数是同一个,即void TIM2_IRQHandler(void)。
定时器使用的是 TIM2 通用定时器,模式为向上计数。
在该模式中,计数器从 0 计数到自动加载值(TIMx_ARR计数器的内容),然后重新从 0 开始计数并且产生一个计数器溢出事件。
定时器计数溢出的周期为10ms,该中断的产生说明在10ms内都没有输入捕获来清空计数值,也就是输入信号没有发生变化,说明 10ms 没有收到红外信号了,因此可判断为接收完成。
输入捕获是为了测量高电平的持续时间,因此采用上升沿触发中断,对计数值清零,切换下一次为下降沿触发;在下降沿触发中断时,记下计数值,切换下一次为上升沿触发。
因此在下降沿记下的时间即为高电平的时序时间。
记录高电平持续时间的原因,是因为红外信号在表示逻辑0、逻辑1时低电平的持续时间的相同的,而高电平的持续时间不同的。
基于STM32单片机的人体红外感应系统硬件平台设计
3、软件设计
3、软件设计
软件部分主要包括数据采集、处理、存储、显示和报警等功能。系统软件采 用C语言编写,利用STM32单片机内部的中断和定时器等资源,实现软件的实时性 和稳定性。
1、传感器数据采集
1、传感器数据采集
本系统采用非制冷红外传感器采集环境中的红外信号,通过STM32单片机的 ADC接口对传感器输出的电压进行采样,将模拟信号转换为数字信号。
参考内容
引言
引言
红外感应监测系统在众多领域具有广泛的应用价值,如工业自动化、安全监 控、智能家居等。本次演示旨在研究并设计一种基于STM32单片机的红外感应监 测系统,旨在实现对外界环境的实时监测与控制,提高现有系统的可靠性和稳定 性。
文献综述
文献综述
目前,常见的红外感应监测系统多以光学传感器、图像处理和模式识别等技 术为核心。然而,这些系统往往存在着一定的不足,如对环境光照条件要求较高、 抗干扰能力较弱等。因此,针对现有系统的不足之处,本次演示提出了一种基于 STM32单片机的红外感应监测系统,以提高监测的稳定性和准确性。
在软件设计阶段,我们需要考虑如何实现人体红外感应系统的各种功能。这 包括传感器的数据采集、信号处理、以及通过STM32单片机控制输出等。为此, 我们需要建立一个程序框架,明确各个部分的功能和相互之间的接口。
2、算法实现
2、算法实现
为了提高人体红外感应系统的灵敏度,我们需要采用一些算法对采集到的数 据进行处理。其中,最重要的算法是背景抑制算法,它的作用是排除背景干扰, 提高人体红外感应的准确性。此外,我们还可以采用一些优化算法,如滤波算法 和动态阈值调整算法等,以进一步提高系统的性能。
系统设计
1、控制核心选择
1、控制核心选择
基于STM32的无线红外测温系统设计
基于STM32的无线红外测温系统设计吴海兄,丁哲文,陈伟明,杜,云舒,吴倩,蒋一凡,王标(桂林电子科技大学机电工程学院,广西桂林,541004 )摘要:论文基于疫情的需求,设计了一种简易、可靠、实用的红外测温系统,该系统以STM32单片机为核心微处理器,结 合高精度红外测温传感器、OLED 显示器、激光灯、蜂鸣器等外围设备进行设计,并且采用主、从一体的无线蓝牙穿透模块连接单片机和计算机,完成数据的无线传输,以便于记录和处理等。
该系统测量准确、速度快,适用于人员流量大且需要快速数据记录的温度测量场合,如学校、车站、医院等,以及可用于设备远程温度数据监控记录等。
关键词:STM32 ;红外测温;无线传输The design of wireless infrared temperature measuring systembased on STM32Wu Haixong, Ding Zhewen, Chen Weiming, Du Yunshu, Wu Qian, Jiang Yifan, Wang Biao(School of Mechanical and Electrical Engineering, Guilin University of Electronic Technology, GuilinGuangxi, 541004)Abstract :Paper based on the demand of the epidemic, design a simple, reliable, practical infrared temperature measurement system, the system with STM32 MCU as the core processor, combined with high precision, OLED displays, laser infrared measuring temperatore sensor, buzzer and other peripheral equipment design, and, from the integration of wireless bluetooth transmission module is used to connect single chip microcomputer and computer, the data wireless transmission, in order to record and process, etc. The system is accurate and fast, suitable for temperature measurement occasions with large personnel flow and need rapid data recording, such as schools, stations, hospitals, etc., and can be used for remote temperature data monitoring and recording of equipment.Keyword : STM32;infrared measuring temperature;wireless transmissiono 引言2020年爆发的新型冠状病毒疫情,主要由体温症状 (N 37. 3-C )来发现疑似型冠状病毒感染者,红外测温设备迅 速被应用到医院、车站、超市等各个公共场合,用于发现、排査可能感染者,这正是得益于红外测温非接触性、响应快的特点.与传统接触式测温相比,红外测温具有非接触性、响应 快、灵敏度高、范围广等优势,近些年来发展迅速,便携式红外测温仪已经广泛应用于各个领域,如医疗、工业、农业等。
基于STM32智能红外幕帘控制系统设计
• 130•引言:系统基于STM32单片机开发平台,运用红外热释电传感器传感器和菲涅尔透镜原理,制作系统主传感器,采集探测信息,由STM32处理后通过433M 无线模块发射出去,接收模块解码出相应的信号,由接收模块STM32以串口协议的形式发送命令控制幕帘运动方向。
解决了市面上红外幕帘方向识别准确率低的问题。
经测试,该系统能在不同的环境下运用,灵敏度可调节,方便实用。
前言红外热释电传感器因为其结构简单,成本低廉,一直被用作自动门迎宾,安防等场所。
随着社会的发展,已经不能满足安防、迎宾等产品的需要,有很多红外幕帘的代替品,如红外对管,激光运动探测仪、多普勒运动探测仪等。
这些各有各的优点,但是均无法代替无线红外幕帘的低功耗、低成本、安装简易等特点(李建.热释电传感器原理与应用[J].传感器世界,2005,11(7):34-36)。
无线红外幕帘的设计也是以安防和迎宾为背景,但其适应不同应用场合、易扩展。
系统设计有无线红外幕帘信号采集,和无线接收两个模块,无线红外幕帘主要功能是采集传感器信号进行处理、判断运动方向,判断结果运用自定义的编码方式,有效降低了外界信号干扰,通过433M 无线发射模块发射出去,接收处理模块实现方向控制(倪忠俊,麻红昭.基于433MHz 的智慧农业无线测控系统的设计与实现[J].工业控制计算机,2016,29(3):69-71)。
1.系统整体方案设计及原理整个系统开发是基于STM32单片机开发平台,选取红外热释电传感器作为系统主传感器,采集探测信息,并由STM32处理将处理结果通过433M 无线模块发射出去,由另外一块接收模块接收,并解码出相应的信号(刘世伟,邱玉泉,韩均雷等.基于STM32微控制器的无线智能家居监控系统[J].物联网技术,2016,6(3):15-16.),由接收模块的STM32处理出相应的结果,并将结果以串口协议的形式发送到主控电机,控制幕帘运动方向。
整体方案如图1无线红外幕帘发送框图,如图2无线接收模块框图。
stm32红外遥控原理
stm32红外遥控原理红外遥控是利用红外线作为载体进行通信的一种方式。
它广泛应用于家庭电器控制、汽车门锁、安防系统等领域。
在红外遥控系统中,主要包括红外遥控器和红外接收器两个部分。
一、红外遥控器原理红外遥控器是实现红外遥控功能的手持设备,它通常由按键、红外发射器、编码器和电源等组成。
1.按键:红外遥控器上的按键是用户和设备进行交互的介质。
按下不同的按键会触发不同的功能。
2.红外发射器:红外发射器是红外遥控器中最重要的部分。
它能够将遥控信号转化成红外光信号并发射出去。
红外发射器一般采用红外发光二极管(IR LED),工作波长通常为940nm。
3.编码器:编码器是将按键按下的信息转换成特定编码的电路。
每一个按键都对应一个特定的编码值,通过编码器可以将按键按下的动作转换成一个数字编码。
4.电源:红外遥控器使用电池作为电源供电。
工作原理:用户通过按下红外遥控器上的按键,按键的机械动作会使得编码器根据按键对应的编码值产生一组电信号,然后将这组电信号输入给红外发射器。
红外发射器将电信号转换为红外光信号并发射出去。
二、红外接收器原理红外接收器是接收红外遥控器发射的红外光信号,并将其转换为电信号的设备。
红外接收器是红外遥控系统中的核心组成部分。
红外接收器主要包括红外接收头、解码器和电源等组成。
1.红外接收头:红外接收头是红外接收器的核心组成部分。
它能够接收红外光信号并转换成电信号。
红外接收头通常由红外光敏二极管构成,它对特定波长的红外光敏感。
2.解码器:解码器将红外接收头接收到的红外光信号进行解码,将其转换成对应的按键编码。
解码器根据接收到的红外光信号的特征和频率等参数来识别不同的按键编码。
3.电源:红外接收器使用电源供电。
工作原理:当红外接收头接收到红外遥控器发射的红外光信号时,它会产生一个与光信号频率、特征相对应的电信号。
解码器会对接收到的电信号进行译码,将其转换成对应的按键编码。
然后,这个按键编码会被传输给被控制的设备,设备根据按键编码来执行相应的功能。
(完整word版)基于STM32的红外测距系统设计
基于STM32的红外测距系统设计摘要随着现代科学技术的发展,出现了很多新的领域,为了实现对物体近距离、高精度的无线测量,本论文对红外测距领域进行了研究。
本论文采用单片机作为处理器,编写A/D转换程序及LCD显示程序,红外传感器作为工作模块,完成一套高精度显示、实时测量的红外测距系统.本系统结构简单、体积小、测量精度高、成本低、方便使用。
本论文所介绍的是一种基于STM32单片机并运用日本夏普公司型号为GP2Y0A21的红外传感器所设计的红外测距系统。
首先,介绍红外线及红外传感器的分类及应用、STM32单片机的简介与功能;其次,阐述红外测距系统工作原理及基本结构并对单片机、红外传感器、LCD 液晶显示屏的工作电路做了介绍;再次,对系统进行了整体设计构想,先后对系统硬件及软件进行设计,并对整个系统的功能进行了调试。
最后对整个设计进行总结,说明红外测距系统实现的可行性。
关键词红外测距;单片机;A/D转换;LCDSTM32-based infrared ranging system designAbstractWith the development of modern science and technology,there are many new areas, in order to achieve the object close range, high—precision wireless measurement,this topic of infrared ranging is studied。
This topic using SCM as the processor, to write A/D converter and LCD display program,an infrared sensor as a working module,complete set of precision display,real-time measurement of infrared ranging system。
基于STM32的红外测距系统设计
基于STM32的红外测距系统设计摘要随着现代科学技术的发展,出现了很多新的领域,为了实现对物体近距离、高精度的无线测量,本论文对红外测距领域进行了研究。
本论文采用单片机作为处理器,编写A/D转换程序及LCD显示程序,红外传感器作为工作模块,完成一套高精度显示、实时测量的红外测距系统。
本系统结构简单、体积小、测量精度高、成本低、方便使用。
本论文所介绍的是一种基于STM32单片机并运用日本夏普公司型号为GP2Y0A21的红外传感器所设计的红外测距系统。
首先,介绍红外线及红外传感器的分类及应用、STM32单片机的简介与功能;其次,阐述红外测距系统工作原理及基本结构并对单片机、红外传感器、LCD液晶显示屏的工作电路做了介绍;再次,对系统进行了整体设计构想,先后对系统硬件及软件进行设计,并对整个系统的功能进行了调试。
最后对整个设计进行总结,说明红外测距系统实现的可行性。
关键词红外测距;单片机;A/D转换;LCDSTM32-based infrared ranging system designAbstractWith the development of modern science and technology, there are many new areas, in order to achieve the object close range, high-precision wireless measurement,this topic of infrared ranging is studied. This topic using SCM as the processor, to write A/D converter and LCD display program, an infrared sensor as a working module, complete set of precision display, real-time measurement of infrared ranging system. This system has the advantages of simple structure, small size and high accuracy, low cost and convenient use. This paper introduced is based STM32 microcontroller and use of Japan's Sharp Corporation model GP2Y0A21 infrared sensor designed infrared ranging system. Firstly, introduce the classification and application of infrared distance measurement,it also introduces the function of STM32 microcontroller. Then illustrate the work theory and basic structure of it and introduce the LCD screen and work circuit. Again, the system has carried on the overall design idea, successively on the system hardware and software design, and probes into the function of the whole system debugging. Finally, summarize the entire design to illustrate the feasibility of infrared distance measurement.Keywords Infrared range, SCM, A/D converter, LCD目录摘要 (I)Abstract (II)第1章绪论 (4)1.1 课题研究背景及意义 (4)1.2 本论文主要研究内容 (4)第2章红外测距系统硬件设计 (6)2.1 红外测距系统的工作原理 (6)2.1.1 时间差法测距原理 (6)2.1.2 反射能量法测距原理 (6)2.1.3 相位法测距原理 (6)2.1.4三角法测距原理 (7)2.2 红外测距系统的基本结构 (7)2.2.1 红外传感器模块 (8)2.2.2 单片机处理模块 (9)2.2.3 LCD显示模块 (16)2.3 本章小结 (17)第3章红外测距系统的软件设计及功能调试 (18)3.1 红外测距系统工作流程 (18)3.2 软件程序设计 (19)3.3 硬件功能调试 (19)3.4 软件功能调试 (20)3.5 测量数据绘图 (20)3.6 本章小结 (23)结论 (25)致谢 (26)参考文献 (27)附录A (29)附录B (35)附录C (38)第1章 绪论1.1 课题研究背景及意义随着科学技术的不断发展,在测距领域也先后出现了激光测距、微波雷达测距、超声波测距及红外线测距等方式。
基于STM32F1-HAL库的红外接收程序
基于STM32F1HAL库的红外解码程序,核心思想是通过外部下降沿中断记录相邻两个下降沿的时间,记录的数据存入数组,再根据数据判断是0还是1,获得NEC协议的4个码。
程序使用PG15作为中断输入,使用基本定时器7定时,相比在中断里面等待的方式节省了CPU时间,提高了效率,也方便移植到其他型号的MCU上。
程序没有处理连发的问题,感兴趣的可以尝试修改。
.c文件#include"bsp_ir.h"//irdata[33]存储相邻下降沿的cnt计数值uint8_tirdata[33],cnt=0,IR_OK=0;TIM_HandleTypeDefir_timx;voidIR_Init(void){GPIO_InitTypeDefGPIO_InitStruct;IR_GPIO_CLK_ENABLE;GPIO_InitStruct.Pin=IR_GPIO_PIN;GPIO_InitStruct.Mode=GPIO_MODE_IT_FALLING;//下降沿中断GPIO_InitStruct.Pull=GPIO_PULLUP;//上拉HAL_GPIO_Init(IR_GPIO_PORT,&GPIO_InitStruct);HAL_NVIC_SetPriority(IR_EXTI_IRQn,1,1);HAL_NVIC_EnableIRQ(IR_EXTI_IRQn);IR_TIMx_Init(249,71);}//Tout=(arr+1)*(psc+1)/sck//设计Tout=250us,psc=71,arr=249,sck=72MHzvoidIR_TIMx_Init(uint16_tarr,uint16_tpsc){ir_timx.Instance=IR_TIMx;ir_=psc;ir_=TIM_COUNTERMODE_UP;ir_=arr;ir_=TIM_CLOCKDIVISION_DIV1;ir_=TIM_AUTORELOAD_PRELOAD_DISABLE;IR_TIMx_RCC_CLK_ENABLE();HAL_NVIC_SetPriority(IR_TIMx_IRQn,1,0);HAL_NVIC_EnableIRQ(IR_TIMx_IRQn);HAL_TIM_Base_Init(&ir_timx);__HAL_TIM_CLEAR_FLAG(&ir_timx,TIM_FLAG_UPDATE);HAL_TIM_Base_Start_IT(&ir_timx);}//定时器中断服务函数voidIR_TIMx_IRQHandler(void){HAL_TIM_IRQHandler(&ir_timx);}//定时器更新中断回调函数voidHAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim) {if(htim->Instance==IR_TIMx){cnt++;}}//外部中断服务函数//根据霖锋老师89C51篇关于红外接收的程序修改voidIR_EXTI_IRQHandler(void){staticuint8_tuCounter;staticuint8_tStartflag=0;//开始接收标志HAL_GPIO_EXTI_IRQHandler(IR_GPIO_PIN);if(!Startflag){Startflag=1;cnt=0;}elseif(Startflag){if((cnt<60)&&(cnt>40))//引导码检测(9+4.5)/0.25=54uCounter=0;irdata[uCounter]=cnt;//cnt存储了相邻两个下降沿的时间差cnt=0;uCounter++;if(uCounter==33)//接收完成{uCounter=0;IR_OK=1;Startflag=0;}}}//获得命令码//成功返回命令码,错误返回0uint8_tIR_GET_CODE(void){uint8_ti,j,k=1,value=0,ir_code[4];//ir_code[0]:用户码ir_code[1]:用户码反码ir_code[2]:命令码ir_code[3]:命令码反码if(IR_OK!=1)return0;else{IR_OK=0;for(i=0;i<4;i++){for(j=0;j<8;j++){value>>=1;//注释部分对应低位在前的情况if(irdata[k]>6) //0:1.125/0.25=4.5<6,1:2.25/0.125=9>6value|=0x80;k++;}ir_code[i]=value;}k=1;value=0;if(ir_code[2]+ir_code[3]==0xFF)//数据校验{returnir_code[2]; //返回的是命令码}elsereturn0;}}.h文件#ifndef_BSP_IR_H#define_BSP_IR_H#include"stm32f1xx_hal.h"//用PG15的EXTI中断来检测红外引脚电平跳变,基本定时器7用来计时//可根据自己需要修改#defineIR_TIMxTIM7#defineIR_TIMx_RCC_CLK_ENABLE()__HAL_RCC_TIM7_CLK_ENABLE()#defineIR_TIMx_IRQnTIM7_IRQn#defineIR_TIMx_IRQHandlerTIM7_IRQHandler#defineIR_GPIO_CLK_ENABLE __HAL_RCC_GPIOG_CLK_ENABLE()#defineIR_GPIO_PORTGPIOG#defineIR_GPIO_PINGPIO_PIN_15#defineIR_EXTI_IRQnEXTI15_10_IRQn#defineIR_EXTI_IRQHandlerEXTI15_10_IRQHandler//遥控器上按键的控制码,十进制,根据自己遥控器上的按键修改#definePOWER162#defineMODE98#defineSPEAK226#definePLAY34#definePREV2#defineNEXT194#defineEQ224#defineVOL_PLUS144#defineVOL_REDU168#defineRPT152#defineU_SD176#defineZERO104#defineONE48#defineTWO24#defineTHREE122#defineFOUR16#defineFIVE56#defineSIX90#defineSEVEN66#defineEIGHT74#defineNINE82voidIR_Init(void);voidIR_TIMx_Init(uint16_tarr,uint16_tpsc);uint8_tIR_GET_CODE(void);#endifMain函数中直接调用IR_GET_CODE函数即可获得命令码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32单片机对红外接收系统的设计
4.23.1概述
人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。
其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。
比紫光光波长更短的光叫紫外线,比红光波长更长的光叫红外线最广义地来说,传感器是一种能把物理量或化学量转变成便于利用的电信号的器件,红外传感器就是其中的一种。
随着现代科学技术的发展,红外线传感器的应用已经非常广泛。
4.23.1.1红外接收头工作原理
红外接收头一般是接收、放大、解调一体头,一般红外信号经接收头解调后,数据“0”和“1”的区别通常体现在高低电平的时间长短或信号周期上,单片机解码时,通常将接收头输出脚连接到单片机的外部中断,结合定时器判断外部中断间隔的时间从而获取数据。
重点是找到数据“0”与“1”间的波形差别。
3条腿的红外接收头一般是接收、放大、解调一体化,接收头输出的是解调后的数据信号,单片机里面需要相应的读取程序。
具体详细的使用参数和时序请参考官方技术手册。
4.23.1.2在STM32实验系统中红外系统的组成
在我们是试验中使用的是红外线遥控器。
因为红外线遥控器已经被广泛的使用在各类型的家电产品上,它的出现给使用电器提供了很多的便利。
红外线系统一般由红外发射装置和红外接收设备两大部分组成。
红外发射装置又可由键盘电路、红外编码芯片、电源和红外发射电路组成。
红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成。
通常为了使信号更好的被发射端发送出去,经常会将二进制数据信号调制成脉冲信号,通过红外发射管发射。
常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制(PPM)两种方法。
1、常用的红外发光二极管其外形和发光二极管LED相似,发出红外光。
管压降约1.4v,工作电流一般小于20mA。
为了适应不同的工作电压,回路中常常串有限流电阻。
一些彩电红外遥控器,其红外发光管的工作脉冲占空比约为1/3-1/4;一些电器产品红外遥。