【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块

news/2024/12/29 9:54:42/

目录

一、光敏/热释电模块

(1)资源介绍

        🔅原理图

        🔅AS312

        🌙简介

        🌙特性

        🔅LDR

(2)STM32CubeMX 软件配置

(3)代码编写

(4)实验现象

二、光敏/热释电模块接口函数封装

三、踩坑日记

(1)引脚配置     

(2)光敏电阻


一、光敏/热释电模块

(1)资源介绍

        🔅原理图

        蓝桥杯物联网竞赛实训平台提供了一个拓展接口 CN2,所有拓展模块均可直接安装在 Lora 终端上使用;

图1        拓展接口

        光敏/热释电模块电路原理图如下所示:

图2        光敏/热释电模块电路原理图

        通过两张电路图连接可知,引脚资源配置情况为:

表1 引脚资源配置情况
PHOTOMCU
AIN(光敏)PB1
AS312(热释电)PB6

        🔅AS312

(以下资料来源于C90465_热释电红外线传感器手册)

        🌙简介

        该系列产品是将数字智能控制电路与人体探测敏感元都集成在电磁屏蔽罩内的热释电红外传感器。人体探测敏感元将感应到的人体移动信号通过甚高阻抗差分输入电路耦合到数字智能集成电路芯片上,数字智能集成电路将信号转化成15位ADC数字信号,当PIR信号超过选定的数字阈值时就会有REL电平输出时间参数通过电阻设置,用以控制用电器持续工作的延时时间。所有的信号处理都在芯片上完成。

        🌙特性
  • 数字信号处理;
  • 二路差分甚高阻抗传感器输入;
  • 特别内置红外传感器的二阶巴特沃斯带通滤波器,屏蔽其他频率的输入干扰;
  • 电源抑制比高,抗射频干扰;
  • 具有定时时间、灵敏度施密特REL输出;
  • 低电压、低功耗,启动后瞬间工作;

        ⭐当传感器检测到人体活动时,若信号超过阈值,会在REL端输出高电平,反之输出低电平;

        🔅LDR

        光敏电阻是一种基于内光电效应的半导体元件,它的阻值依赖于入射光强的变化。入射光强增加,光敏电阻的阻值减小,入射光减弱,光敏电阻阻值增大。

        在电路中的体现是:

  • 当入射光强增加时,光敏电阻阻值减小,AIN端测得的电压减小
  • 当入射光强减弱时,光敏电阻阻值增大,AIN端测得的电压增大

(2)STM32CubeMX 软件配置


🔅“工程建立、时钟树配置、Debug 串行线配置、代码生成配置” 在下文中有讲解,这里不再赘述❗️

蓝桥杯——物联网设计与开发】基础模块1- GPIO输出icon-default.png?t=O83Ahttps://blog.csdn.net/m0_63116406/article/details/135604705?spm=1001.2014.3001.5502

1️⃣点击引脚 PB6 → 选择 GPIO_Input 模式;

     点击"System Core" → 选择"GPIO"一栏 → 点击引脚"PB6" → 将"GPIO Pull-up/Pull-down"一栏修改为"Pull-up";(即设置PB6引脚为带上拉电阻的输入模式)

图3        引脚PB6配置



2️⃣配置引脚PC15,默认输出高电平;

3️⃣配置引脚PB1,为AD采样通道9;

4️⃣配置OLED

5️⃣生成代码即可;

(3)代码编写

🟢️main 函数

/* USER CODE BEGIN PV */
uint8_t puc_oled[17];    // OLED显示缓存区
uint16_t pui_adc;        // AD采集值
uint8_t state_ir;        // 热释电状态变量
/* USER CODE END PV *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_ADC_Init();MX_I2C3_Init();/* USER CODE BEGIN 2 */OLED_Init();/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){/* 光敏采集 */HAL_ADC_Start(&hadc);if(HAL_ADC_PollForConversion(&hadc, 10) == HAL_OK)pui_adc = HAL_ADC_GetValue(&hadc);pui_adc = pui_adc * 330 / 4095;/* 热释电采集 */if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6) == 1){state_ir = 1;HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET);	// 检测到人体活动LD5亮}else{state_ir = 0;HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);	// 未检测到人体活动LD5灭}/* OLED 显示 */sprintf((char*)puc_oled, "Light:%.2fV", pui_adc / 100.0);OLED_ShowString(0, puc_oled);if(state_ir)sprintf((char*)puc_oled, "      OPEN      ");elsesprintf((char*)puc_oled, "      OFF       ");OLED_ShowString(2, puc_oled);HAL_Delay(200);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

(4)实验现象

  • 用手捂住光敏电阻时,测得的电压增加;放开手后,测得的电压减小;
  • 人体活动时,OLED屏上显示"OPEN",LD5亮;人体静止时,OLED屏上显示"OFF",LD5灭;

