STM32开发实例_基于STM32单片机的智能台灯系统(电路图+程序+流程图)24-32-04

一.系统概述

智能台灯系统多功能台灯系统能够智能化地调节亮度、监测人体活动、感知环境光照,并实现定时和报警功能,提升了用户的使用体验和功能扩展性,具体包括以下主要功能:
1. 亮度调节:
   - 系统在自动模式和手动模式下调节台灯的亮度,自动模式下根据光强进行自动调节,手动模式下通过按键进行灯光亮度的调节。
2.坐姿调节:
   - 通过红外光电开关检测台灯与人体之间的距离,距离过近则报警提醒。
3. 学习定时:
   - 使用时钟模块进行学习定时时间的提醒,并通过OLED显示屏显示实时时间,到达定时时间蜂鸣器报警提醒。
4. 光照采集:
   - 利用光敏电阻模块进行光强检测并通过OLED显示屏进行数据显示。

 二.电路设计

电路图采用Altium Designer进行设计:
1. 系统电路中的STM32F103C8T6单片机最小系统是系统的控制核心;
2. 通过DS1302实现时钟定时,并通过SDA、SCK、DAT三个引脚与单片机进行连接;
3. 通过光电开关进行人体检测,模块的数据输出脚与单片机的GPIO口直接连接;
4. 使用独立按键进行灯光控制和模式切换,按键的一端接地,一端接单片机的GPIO口;;
5. 通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
6. 使用光敏电阻模块进行光强检测,传感器的模拟端与单片机的模拟输入端相接。

  三.程序设计

#include "stm32f10x.h"
#include "OLED_I2C.h"
#include "ds1302.h"
#include "timer.h"
#include "gpio.h"
#include "delay.h"
#include "key.h"
#include "adc.h"
#include "stdio.h"
#include "string.h"

unsigned char setn=0;
unsigned char txshi=12,txfen=0,txmiao=0;
u8 tixing=0;//0:时间提醒关,1:时间提醒开
u8 mode=0;//0:自动模式,1手动模式
unsigned char miao = 0;//没有人的计时时间
unsigned char PWM_Val = 0xFF;//用于PWM调节
unsigned char GearTemp = 0;//0~3档
u8 RemindFlag=0;//提醒时间到了标志
u8 PostureFlag=0;//坐姿提醒

int main(void)
{
	char i=0;
	
	DelayInit();
	I2C_Configuration(); //IIC初始化
	OLED_Init(); //OLED初始化
	KEY_Init(); //按键初始化
	BEEP_AND_GD_RTHW_GPIO_Config();
  OLED_CLS();//清屏
	DS1302_Init(&SysDate);
	DelayMs(100); 
	DS1302_DateRead(&SysDate);//读时间 
	OLED_CLS();//清屏
	for(i=0;i<4;i++)OLED_ShowCN(i*16,2,i+8,0);//测试显示中文:亮度等级
	OLED_ShowStr(62,2,": ",2);//显示冒号
	for(i=0;i<4;i++)OLED_ShowCN(i*16,4,i,0);//测试显示中文:提醒时间
	DisplayMode();
  TIM2_Init(49,71);     //定时器初始化,定时50us
	TIM3_Init(499,7199);  //定时器初始化,定时50ms
	//Tout = ((arr+1)*(psc+1))/Tclk ;  
	//Tclk:定时器输入频率(单位MHZ)
	//Tout:定时器溢出时间(单位us)
	while(1)
	{
		  KeySettings();
	    DisplayTime();
		  DisplayTiXingTime();
		  AutoHandle();
		  LedGearHandle(GearTemp);
		  if(GD == 0)//检测坐姿不正确
			{
					if(PostureFlag==0)
					{
							PostureFlag=1;
						  BEEP=1;//蜂鸣器提醒
						  OLED_CLS();//清屏
						  for(i=0;i<6;i++)OLED_ShowCN(i*16+16,2,i+16,0);//测试显示中文:请注意坐姿!
						  DelayMs(1000); 
						  OLED_CLS();//清屏
						  for(i=0;i<4;i++)OLED_ShowCN(i*16,2,i+8,0);//测试显示中文:亮度等级
							OLED_ShowStr(62,2,": ",2);//显示冒号
							for(i=0;i<4;i++)OLED_ShowCN(i*16,4,i,0);//测试显示中文:提醒时间
						  DisplayMode();
					}
			}
			else
			{
					PostureFlag=0;
			}
	}
}

