• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于STM32的智能臺(tái)燈_自動(dòng)亮度_久坐提醒仿真設(shè)計(jì)(Proteus+程序設(shè)計(jì)+設(shè)計(jì)報(bào)告+講解視頻)

05/23 10:08
1897
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

設(shè)計(jì)資料獲取聯(lián)系方式.doc

共1個(gè)文件

基于STM32的智能臺(tái)燈_自動(dòng)亮度_久坐提醒仿真設(shè)計(jì)

(Proteus仿真+程序設(shè)計(jì)+設(shè)計(jì)報(bào)告+講解視頻)

仿真圖Proteus 8.9

程序編譯器:keil 5

編程語(yǔ)言:C語(yǔ)言

設(shè)計(jì)編號(hào):C0112

1.主要功能

智能護(hù)眼燈

結(jié)合當(dāng)前嵌入式技術(shù),具有燈光亮度調(diào)節(jié)、人走自己關(guān)燈和久坐提醒功能。

1.上電默認(rèn)是自動(dòng)模式,自動(dòng)模式燈亮。光照越弱,臺(tái)燈越亮。

2.自動(dòng)模式下人體紅外熱釋電檢測(cè)到有人自動(dòng)開(kāi)燈同時(shí)計(jì)時(shí)。

3.監(jiān)測(cè)到久坐(仿真30秒方便測(cè)試)后蜂鳴器報(bào)警,LCD1602顯示Please Activity,人離開(kāi)后蜂鳴器自動(dòng)關(guān)掉。

4.按鍵切換手動(dòng)模式,模式下可以通過(guò)按鍵手動(dòng)調(diào)光。

5.使用LCD1620顯示環(huán)境光亮度,燈光亮度級(jí)別和久坐計(jì)時(shí)時(shí)間。

6.使用Proteus仿真,燈珠用LED燈代替。

STM32F103系列芯片 人體紅外熱釋電 光照傳感器 LCD1602

資料下載鏈接:

通過(guò)網(wǎng)盤(pán)分享的文件:KEY_C0112

鏈接: https://pan.baidu.com/s/1FwWffUhRNRludhkpC8j_ag?pwd=n4at

提取碼: n4at

2.仿真設(shè)計(jì)

開(kāi)始仿真后是自動(dòng)模式,LCD1602液晶第一行顯示LIGHT光照強(qiáng)度=440Lux。紅外熱釋電開(kāi)關(guān)閉合,第二行顯示久坐時(shí)間和燈光亮度。串口傳輸光照強(qiáng)度和燈光亮度。虛擬示波器顯示燈光PWM波形。

開(kāi)始仿真 有人在完善

按下按鍵,調(diào)整手動(dòng)模式,LCD1602第二行顯示燈光亮度,可以通過(guò)按鍵+和按鍵-調(diào)整亮度。

手動(dòng)模式

3.程序設(shè)計(jì)

程序是用keil5 mdk版本打開(kāi)的,如果打開(kāi)有問(wèn)題,核實(shí)下keil的版本。程序是HAL版本編寫(xiě)的,有stm32cubemx配置文件。有注釋可以結(jié)合講解視頻理解。

程序