二、光敏/热释电模块接口函数封装

        该模块还没有在比赛题中出现过,下面是对该模块应用场景的一个考点推断。

        模拟场景:当室内处于黑暗状态时,若有人经过,则自动打开灯光。

        解析:使用LDR实时测环境光强,假定1.25V以上为黑暗场景,其他为正常场景。当处于黑暗场景时,启动AS312扫描人体活动,反之屏蔽AS312的所有信号。

🟡️功能函数

void Task_Colt(void)
{/* 200ms 进入一次 */if(cnt_colt < 200)	return;cnt_colt = 0;/* 先进行环境光采集 */ADC_Read(&pui_adc);pui_adc = pui_adc * 330 / 4095;/* 环境判断 */if(pui_adc > 125)state_dark = 1;	// 黑暗环境elsestate_dark = 0;	// 正常环境/* 如果处于黑暗环境,判别AS312的信号 */if(state_dark){if(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_6) == 1){state_ir = 1;HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_RESET);	// 检测到人体活动,开灯}else{state_ir = 0;	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);	// 未检测到人体活动,灭灯}}/* 处于正常环境,屏蔽AS312的信号 */else{state_ir = 0;HAL_GPIO_WritePin(GPIOC, GPIO_PIN_15, GPIO_PIN_SET);}
}

三、踩坑日记

(1)引脚配置     

        🔅引脚PB6配置为输入模式,带上拉电阻;(此为官方例程所给)

        🔅实际测试,带下拉电阻的效果会更好;

(2)光敏电阻

        🔅光敏电阻:光强越大,电阻越小;

        🔅在该模块的电路上体现是:光强越强,电阻越小,那么采集到的电压趋近于地即0V;光强越暗,电阻越大,分压越大;


http://www.ppmy.cn/news/1559038.html

相关文章

Docker--Bitnami/mysql

Bitnami package for MySQL What is MySQL? MySQL is a fast, reliable, scalable, and easy to use open source relational database system. Designed to handle mission-critical, heavy-load production applications. Overview of MySQL⁠ Trademarks: This software l…

梳理你的思路(从OOP到架构设计)_设计模式Template Method模式

目录 1、Template Method模式 2、范例&#xff1a; Android TM模式 3、基于TM模式的扩充&#xff1a;以游戏的绘图循环(Game Loop)为例 4、Android中处处可见TM模型的应用 1、Template Method模式 在前面各节里&#xff0c;我们介绍过&#xff0c;控制反转(IoC:Inversion…

`we_chat_union_id IS NOT NULL` 和 `we_chat_union_id != ‘‘` 这两个条件之间的区别

文章目录 1、什么是空字符串&#xff1f;2、两个引号之间加上空格 好的&#xff0c;我们来详细解释一下 we_chat_union_id IS NOT NULL 和 we_chat_union_id ! 这两个条件之间的区别&#xff0c;以及它们在 SQL 查询中的作用&#xff1a; 1. we_chat_union_id IS NOT NULL 含…

设计模式——装饰模式

文章目录 1.定义2. 结构组成3. 组合模式结构4. 示例代码5. 模式优势6. 应用场景 1.定义 装饰模式就像是给你的对象穿上不同的 “时尚服装”&#xff0c;在程序运行时&#xff0c;你可以随意地给对象搭配各种 “服装” 来增加新的功能&#xff0c;而且完全不用对对象本身的 “身…

PyAudio库基本知识详解——为自制PCM音频播放器做准备

前言 结合前段时间我们做的音频编解码器&#xff0c;这样我们就可以将获取到的ADPCM数据&#xff0c;转换成PCM数据&#xff0c;然后播放出来&#xff0c;得到一个完整的音频数据&#xff0c;因此&#xff0c;接下来几篇文章中&#xff0c;我们想做一个播放PCM格式的音频播放器…

嵌入式硬件面试题

1、请问什么是通孔、盲孔和埋孔&#xff1f;孔径多大可以做机械孔&#xff0c;孔径多小必须做激光孔&#xff1f;请问激光微型孔可以直接打在元件焊盘上吗&#xff0c;为什么&#xff1f; 通孔是贯穿整个PCB的过孔&#xff0c;盲孔是从PCB表层连接到内层的过孔&#xff0c;埋孔…

路由器RIP动态路由配置

路由器RIP动态路由配置 目录 实验目的 实验背景 技术原理 配置RIP动态路由的一般步骤 学习任务 实验设备 实验拓扑 实验步骤 实验目的 掌握RIP协议的配置方法&#xff1a;掌握查看通过动态路由协议RIP学习产生的路由&#xff1b;熟悉广域网线缆的链接方式&#xff1b;…

xdoj 分别计算奇数和偶数之和

问题描述 接受用户输入的正整数 n&#xff0c;用程序实现 1 到正整数 n 之间的奇数和偶数之和。 输入说明 正整数 n 输出说明 分别输出 1 到 n 之间的奇数和偶数之和&#xff08;第一个数为奇数之和&#xff0c;第二个数为偶数之和&#xff0c;两个 数之间用空格间隔&…