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

目录

一、光敏/热释电模块

(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.mzph.cn/bicheng/65056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Escalate_Linux靶机

Escalate_Linux靶机 前言&#xff1a;集合了多种liunx提权方法的靶场&#xff0c;通过该靶场可以简单的了解liunx提权方法 1&#xff0c;扫描一下端口 80/tcp open http 111/tcp open rpc 2049/udp nfs要知道对方的共享才能挂载 139/445 Samba SMB是一个协议名&#xff0c…

PPO算法基础(一)

PPO近端策略优化算法 我们今天还是主要来理解PPO算法的数学原理。PPO是一种策略梯度方法&#xff0c;简单的策略梯度对每个样本&#xff08;或者一组样本&#xff09;进行一次梯度更新&#xff0c;对单个样本执行多个梯度步骤会导致一些问题&#xff0c;因为梯度偏差太大&…

[机器学习]sklearn入门指南(1)

简介 scikit-learn&#xff08;简称sklearn&#xff09;是一个开源的Python机器学习库&#xff0c;它提供了简单而高效的工具用于数据挖掘和数据分析&#xff0c;并且拥有一个活跃的开发社区。它建立在NumPy、SciPy和matplotlib这些科学计算库之上&#xff0c;旨在提供一致且可…

贪心算法(三)

目录 一、k次取反后最大化的数组和 二、优势洗牌 三、最长回文串 四、增减字符串匹配 一、k次取反后最大化的数组和 k次取反后最大化的数组和 贪心策略&#xff1a; 解题代码&#xff1a; class Solution { public:int largestSumAfterKNegations(vector<int>&am…

文本的AIGC率检测原理

背景 你可能在学生群里或者视频中看过这样的消息&#xff1a;“我们学校要求论文AI率不能超过30%&#xff01;”、“你们学校查AI率吗&#xff1f;”之类的&#xff0c;这些消息到底是真是假&#xff1f; 随着人工智能的快速发展和广泛应用&#xff0c;不论是工作中还是学生学…

Linux -- 从抢票逻辑理解线程互斥

目录 抢票逻辑代码&#xff1a; thread.hpp thread.cc 运行结果&#xff1a; 为什么票会抢为负数&#xff1f; 概念前言 临界资源 临界区 原子性 数据不一致 为什么数据不一致&#xff1f; 互斥 概念 pthread_mutex_init&#xff08;初始化互斥锁&#xff09; p…

浅谈目前我开发的前端项目用到的设计模式

浅谈目前我开发的前端项目用到的设计模式 前言 设计模式很多&#xff0c;看到一个需求&#xff0c;项目&#xff0c;我们去开发的时候&#xff0c;肯定是做一个整体的设计进行开发&#xff0c;而在这次我项目中&#xff0c;我也做了一个整体的设计&#xff0c;为什么要设计&a…

ubuntu笔记

1.系统下载与虚拟机设置 系统下载https://cn.ubuntu.comhttps://releases.ubuntu.com 虚拟机设置: 桥接模式 在桥接模式下, 虚拟出来的操作系统就像是局域网中的一台独立的主机, 它可以访问网内任何一台机器主机网卡和虚拟网卡的IP地址处于同一个网段, 子网掩码、网关、DNS等…

开放世界目标检测 Grounding DINO

开放世界目标检测 Grounding DINO flyfish Grounding DINO 是一种开创性的开放集对象检测器&#xff0c;它通过结合基于Transformer的检测器DINO与基于文本描述的预训练技术&#xff0c;实现了可以根据人类输入&#xff08;如类别名称或指代表达&#xff09;检测任意对象的功…

【基础篇】1. JasperSoft Studio编辑器与报表属性介绍

编辑器介绍 Jaspersoft Studio有一个多选项卡编辑器&#xff0c;其中包括三个标签&#xff1a;设计&#xff0c;源代码和预览。 Design&#xff1a;报表设计页面&#xff0c;可以图形化拖拉组件设计报表&#xff0c;打开报表文件的主页面Source&#xff1a;源代码页码&#xff…

电子应用设计方案71:智能客厅窗帘系统设计

智能客厅窗帘系统设计 一、引言 智能客厅窗帘系统为用户提供了更加便捷、舒适和个性化的窗帘控制方式&#xff0c;提升了家居的智能化水平和生活品质。 二、系统概述 1. 系统目标 - 实现客厅窗帘的自动开合控制&#xff0c;可通过多种方式操作。 - 能够根据时间、光照强度和用…

免杀对抗—Behinder魔改流量特征去除

前言 在现实的攻防中&#xff0c;往往webshell要比主机后门要用得多&#xff0c;因为我们首先要突破的目标是网站嘛&#xff0c;而且waf也往往会更注重webshell的检测。webshell的免杀分为两个&#xff0c;一是静态查杀&#xff0c;二是流量查杀。静态查杀不用多说了&#xff…

高阶:基于Python paddleocr库 提取pdf 文档高亮显示的内容

预览 第1步&#xff1a;理解基本结构和导入必要的库 # 1. 首先导入需要的库 import os # 用于处理文件和路径 import cv2 # 用于图像处理 import numpy as np # 用于数值计算 from paddleocr import PaddleOCR # 用于文字识别 from pdf2image import convert_from_path #…

如何查看pad的console输出,以便我们更好的进行调试,查看并了解实际可能的问题。

1、以下是baidu AI回复&#xff1a; 2、说明&#xff1a; 1&#xff09;如果小伙伴们经常做android开发的话&#xff0c;这个不陌生&#xff0c;因为调试都是要开启这个开发者模式。并启用USB调试模式。 2&#xff09;需要连上USB线&#xff0c;有的时候会忘记&#xff0c;然…

GitHub 桌面版配置 |可视化界面进行上传到远程仓库 | gitLab 配置【把密码存在本地服务器】

&#x1f947; 版权: 本文由【墨理学AI】原创首发、各位读者大大、敬请查阅、感谢三连 &#x1f389; 声明: 作为全网 AI 领域 干货最多的博主之一&#xff0c;❤️ 不负光阴不负卿 ❤️ 文章目录 桌面版安装包下载clone 仓库操作如下GitLab 配置不再重复输入账户和密码的两个方…

智慧社区电子商务系统:实现社区资源的数字化管理

2.1vue技术 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。 [5] 与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项…

【软件项目管理】-期末突击

区别常见的项目和活动 项目和活动的区别&#xff1a; 定义&#xff1a; 项目&#xff1a;为创造独特成果而进行的临时性工作。活动&#xff1a;日常运营中的重复性工作。 目标&#xff1a; 项目&#xff1a;实现特定成果&#xff0c;一次性。活动&#xff1a;维持日常运作&am…

【C++】ceil 和 floor 函数的实现与分析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;ceil 和 floor 函数的基础介绍1. ceil 函数定义与功能示例代码输出结果功能分析使用场景 2. floor 函数定义与功能示例代码输出结果功能分析使用场景 &#x1f4af;自行实现…

合合信息:探索视觉内容安全新前沿

2024年12月13日-15日&#xff0c;中国图象图形学学会在杭州召开。大会期间&#xff0c;来自合合信息的图像算法研发总监郭丰俊进行了主题为“视觉内容安全技术的前沿进展与应用”的演讲&#xff0c;介绍了视觉内容安全问题&#xff0c;并总结了现今的技术发展&#xff0c;对我很…

【JetPack】Navigation知识点总结

Navigation的主要元素&#xff1a; 1、Navigation Graph&#xff1a; 一种新的XML资源文件,包含应用程序所有的页面&#xff0c;以及页面间的关系。 <?xml version"1.0" encoding"utf-8"?> <navigation xmlns:android"http://schemas.a…