int main(void)
{
  /* USER CODE BEGIN 1 */


	char dis_str1[]="				 ";  //輸出字符串內(nèi)容設(shè)置16個(gè)字符 英文+標(biāo)點(diǎn)+數(shù)字
	char dis_str2[]="				 ";  //輸出字符串內(nèi)容設(shè)置16個(gè)字符 英文+標(biāo)點(diǎn)+數(shù)字
	
//	ADC_ChannelConfTypeDef sConfig = {0};  //建立sConfig結(jié)構(gòu)體	
	char str[20];  //字符串的存放數(shù)組
//	uint32_t adcv;  //存放ADC轉(zhuǎn)換結(jié)果

	float temp;
	
  uint16_t ADC_Value[2] = {0};  //用于存放ADC數(shù)據(jù)
//	uint8_t i;  //定義循環(huán)變量	
  /* 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_DMA_Init();
  MX_USART1_UART_Init();
  MX_TIM2_Init();
	MX_ADC1_Init();
  /* USER CODE BEGIN 2 */
//  MX_GPIO_Init();
//  MX_USART1_UART_Init();
//  MX_DMA_Init();
//  MX_ADC1_Init();  
//	SMG_Write_Data(0,gsmg_code[0]);
    LCD_Init();
    HAL_UART_Transmit(&huart1, (uint8_t *)&"adc_dm1", 7, 10);  //串口1發(fā)送字符串,數(shù)組長(zhǎng)度為12,超時(shí)10ms
    HAL_ADCEx_Calibration_Start(&hadc1);   //開(kāi)啟adc前校準(zhǔn)一下ADC
	  HAL_Delay(10);
 	  HAL_ADC_Start_DMA(&hadc1,(uint32_t *)&ADC_Value,2);//開(kāi)啟ADC的DMA,采集的數(shù)據(jù)直接放入 AD_Buf這個(gè)數(shù)組里,操作簡(jiǎn)單。
	  HAL_UART_Transmit(&huart1, (uint8_t *)&"adc_dma", 7, 10);  //串口1發(fā)送字符串,數(shù)組長(zhǎng)度為12,超時(shí)10ms 
	
    HAL_TIM_Base_Start_IT(&htim2);  //初始化定時(shí)器
    user_pwm=50;
    refresh_flag=1;
  	BEEP=0;

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */

  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

		HAL_ADCEx_Calibration_Start(&hadc1);   //開(kāi)啟adc前校準(zhǔn)一下ADC
 	    HAL_ADC_Start_DMA(&hadc1,(uint32_t *)&ADC_Value,2);//開(kāi)啟ADC的DMA,采集的數(shù)據(jù)直接放入 AD_Buf這個(gè)數(shù)組里,操作簡(jiǎn)單。
		if(state==0&&refresh_flag){//通道1采集 自動(dòng)模式
		   temp=ADC_Value[0];//得到AD值
			 temp=light_intensity(temp);	//轉(zhuǎn)化為光照強(qiáng)度
		   sprintf(str,"auto_temp=%0.0frn",temp);
		   HAL_UART_Transmit(&huart1, (uint8_t *)str, strlen(str), 30);//串口1發(fā)送字符串,數(shù)組長(zhǎng)度為strlen(str),超時(shí)20ms
		   memset(str,0,strlen(str));  
 
		   if(INF_DET==1){//沒(méi)有人在
		   	user_pwm=0;
		   }else{
		   	user_pwm=(float)temp*(100.0/1000);  
				 user_pwm=100-user_pwm;//自動(dòng)模式PWM的范圍是0-100  
		   }
		  
		   sprintf(str,"user_pwm=%d%%rn",user_pwm);
			HAL_UART_Transmit(&huart1, (uint8_t *)str, strlen(str), 30);//串口1發(fā)送字符串,數(shù)組長(zhǎng)度為strlen(str),超時(shí)20ms
		   refresh_flag=1; 
			STATE_LED=0;//模式燈點(diǎn)亮

		}else if(state==1&&refresh_flag){//手動(dòng)模式
			STATE_LED=1;//模式燈熄滅
		  temp=ADC_Value[0];//得到AD值
			temp=light_intensity(temp);	//轉(zhuǎn)化為光照強(qiáng)度
			sprintf(str,"manl_temp=%0.0frn",temp);
			HAL_UART_Transmit(&huart1, (uint8_t *)str, strlen(str), 30);//串口1發(fā)送字符串,數(shù)組長(zhǎng)度為strlen(str),超時(shí)20ms

		}

		HAL_ADC_Stop(&hadc1);											//停止ADC1	
		HAL_Delay(200);
//		if(INF_DET==1){//沒(méi)有人
//			HAL_UART_Transmit(&huart1, (uint8_t *)"outrn", 5, 30);//串口1發(fā)送字符串,數(shù)組長(zhǎng)度為5,超時(shí)30ms
//		}else{
//			HAL_UART_Transmit(&huart1, (uint8_t *)"ingrn", 5, 30);//串口1發(fā)送字符串,數(shù)組長(zhǎng)度為5,超時(shí)30ms
//
//		}
		 sprintf(dis_str1,"LIGHT=%0.0f Lux    ",temp);
		 LCD_ShowString(0,0,dis_str1);
		 if(state==0){//自動(dòng)模式 而且人在
			 if(INF_DET==0){
				if(inf_count<COUNT_NUM){//久坐判斷
					  sprintf(dis_str2,"TIME=%d LAMP=%d%%  ",inf_count,user_pwm);
				 }else{
						sprintf(dis_str2,"Please Activity  ");//久坐提醒
				 }		 
			 }else{
					sprintf(dis_str2,"                       ");
			 }
			
		 }else if(state==1){//手動(dòng)模式
			 sprintf(dis_str2,"LAMP_L=%d%%       ",user_pwm);
		 }
		
		 LCD_ShowString(1,0,dis_str2); 
  }
  /* USER CODE END 3 */
}

