当前位置: 首页 > news >正文

基于STM32的光照测量报警Proteus仿真设计+程序设计+设计报告+讲解视频

基于STM32的光照测量报警仿真设计

  • 1.**主要功能**
  • **2.仿真设计**
  • **3.程序设计**
  • **4.设计报告**
  • **5.下载链接**

基于STM32的光照测量报警仿真设计

(Proteus仿真+程序设计+设计报告+讲解视频

仿真图Proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0111

1.主要功能

本次嵌入式课程设计综合实验的内容为基于STM32单片机的光照强度采集报警系统。完成LCD1602液晶显示、光敏电阻、蜂鸣器控制等多项任务。

1、以STM32为最小系统电路进行连接,用LCD1602液晶显示屏显示光照强度和光照阈值。

2、用光敏电阻进行光照强度测量。

3、可以通过按键可以设置光照阈值。设置按键进入设置模式/退出设置模式,按键加减调整阈值。

4、当光强超过设置的阈值时有声光报警,对应报警指示灯点亮,蜂鸣器报警。

5、默认光照强度100Lux。

STM32单片机 LCD1602 按键 光照传感器

资料下载链接:

通过网盘分享的文件:KEY_C0111

链接: https://pan.baidu.com/s/1AMzJsXzeY2ZGYnVBwPEJsQ?pwd=btwv

提取码: btwv

2.仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

img

开始仿真后LCD1602液晶第一行显示LIGHT光照强度=70Lux,第二行显示光照强度报警值,。

调整光照为90Lux,高于阈值,蜂鸣器报警。

img

3.程序设计

程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL版本编写的,有stm32cubemx配置文件。有注释可以结合讲解视频理解。

img

int main(void)
{/* USER CODE BEGIN 1 */ADC_ChannelConfTypeDef sConfig = {0};  //建立sConfig结构体char str[20];  //字符串的存放数组uint32_t adcv; //存放ADC转换结果set_flag = 0;/* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */sConfig.Rank = ADC_REGULAR_RANK_1;sConfig.SamplingTime = ADC_SAMPLETIME_1CYCLE_5;   //采样周期为1.5个周期/* 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_ADC1_Init();MX_USART1_UART_Init();MX_TIM3_Init();/* USER CODE BEGIN 2 */LCD_Init();  //初始化LCD1602HAL_TIM_Base_Start_IT(&htim3);//开启定时器3//打开串口1接收中断,接收数据存入dat数组,数组长度为1HAL_UART_Receive_IT(&huart1, dat, 1);
//	LCD_ShowString(0,0,dis_str);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){sConfig.Channel = ADC_CHANNEL_1;   //选择通道1HAL_ADC_ConfigChannel(&hadc1, &sConfig);  //选择ADC1的通道道1HAL_ADC_Start(&hadc1);										//启动ADC1HAL_ADC_PollForConversion(&hadc1, 10);		//等待ADC1转换结束,超时设定为10msadcv = HAL_ADC_GetValue(&hadc1);					//读取ADC1的转换结果//		temp=(float)adcv*(3.3/4095)*100;		light_temp=light_intensity(adcv);	sprintf(str,"LIGHT=%4.0fLux       ",light_temp);
//		LCD_ShowString(0,0,"MV:");	LCD_ShowString(0,0,str);	HAL_UART_Transmit(&huart1, (uint8_t *)str, 20, 10);		 //串口1发送字符串,数组长度为5,超时10msHAL_UART_Transmit(&huart1, (uint8_t *)&"\n\r", 2, 10); //串口1发送字符串,数组长度为2,超时10ms	if(set_flag){//设置模式sprintf(str,"%4.0fLux",warming_val);LCD_ShowString(1,0,"SET:");	LCD_ShowString(1,4,str);}else{sprintf(str,"%4.0fLux",warming_val);LCD_ShowString(1,0,"ALM:");	LCD_ShowString(1,4,str);			}HAL_UART_Transmit(&huart1, (uint8_t *)&"ALM=", 3, 10);  //串口1发送字符串,数组长度为12,超时10msHAL_UART_Transmit(&huart1, (uint8_t *)str, 8, 10);								//串口1发送字符串,数组长度为5,超时10msHAL_UART_Transmit(&huart1, (uint8_t *)&"\n\r", 2, 10);						//串口1发送字符串,数组长度为2,超时10ms	if(light_temp>warming_val){//如果超过报警值
//			HAL_GPIO_WritePin(GPIOA,BEEP_Pin, GPIO_PIN_RESET);//BEEP引脚拉低HAL_GPIO_WritePin(GPIOA,LED0_Pin, GPIO_PIN_SET);}else{
//			HAL_GPIO_WritePin(GPIOA,BEEP_Pin, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOA,LED0_Pin, GPIO_PIN_RESET);//BEEP引脚拉低}HAL_ADC_Stop(&hadc1);											//停止ADC1HAL_Delay(300);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

img

程序流程图

img

4.设计报告

9126字设计报告,内容包括设计目标、硬件设计、软件设计、结论等。

img

随着物联网技术的快速发展,嵌入式系统在环境监测领域的应用日益广泛。光照强度作为环境参数之一,在农业大棚、智能仓储、工业照明等场景中具有重要监测价值。传统光照监测设备功能单一、交互性差,难以满足实时显示与动态调控的需求。本设计以STM32单片机为核心,结合传感器技术与人机交互模块,构建一套具备阈值报警功能的光照采集系统,通过Proteus仿真验证实现低成本、高效率的开发流程,为嵌入式课程综合实验提供典型案例。

通过本次设计,我们希望能够提高对单片机的理解和应用能力。通过实践和探索,我们希望能够掌握相关的硬件和软件设计方法,为今后的学习和工作打下坚实的基础。同时,我们也希望能够通过这次设计,培养我们的团队协作能力和创新精神。

5.下载链接

0、常见使用问题及解决方法–必读!!!!

1、程序代码

2、Proteus仿真

3、功能要求

4、开题报告

5、设计报告

6、框图

7、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

资料下载链接:

通过网盘分享的文件:KEY_C0111

链接: https://pan.baidu.com/s/1AMzJsXzeY2ZGYnVBwPEJsQ?pwd=btwv

提取码: btwv

相关文章:

  • 供应链风险管理中,企业如何识别关键风险因素?
  • 【C++】模版(1)
  • 机器学习--特征工程具体案例
  • 2022年下半年信息系统项目管理师——综合知识真题及答案(4)
  • WPF Data Binding 及经典应用示例
  • 《黑马前端ajax+node.js+webpack+git教程》(笔记)——node.js教程+webpack教程(nodejs教程)
  • 【占融数科-注册/登录安全分析报告】
  • Kotlin Compose Button 实现长按监听并实现动画效果
  • Text2SQL在Spark NLP中的实现与应用:将自然语言问题转换为SQL查询的技术解析
  • 深度学习---模型预热(Model Warm-Up)
  • 【实战】GPT-SoVITS+内网穿透:3分钟搭建可公网访问的语音克隆系统
  • 苍穹外卖 - Day03
  • 【AI News | 20250519】每日AI进展
  • 深度强化学习 | 基于SAC算法的移动机器人路径跟踪(附Pytorch实现)
  • Manus AI 突破多语言手写识别技术壁垒:创新架构、算法与应用解析
  • 9万字67道Java集合经典面试题(2025修订版)
  • 安全强化的Linux
  • 云原生时代的系统可观测性:理念变革与实践体系
  • 枪机定焦系统的自动控制装置
  • 1.3.3 数据共享、汇聚和使用中的安全目标
  • 优质文化资源下基层,上海各区优秀群文团队“文化走亲”
  • 取得金奖西瓜品种独家使用权的上海金山,为何要到异地“试种”?
  • 中共中央、国务院印发《党政机关厉行节约反对浪费条例》
  • 关税影响下沃尔玛想涨价,特朗普施压:自行承担,别转嫁给顾客
  • 雅安市纪委监委回应黄杨钿甜耳环事件:相关政府部门正在处理
  • 新华时评:博物馆正以可亲可近替代“高冷范儿”