0 前言
🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是
🚩 毕业设计 基于stm32的智能台灯系统(源码+硬件+论文)
🥇学长这里给一个题目综合评分(每项满分5分)
- 难度系数:3分
- 工作量:3分
- 创新点:4分
🧿 项目分享:见文末!
1 主要功能
具体功能如下
智能模式:
- 1.智能感应:根据人体感应是否有人进行自动控制LED灯条亮灭。
- 2.智能调光:根据外界光线变化,LED灯条自动调节亮度 。
手动模式:
- 1.启动控制:通过按键控制开/关灯 。
- 2.亮度控制:按键控制灯条的亮度(三挡亮度)。
- 3.时间控制:久坐后自动报警提醒。
- 4.0LED显示屏:当前模式、环境光线、当前亮度、人体感应情况、久坐时间、人体具体台灯的距离。
- 5.手机APP远程端控制:采用蓝牙通讯,用户可以在手机APP 端进行控制启动、亮度、定时、模式选取功能。此价格为资料价格。
2 硬件设计(原理图)
3 核心软件设计
程序主流程
篇幅有限,不过多复述详细设计细节,详细的设计分享在论文中。。。
关键代码
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "adc.h"
#include "oled.h"
#include "iwdg.h"
int main(void)
{
u8 t;
u16 adcx;
u16 adcx2,adcx3,adcx4;
float temp,temp3,temp4,foult,tempp,power;
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
Adc_Init(); //ADC初始化
OLED_Init(); //初始化OLED
OLED_Clear();
IWDG_Init(4,625); //与分频数为64,重载值为625,溢出时间为1s
t=' ';
while(1)
{
OLED_ShowCHinese(18,0,4);//电
OLED_ShowCHinese(36,0,5);//压
OLED_ShowCHinese(72,0,4);//电
OLED_ShowCHinese(90,0,6);//流
OLED_ShowCHinese(18,4,7);//功
OLED_ShowCHinese(36,4,8);//率
adcx3=Get_Adc_Average(ADC_Channel_2,10);
printf( "%2d\n",adcx3 );
temp4=(float)adcx3*(3.3/4096);
temp3=2.0*temp4;
tempp=temp3;//
adcx3=temp3;
OLED_ShowNum(18,2,adcx3,1,16);
OLED_ShowString(26,2,".");
temp3-=adcx3;
temp3*=1000;
OLED_ShowNum(28,2,temp3,3,16);
adcx=Get_Adc_Average(ADC_Channel_1,10);
temp=(float)adcx*(3.3/4096);
foult=temp*10*1000;//temp*10为电流值,单位为mA
adcx=foult;
OLED_ShowNum(72,2,adcx,4,16);
power=temp*10*tempp;
adcx4=power;
OLED_ShowNum(60,4,adcx4,1,16);
OLED_ShowString(68,4,".");
power-=adcx4;
power*=1000;
OLED_ShowNum(70,4,temp3,3,16);
IWDG_Feed(); //喂狗
delay_ms(250);
}
}
4 实现效果
5 最后
包含内容
🧿 项目分享:见文末!