void TIM2_IRQHandler(void)//定时器2中断服务程序	 
{ 
	  static u8 time_count = 0;
		if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 
		{ 
				TIM_ClearITPendingBit(TIM2, TIM_IT_Update); //清除中断标志位
			  time_count++;
			  if(time_count > 200)time_count = 0;//10ms一个周期
				if(time_count >= PWM_Val)LED = 1;//占空比调节
				else LED = 0;  
	  }
}

void TIM3_IRQHandler(void)   //TIM3中断
{
		static u8 count=0,count2=0;
		if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 
		{
				TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  //清除TIMx的中断待处理位:TIM 中断源 
			  if(count2++>=2)
				{
					  count2 = 0;
            if(GD == 1)
						{
							 if(RemindFlag==1 && txshi==SysDate.hour && txfen==SysDate.min)
							 {
									 BuzzerSound();
							 }
							 else
							 {
									 BEEP=0;
							 }
						}
				}
        if(count++ >= 20)//1秒时间到
				{
						count = 0;
						if(RTHW==1)miao=30;//检测到有人,时间赋值30秒
					  else
						{
								if(miao>0)miao--;//没有人,30秒倒计时
						}
				}
		}
}

 四.资料内容

### 智能台灯系统架构与设计方案 智能台灯系统开发通常围绕硬件设计、软件设计以及调试优化展开。以下是基于单片机智能台灯系统架构及其流程图的设计方案。 #### 系统架构概述 智能台灯的核心在于其控制系统,该系统由硬件模块和软件算法共同构成。硬件部分主要包括微控制器(如 STM32 或 51 单片机)、传感器模块(如光敏电阻用于环境光照强度检测)、驱动电路以及其他外围设备;而软件则负责处理输入信号并执行相应操作以实现预期功能[^1]。 #### 主要组成部分说明 - **中央处理器 (MCU)** 使用高性能低功耗的 MCU 来管理所有子系统之间的通信协调工作。 - **传感单元** 包括但不限于光线感应器来监测周围环境变化情况从而调整输出功率大小; 温湿度探头也可以加入进来提供额外的信息支持个性化服务模式切换等等选项给最终消费者带来更好的用户体验效果[^3]. - **显示接口** LCD 屏幕或者 LED 数码管用来呈现当前状态参数比如时间日期闹钟提醒事项列表等实用型附加价值高的特性提升整体竞争力水平在线下零售渠道销售过程中更容易吸引目标客户群体关注购买决策过程中的考虑因素之一就是产品的外观造型美观程度如何直接影响到他们是否会下单成交的可能性几率高低关系密切相连不可忽视这一点的重要性所在之处显而易见值得重视起来加以改进完善使其更加符合市场需求趋势发展方向要求标准规范严格把控质量关口杜绝任何可能存在的隐患风险发生概率降到最低限度范围内确保长期稳定可靠运行无故障持续作业能力得到充分保障不出现问题影响正常使用体验满意度下降的情况出现为佳良好局面营造积极正面形象树立标杆典范作用发挥引领示范带头表率效仿学习借鉴参考模仿复制推广普及开来形成规模效应降低成本增加收益最大化经济效益社会效益双丰收共赢互利互惠的局面达成共识共同努力奋斗拼搏进取向上向善向前发展进步成长壮大成熟稳固根基打牢基础夯实底座增强实力强化力量巩固地位提高影响力扩大覆盖面延伸触角深入基层贴近群众联系实际解决难题克服困难迎接挑战把握机遇创造奇迹书写辉煌篇章留下宝贵财富传承优秀文化弘扬正能量传递温暖爱心奉献社会造福人类贡献智慧才能展现风采魅力无限风光这边独好风景这边更好! #### 软件流程描述 当电源开启后, 需要完成一系列初始化设置动作使各部件处于待命准备就绪的状态等待进一步指令下达执行具体任务命令行动指南如下所示: ```plaintext 开始 -> 初始化 I/O 口配置 -> 显示界面加载 -> 光线采集启动 -> 距离测量激活 -> 定时中断设定 -> 数据接收监听 -> 功能逻辑判断 -> 反馈结果输出 -> 返回继续循环直至关闭结束. ``` 上述伪代码清晰地展示了整个应用程序的工作原理机制步骤顺序安排合理紧凑高效简洁明了易于理解和维护升级扩展性强适应范围广兼容性好通用性强适用多种场合环境下灵活运用自如掌控全局局势动态平衡各方利益诉求达到最佳综合性能指标表现优异卓越非凡令人赞叹不已! --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小常硬件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值