STM32单片机对红外接收系统的设计

发布者:epsilon15最新更新时间:2024-05-13 来源: elecfans关键字: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;一些电器产品红外遥控器,其占空比是1/10。减小脉冲占空比还可使小功率红外发光二极管的发射距离大大增加。常见的红外发光二极管,其功率分为小功率(1mW-10mW)、率(20mW-50mW)和大功率(50mW-100mW以上)三大类。红外发光二极管由红外辐射效率高的材料(常用砷化镓GaAs)制成PN结,外加正向偏压向PN结注入电流激发红外光。光谱功率分布为中心波长830~950nm,半峰带宽约40nm左右。

2、红外接收头的种类很多,如右图所示。引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制载波的不同应选用相应解调频率的接收头。具体的选型要参考厂家选型手册。

红外接收头内部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源干扰。

4.23.1.3红外发光二极管简易测试

高亮度LED、红外LED、光电三极管外形是一样的,非常容易搞混,因此需要通过简易测试将它们区分出来。用指针式万用表(1k挡)黑表笔接阳极、红表笔接阴极(应采用带夹子的表笔)测得正向电阻在20~40kΩ;黑表笔接阴极、红表笔接阳极测得反向电阻大于500kΩ以上者是红外发光二极管。透明树脂封装的可用目测法:有圆形浅盘的极是负极。若正向电阻在200kΩ以上(或指针微动),反向电阻接近∞者是普通发光二极管。若黑表笔接短脚,红表笔接长脚,遮住光线时电阻大于200kΩ,有光照射时阻值随光线强弱而变化(光线强时,电阻小),这是光电三极管。

4.23.1.4红外遥控常用的载波频率

红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz陶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9kHz≈38kHz。也有一些遥控系统采用36kHz、40kHz、56kHz等,一般由发射端晶振的振荡频率来决定。红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作;编解码容易,可进行多路遥控。4.23.2数据格式熟悉数据格式是编程的基础。下面我们着重说明红外发射和接收的数据格式。在同一个遥控电路中通常要使用实现不同的遥控功能或区分不同的机器类型,这样就要求信号按一定的编码传送,编码则会由编码芯片或电路完成。对应于编码芯片通常会有相配对的解码芯片或包含解码模块的应用芯片。在实际的产品设计或业余电子制作中,编码芯片并一定能完成我们要求的功能,这时我们就需要了解所使用的编码芯片到底是如何编码的。只有知道编码方式,我们才可以使用单片机或数字电路去定制解码方案。l载波波形使用455KHz晶体,经内部分频电路,信号被调制在37.91KHz,占空比为3分之1。调制频率(晶振使用455KHz时)fCAR=1/Tc=fOSC/12≈38KHz(fOSC是晶振频率)占空比=T1/Tc=1/3

数据格式

数据格式包括了引导码、用户码、数据码和数据码反码,编码总占32位。数据反码是数据码反相后的编码,编码时可用于对数据的纠错。注意:第二段的用户码也可以在遥控应用电路中被设置成第一段用户码的反码。

使用455KHz晶振时各代码所占的时间

STM32单片机对红外接收系统的设计

位定义用户码或数据码中的每一个位可以是位‘1’,也可以是位‘0’。区分‘0’和‘1’是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式,英文简写PPM。


按键输出波形uPD6121G按键输出有二种方式:一种是每次按键都输出完整的一帧数据;另一种是按下相同的按键后每发送完整的一帧数据后,再发送重复码,再到按键被松开。重复码

STM32单片机对红外接收系统的设计

单一按键波形

STM32单片机对红外接收系统的设计

连续按键波形

STM32单片机对红外接收系统的设计

4.23.3实验目的

通过我们选用的红外遥控器发射键盘值数据码,大黄蜂实验板上集成了VS838一体接收头接收遥控器发来的键盘值编码,经过CPU处理后送至USB-RS232串口输出至计算机显示。

4.23.4硬件设计