img

程序流程圖

img

4.設(shè)計(jì)報(bào)告

9608字設(shè)計(jì)報(bào)告,內(nèi)容包括設(shè)計(jì)目標(biāo)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、結(jié)論等。

img

隨著嵌入式技術(shù)的快速發(fā)展,智能照明設(shè)備在健康照明領(lǐng)域的應(yīng)用日益廣泛。傳統(tǒng)臺(tái)燈功能單一,無(wú)法根據(jù)環(huán)境光自動(dòng)調(diào)節(jié)亮度,且缺乏久坐提醒等健康管理功能。結(jié)合STM32單片機(jī)、傳感器技術(shù)人機(jī)交互設(shè)計(jì),開(kāi)發(fā)一款智能護(hù)眼燈,可有效改善用眼環(huán)境,降低視覺(jué)疲勞,符合現(xiàn)代人對(duì)健康生活的需求。

通過(guò)本次設(shè)計(jì),我們希望能夠提高對(duì)單片機(jī)的理解和應(yīng)用能力。通過(guò)實(shí)踐和探索,我們希望能夠掌握相關(guān)的硬件和軟件設(shè)計(jì)方法,為今后的學(xué)習(xí)和工作打下堅(jiān)實(shí)的基礎(chǔ)。同時(shí),我們也希望能夠通過(guò)這次設(shè)計(jì),培養(yǎng)我們的團(tuán)隊(duì)協(xié)作能力和創(chuàng)新精神。

5.下載鏈接

0、常見(jiàn)使用問(wèn)題及解決方法–必讀?。。?!

1、程序代碼

2、Proteus仿真

3、功能要求

4、開(kāi)題報(bào)告

5、設(shè)計(jì)報(bào)告

6、框圖

7、講解視頻

Altium Designer 安裝破解

KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程

KEIL安裝破解

Proteus元器件查找

Proteus安裝

Proteus簡(jiǎn)易使用教程

單片機(jī)學(xué)習(xí)資料

相關(guān)數(shù)據(jù)手冊(cè)

答辯技巧

設(shè)計(jì)報(bào)告常用描述

鼠標(biāo)雙擊打開(kāi)查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url

img

資料下載鏈接:

通過(guò)網(wǎng)盤(pán)分享的文件:KEY_C0112

鏈接: https://pan.baidu.com/s/1FwWffUhRNRludhkpC8j_ag?pwd=n4at

提取碼: n4at

  • 設(shè)計(jì)資料獲取聯(lián)系方式.doc
    下載
意法半導(dǎo)體

意法半導(dǎo)體

意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國(guó)Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長(zhǎng)市場(chǎng)之間分布均衡(五大市場(chǎng)占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場(chǎng)居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.

意法半導(dǎo)體(ST)集團(tuán)于1987年6月成立,是由意大利的SGS微電子公司和法國(guó)Thomson半導(dǎo)體公司合并而成。1998年5月,SGS-THOMSON Microelectronics將公司名稱改為意法半導(dǎo)體有限公司。意法半導(dǎo)體是世界最大的半導(dǎo)體公司之一,公司銷售收入在半導(dǎo)體工業(yè)五大高速增長(zhǎng)市場(chǎng)之間分布均衡(五大市場(chǎng)占2007年銷售收入的百分比):通信(35%),消費(fèi)(17%),計(jì)算機(jī)(16%),汽車(16%),工業(yè)(16%)。 據(jù)最新的工業(yè)統(tǒng)計(jì)數(shù)據(jù),意法半導(dǎo)體是全球第五大半導(dǎo)體廠商,在很多市場(chǎng)居世界領(lǐng)先水平。例如,意法半導(dǎo)體是世界第一大專用模擬芯片和電源轉(zhuǎn)換芯片制造商,世界第一大工業(yè)半導(dǎo)體和機(jī)頂盒芯片供應(yīng)商,而且在分立器件、手機(jī)相機(jī)模塊和車用集成電路領(lǐng)域居世界前列.收起

查看更多

相關(guān)推薦

方案定制

去合作
方案開(kāi)發(fā)定制化,2000+方案商即時(shí)響應(yīng)!