利用实验板上集成的VS838红外接收电路,通过程序设计把接收到的红外线键盘编码打印输出到计算机显示。硬件设计见图4.23.1红外线发送原理图;图4.23.2红外线接收原理图。

STM32单片机对红外接收系统的设计

红外线发送控制是CPU的第59管脚直接控制,控制三极管Q6的通断频率来使红外发光二极管(IrDA)发光。

STM32单片机对红外接收系统的设计

红外线接收控制与CPU的第2管脚相连接,接收到的红外编码直接发送到CPU,CPU通过程序解码。

4.23.5软件设计

1、main.c文件

/**************************************************************************************************

#include “timer.h”

#include “IR1.h”

void RCC_Configuration(void);

void GPIO_Normal_Config(void);

extern u8 gdata;//LED的状态0/1//只能声明,不能定义

int main(void) {

SystemInit();//初始化系统,使得系统频率为72M

systick_init();//配置Systick,使得1ms产生中断

RCC_Configuration();//GPIO使能

GPIO_Normal_Config();//GPIO初始化

IR_Init();//红外初始化

while(1) {

switch(gdata) {

case 1:

delay_ms(10);

GPIO_SetBits(GPIOA,GPIO_Pin_8);//输出高电平红外信号指

break;

case 0:

delay_ms(10);

GPIO_ResetBits(GPIOA,GPIO_Pin_8);//输出低电平

break;

}

}

}

void RCC_Configuration(void) {

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE);

}


关键字:STM32  单片机 引用地址:STM32单片机对红外接收系统的设计

上一篇:STM32单片机的断言机制函数assert_param解析
下一篇:STM32单片机的ADS1115通过模拟I2C驱动

推荐阅读最新更新时间:2026-03-23 15:33

STM32单片机的内存分布详解(1)
STM32具有和PC机类似的结构组成。那么我们平时听到的RAM和ROM就相当于PC的内存条和硬盘,当然了PC的硬盘和单片机的ROM也并不是所谓的只读,只不过以前的技术原因很难做到多次读写,因为最初的存储器是纸带、熔丝或者其他一次性存储器,因此只能读取,也就是ROM,当然那时候也不需要持续的修改。随着技术的革新,这些最初的ROM慢慢的增大内存、增加写功能、提高读写速度。而ROM的叫法也一直延续下来。 扩展一下,为什么ROM也可以写,不用ROM当RAM呢?因为ROM还是太慢了,读取可还行(比如F7、H7就支持QSPI运行程序),写就是肉眼可见级别的延迟了。所以RAM这种需要高速读写的还是让SRAM、SDRAM、DDR等
[单片机]
STM32单片机入门指南:第1-2节课程概览与STM32简介
前言    本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始32单片机的学习之路。    欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习32单片机了,就跟着B站上的江协科技开始学习了.    在这里会记录下江协科技32单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!    另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答! 开发板说明    本人采用的是慧净的开发板,因为这个板子是我N年前
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font>入门指南:第1-2节课程概览与<font color='red'>STM32</font>简介
stm32有哪些单片机?十大系列帮您选择合适的微控制器
伴随着科技的飞速发展,嵌入式系统已经深入到我们日常生活的方方面面。在这个领域中,ST公司推出的STM32系列微控制器以其卓越性能、低功耗和成本优势赢得了广泛好评。颖特新将详细介绍STM32系列单片机的各个产品线及其特点,帮助您更好地理解并选择合适的微控制器。 STM32单片机 1.STM32F0系列——入门级微控制器之选 STM32F0系列单片机基于ARM Cortex-M0内核,提供20-64MHz主频范围,具有良好的实时性能和低功耗。该系列产品适用于简单的嵌入式应用,如家居自动化、工业传感器等。STM32F0兼具高性价比与功能强大,是初学者入门嵌入式开发的理想选择。 2.STM32F1系列——经典中坚力量 STM32F1系
[单片机]
STM32单片机PWM功能详解
PWM(Pulse Width Modulation)脉冲宽度调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。它是把每一脉冲宽度均相等的脉冲列作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制电流。例如输出占空比为50%,频率为10Hz的脉冲,高电平为3.3V.则其输出的模拟效果相当于输出一个1.65V的高电平。脉冲调制有两个重要的参数,第一个就是输出频率,频率越高,则模拟的效果越好。第二个就是占空比。占空比就是改变输出模拟效果的电压大小。占空比越大则模拟出的电压越大。 PWM频率 是
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font>PWM功能详解
STM32单片机系列驱动红外循迹小车的实现与实践
前言: 这是使用stm32系列单片机使用hal库开发的一个红外循迹小车,用于理解stm32一些基础外设的使用如PGIO,定时器中断,pwm波生成等。使用的外设模块有“两块tb6612直流电机驱动模块”“两块tcrt5000红外循迹模块” tb6612直流电机驱动模块 tb6612直流电机驱动模块的功能 双驱动,也就是可以驱动两个电机。 STBY:接单片机的IO口,清零,电机全部停止。 置1,通过AIN1 AIN2,BIN1,BIN2来控制正反转 VM 接12V电源 VCC 接5V电源 GND 接地 PWMA 接单片机的PWM口 TB6612FNG每通道输出最高1A的连续驱动电流,启动峰值电流达2A/3A(连续脉冲/
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font>系列驱动红外循迹小车的实现与实践
STM32单片机开发入门[一]——开发软件安装与硬件准备
前言 本文将介绍STM32开发前常用的软硬件以及使用方式,帮助萌新在入门时找到一个学习的方向 一、软件部分 1.Keil MDK v5安装 Keil MDK v5是一个主流的嵌入式开发软件,包括了烧录调试等功能,但是代码补全方面功能稍弱,并没有vscode等编辑器或IDE那么智能,所以推荐将这个IDE作为一个单片机的烧录与调试软件使用,写代码时使用vscode打开项目文件夹,就可以愉快使用自动补全中的功能来敲代码了,下面介绍 Keil MDK v5的安装方式: 1.打开Keil官网的产品下载页面并点击MDK-arm: 2.填写个人信息并点击Submit(可以瞎写) 3.点击链接下载安装包 4.打开安装包,
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font>开发入门[一]——开发软件安装与硬件准备
STM32单片机开发入门[二]——点亮板载LED灯
本文将为你介绍如何使用CubeMX配置并创建一个项目并将写一个亮灯程序,使用Keil烧录进开发板中运行 一、使用CubeMX创建一个新工程 1.找到自己开发型号对应的选项并选中 2.设置Pinout的RCC中的High Speed Clock为Crystal/Ceramic Resonator 这一步的目的是选中我们所需的时钟源,一般都选为Crystal, 3.设置SYS中的Debug为Serial Wire 此处的选择为的是使用SWD调试,相比于使用JTAG,SWD所需的接口资源更少且效果一样 4.在屏幕右侧的接口图找到自己的LED灯对应的芯片引脚,并设置为GPIO_output模式输出 如果不知
[单片机]
<font color='red'>STM32</font><font color='red'>单片机</font>开发入门[二]——点亮板载LED灯
stm32单片机在Keil环境下定义的变量都存储到哪去了?(以STM32f1系列为例)
stm32f1系列单片机,在keil5环境下编译后显示四个储存区域,分别是 Code, RO-data,RW-data,ZI-data Code为程序代码部分 RO-data 表示 程序定义的常量const RW-data 表示 已初始化的全局变量 ZI-data 表示 未初始化的全局变量 储存区域如下: Code, RO-data,RW-data ............flash RW-data, ZIdata...................RAM 不过初始化时RW-data从flash拷贝到RAM 所以相当于Code, RO-data占用flash的空间;RW-data, ZIdata占用RAM的空间。 如图所示的是
[单片机]
<font color='red'>stm32</font><font color='red'>单片机</font>在Keil环境下定义的变量都存储到哪去了?(以STM32f1系列为例)
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved