国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

2021校賽基于stm32f103多功能臺燈

這篇具有很好參考價值的文章主要介紹了2021校賽基于stm32f103多功能臺燈。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

2021校賽基于stm32f103多功能臺燈

起源
又到了一學期一次的校內電子設計大賽,又到了激動人心的時刻每次電子設計大賽都會出現(xiàn)各種大佬展現(xiàn)他們的作品,對于我這種菜鳥也只能默默觀望,但是呢,積極參與還是要有的,記得上一次參加做的基于51的避障小車直接買的套件焊好 然后在燒入程序就直接上戰(zhàn)場了(結果自然是成功參與獎)。
這次校內電子設計大賽我選的是多功能臺燈制作,由于沒有規(guī)定單片機的型號,自己選擇合適的就行,就想到做一個基于stm32f103c8t6的多功能臺燈。自己剛好在自學了一小段時間32了剛好來檢測一下自己的學習情況,玩一些基本的外設。

心得總結
說真的看見其他人做的電子設計,就算是比較簡單的那種,當自己從頭做到尾的時候感受真的不一樣,在制作過程中會遇到各種bug,不斷的調試查找相關的資料解決后再進行下一步,然后就是反復這樣,并沒有我們想象的那么簡單。但是哈雖然過程艱難了一點最后還是很有成就感的,雖然簡單但至少是自己完成的。其實越到后面會發(fā)現(xiàn)結果也并沒有我們想象的那么重要,其中的過程更能讓我們成長,不斷發(fā)現(xiàn)問題,不斷想辦法去解決,然后把每一個問題和解決方法做好總結,到最后會發(fā)現(xiàn)這些都是我們寶貴的經(jīng)驗??傊兀m然我們比其他人笨了一點,技術也并沒有他們懂的多,但是我們愿意花更多的時間來彌補這些,成長慢了一點,我始終相信最后我們也都會成為其他人眼中的大佬。

2021校賽基于stm32f103多功能臺燈

基于stm32f103多功能臺燈制作

相關軟件鏈接 下面軟件都在這個鏈接中
鏈接:https://pan.baidu.com/s/1-1oYhpx1LAaYdCUx36Hg4A
提取碼:1ttv
–來自百度網(wǎng)盤超級會員V4的分享

一、環(huán)境準備

|Keil5|
|–|–|
| FlyMcu 程序下載軟件 |
STC-isp |
|野火串口調式助手

二、硬件準備

| stm32f103C8t6最小系統(tǒng)|
|–|–|
|IIC 四引腳 OLED顯示屏|
|光敏傳感器|
|蜂鳴器|
|超聲波|
|語音模塊|
|USB Led燈|
|串口轉TTL
|若干杜邦線
|洞洞板
| 按鍵若干個| |

三、功能構建

2021校賽基于stm32f103多功能臺燈

四、工程搭建

4.1 選好一個文件目錄在下面創(chuàng)建工程文件夾
2021校賽基于stm32f103多功能臺燈這里我是基于正點原子標準庫模板進行代碼的添加的。

4.2 分模塊寫好相關功能模塊

這里的建議是我們每寫一個功能的時候都單獨的創(chuàng)建一個文件夾然后在里面創(chuàng)建一個xxx.c xxx.h 文件這樣寫的好處是方便我們的移值也比較清晰的看懂代碼模塊,特別是代碼量很大的時候 這樣寫的優(yōu)點就完全體現(xiàn)出來了。

2021校賽基于stm32f103多功能臺燈

寫代碼的時候也要把相關的文件路徑添加進來哦,要不然是找不到的

2021校賽基于stm32f103多功能臺燈

2021校賽基于stm32f103多功能臺燈

4.1 多級菜單顯示

把基本的模塊函數(shù)模塊寫好了就開始整體功能顯示設計了
首先我會把各種功能需要的菜單顯示列出來在用oled屏進行顯示
1.在開始用多級菜單進行顯示之前,也去看了很多其他大佬的博客,自己之前并沒有寫過這一類的,所以在這第一步就遇到了很多問題。每個菜單界面單獨顯示的時候很正常,進行頁面切換并進行相關功能函數(shù)顯示的時候就出現(xiàn)了問題,問題的界面切換過來了但是功能并沒有進行執(zhí)行??戳似渌┲鲗懙亩际莿?chuàng)建了結構體和嗎,枚舉來操作我們界面的切換和函數(shù)功能的調用??戳怂麄兊拇a才發(fā)現(xiàn)真的很菜,不由感慨大佬寫的代碼就是不一樣。
不過最重要的是在后面不斷的調試還是根據(jù)自己的想法實現(xiàn)了我想要的功能。自然后面也會去多學習一下大佬寫代碼的風格。

界面展示

主界面2021校賽基于stm32f103多功能臺燈菜單界面
2021校賽基于stm32f103多功能臺燈光敏檢測界面
2021校賽基于stm32f103多功能臺燈語音識別界面
2021校賽基于stm32f103多功能臺燈時鐘顯示界面
2021校賽基于stm32f103多功能臺燈整體效果還是不錯哈

2021校賽基于stm32f103多功能臺燈

4.2 主函數(shù)邏輯處理及相關函數(shù)調用

/************************************多功能臺燈********************************

一、相關功能

1.光敏傳感器檢測光照強度從而來自動調解燈光的暗亮程度
2.通過按鍵來控制 改變高低電平的占空比調節(jié)燈光的暗亮程度
3.通過語音識別來改變燈光的暗亮程度
4.通過超聲波來檢測 當檢測距離大于特定值的關閉燈光,否則在該模式下默認占空比50%
5.通過紅外遙控來控制燈光的暗亮程度
6.定時功能 用戶給個值 當達到此值時蜂鳴器發(fā)出相應的報警提示

二、菜單界面顯示

1.光敏界面
2.時鐘界面
3.按鍵界面
4.語音界面
5.超聲波界面
*******************************************************************************
Author:xiao yin
Date:2021-11-17
*******************************************************************************/
#include "stm32f10x.h"
#include "usart.h"
#include "oled.h"
#include "infrared.h"
#include "delay.h"
#include "led.h"
#include "adc.h"
#include "ldr.h"
#include "timer.h"
#include "key.h"
#include "timer2.h"
#include "syn6288.h"
#include "buzzer.h"
#include "ultrasonic.h"

#define Min_duty 0 //最小占空比
#define max_duty  100//最大占空比
extern unsigned char sec;//秒
extern unsigned char min; //分
extern unsigned char hour;//時
extern unsigned int count; //計數(shù)變量
extern unsigned char time[6]; //存儲時間轉換后的值
unsigned int adcx; //光敏值 0-100
unsigned char keyvalue;//按鍵返回值
unsigned char flag;//界面切換標志
unsigned int current_duty = 100;  //當前占空比 此時燈光最暗
unsigned int value_duty; //設置占空比的值
unsigned char flag_function = 0;//函數(shù)功能標志位
unsigned char RxData; //語音接收
unsigned int Time = 120;//定時時間變量
float dis; //接收超聲波返回的數(shù)據(jù)
void main_interface(void);
void menu_interface(void);
void Interface1(void);
void Interface2(void);
void Interface3(void);
void  Interface4(void);
void Interface5(void);
void Ldr_Tackle(void);
void Time_Display(void);
void KEY_Tackle_Puty(void);
void Voice_Tackle(void);

/*********************************************三個界面顯示函數(shù)*****************************/
//主頁面
void main_interface(void)
{
//		OLED_Clear(0);
//		delay_ms(10);
	
		OLED_ShowCHinese(6,0,0);//智
		OLED_ShowCHinese(26,0,1);//能
		OLED_ShowCHinese(46,0,2);//臺
		OLED_ShowCHinese(66,0,3);//燈
		OLED_ShowCHinese(86,0,4);//系
		OLED_ShowCHinese(106,0,5);//統(tǒng)	 
		OLED_ShowNum(6,4,2021,4,16);
		OLED_ShowCHinese_TWO(40,4,0);//年 
		OLED_ShowNum(60,4,11,2,16);
		OLED_ShowCHinese_TWO(74,4,1);//月 
		OLED_ShowNum(92,4,17,2,16);
		OLED_ShowCHinese_TWO(108,4,2);//日 
}

//菜單頁面
void menu_interface(void)
{
//	OLED_Clear(0);
//		delay_ms(10);
//	
	 OLED_ShowString(20,0,(unsigned char *)"Function",8);
	 OLED_ShowString(20,2,(unsigned char *)"1.Light Test",8);
	 OLED_ShowString(20,4,(unsigned char *)"2.Time Clock",8); 
	 OLED_ShowString(20,6,(unsigned char *)"3.KEY Test",8);
}
//光敏功能界面1
void Interface1(void)
{
	
//	 OLED_Clear(0);
//		delay_ms(10);
//	
    OLED_ShowString(20,0,(unsigned char *)"Light Test",8);
	  OLED_ShowString(10,3,(unsigned char *)"VALUE:",8);
	  OLED_ShowString(10,5,(unsigned char *)"DUTY :",8);
	  OLED_ShowString(10,7,(unsigned char *)"MODE :",8);
		OLED_ShowNum(60,3,adcx/100,2,4);
		OLED_ShowNum(68,3,adcx/10%10,2,4);
		OLED_ShowNum(76,3,adcx%10,2,4);
		OLED_ShowNum(60,5,(100-current_duty)/100,2,4); //百位
		OLED_ShowNum(68,5,(100-current_duty)/10%10,2,4);//十位
		OLED_ShowNum(76,5,(100-current_duty)%10,2,4);//個位
		OLED_ShowNum(60,7,1,2,4);//mode	 	
}
//時鐘功能界面2
void Interface2(void)
{
	 //界面清屏
//	 OLED_Clear(0);
//	delay_ms(10);
	//刷新重新要顯示的數(shù)據(jù)
	 OLED_ShowString(26,1,(unsigned char *)"Time Clock",8); 
	 OLED_ShowString(30,5,(unsigned char *)"MODE :",8);
}

//按鍵功能界面3
void Interface3(void)
{
	 //界面清屏
//	 OLED_Clear(0);
//	 delay_ms(10);
	//刷新重新要顯示的數(shù)據(jù)
	 OLED_ShowString(40,0,(unsigned char *)"KEY",8); 
	 OLED_ShowString(10,3,(unsigned char *)"DUTY :",8);
	 OLED_ShowString(10,5,(unsigned char *)"MODE :",8);
	 OLED_ShowNum(68,3,(100-current_duty)/100,2,4); //百位
	 OLED_ShowNum(76,3,(100-current_duty)/10%10,2,4);//十位
	 OLED_ShowNum(84,3,(100-current_duty)%10,2,4);//個位
	 OLED_ShowNum(68,5,3,2,4);//mode	 
	 
}
/*****************************************************************************************/

//功能界面四 語音模式
void  Interface4(void)
{
		OLED_ShowString(20,0,(unsigned char *)"Voice Test",8);
	  OLED_ShowString(10,3,(unsigned char *)"DUTY :",8);
	  OLED_ShowString(10,5,(unsigned char *)"MODE :",8);
		OLED_ShowNum(60,3,(100-current_duty)/100,2,4); //百位
		OLED_ShowNum(68,3,(100-current_duty)/10%10,2,4);//十位
		OLED_ShowNum(76,3,(100-current_duty)%10,2,4);//個位
		OLED_ShowNum(60,5,4,2,4);//mode	 
}

//超聲波測距界面
void Interface5(void)
{
		OLED_ShowString(20,0,(unsigned char *)"CSB Test",8);
	  OLED_ShowString(10,4,(unsigned char *)"DIS:",8);	 
	  OLED_ShowString(10,6,(unsigned char *)"DUTY :",8);
		OLED_ShowNum(60,4,(int)dis/100,2,4); //百位
		OLED_ShowNum(68,4,(int)dis/10%10,2,4);//十位
		OLED_ShowNum(76,4,(int)dis%10,2,4);//個位	
		OLED_ShowNum(60,6,(100-current_duty)/100,2,4); //百位
		OLED_ShowNum(68,6,(100-current_duty)/10%10,2,4);//十位
		OLED_ShowNum(76,6,(100-current_duty)%10,2,4);//個位
}

/*********************************************功能函數(shù)*********************************/
//光敏電阻改變led燈的亮度
void Ldr_Tackle(void)
{
		adcx = Lsens_Get_Val();
		if(adcx <=30 )
		{
			current_duty = 10;
		}
		else if(adcx  > 30 && adcx <= 50)
		{
			 current_duty = 40;
			
		}
		else if(adcx >50 && adcx <=70)
		{
			 current_duty = 60;
		}
    else if(adcx>70 && adcx <= 90)		
		{
				current_duty = 80;
		}
		else{
				current_duty = 0;
		}	
//		TIM_SetCompare2(TIM3,current_duty);
		//printf("光線強度為:%d\n",adcx);
		//printf("占空比為:%d\n",100-current_duty);
}

//對時間進行顯示
void Time_Display(void)
{
	 unsigned char i;
	 OLED_ShowNum(30,3,time[0],2,4);
	 OLED_ShowNum(38,3,time[1],2,4);
	 OLED_ShowChar(46,3,':',4);
	 OLED_ShowNum(52,3,time[2],2,4);
	 OLED_ShowNum(60,3,time[3],2,4);
	 OLED_ShowChar(68,3,':',4);
	 OLED_ShowNum(74,3,time[4],2,4);
	 OLED_ShowNum(82,3,time[5],2,4);	
	 OLED_ShowNum(74,5,2,2,4);//mode	
	//如果超過
	if(sec >= Time)  
	{
		for(i =0; i< 4;i++)
		{
			
			Buzzer_On();
			delay_ms(500);
			Buzzer_Off();			
		}
		 sec = 0;
	}
}

//按鍵處理函數(shù)通過key2 key3兩個按鍵來控制燈光的占空比
//key 2進行占空比的累加 key3 進行占空比的減
void KEY_Tackle_Puty(void)
{
	keyvalue = 0;
	keyvalue = KEY_Scan();
		//當占空比加到最大值的時候重新從最小的占空比開始 當占空比減到最小值的時候重新從最大值開始
	if(keyvalue == 3 )//為1的時候進行占空比加
	{
		current_duty+=20;
		if(current_duty >=max_duty )
			{
				current_duty = 0;
			}
		}
		if(keyvalue == 4)
		{
			current_duty-=20;
			if(current_duty <= Min_duty)
				{
					current_duty = 100;
				}
		}	
	

		//printf("keyvalue = %d\n",keyvalue);	
}

 //超聲波處理函數(shù)
void Csb_Tackle(void)
{
	dis = Senor_Using();
	printf("current dis = %.2f\n",dis);
	if(dis >= 500)
	{	
			Buzzer_On();
			delay_ms(500);
			Buzzer_Off();
			current_duty = 100; //檢測不到物體關閉燈光	
	}
	else
	{
		current_duty = 50; //檢測到時候 默認 一半
	}
	
}

//語音功能處理
void Voice_Tackle(void)
{
	if(RxData == '0')
	{
		Buzzer_On();
		delay_ms(500);
		Buzzer_Off();
		 current_duty = 100; //關閉
	}
	else if(RxData == '1')
	{
		current_duty = 20;	
		//printf("rec 1 success\n");
	}
	else if(RxData == '2')
	{
		current_duty = 50;
	//	printf("res 2 success\n");
	}
	else if(RxData == '3')
	{
		current_duty = 90;
		//printf("re3 success\n");
	}
	else if(RxData == '4')
	{
			Time = 10;	
			//printf("re 4 success\n");
	}
	else if(RxData == '5')
	{
		Time = 20;
		//printf("re 5 success\n");
		
	}
	else if(RxData == '6')
	{
		Time = 30;
		//printf("re 6 success\n");
	}	
	else {	
		//printf("cmd is error\n");
	}	
}




/**********************************************************************************************/

//通過按鍵來進行界面的切換
unsigned char Key_Mode(void)
{
//	delay_ms(500);
	keyvalue = KEY_Scan(); //按鍵1來進行模式的切換
	if(keyvalue == 1) //判斷按鍵1是否被按下
	{
		flag++;	
	}	
	if(keyvalue == 2)
	{
			flag--;
	}
		switch(flag)
		{	
			case 1:OLED_Clear(0);main_interface();break;
			case 2:OLED_Clear(0);menu_interface();break;
			case 3:OLED_Clear(0);Interface1();flag_function=1;break;
			case 4:OLED_Clear(0);Interface4();flag_function=2;break;
			case 5:OLED_Clear(0);Interface2();flag_function=3;break;
			case 6:OLED_Clear(0);Interface5();flag_function=4;break;
			case 7:OLED_Clear(0);Interface3();flag_function=5;break;
			default:break;
		}
	return flag_function; //返回功能函數(shù)的標志位
}

/*****************************************主函數(shù)*********************************/
 int main(void)
 {		
	 unsigned char value =0;
   Infrared_GPIO_INIT();
	 KEY_GPIO_INIT();//按鍵初始化
	 USART_INIT(9600); //串口初始化
	 LED_GPIO_INIT();// led初始化
	 CH_SR04_Init(); //超聲波初始化
	 Buzzer_GPIO_Init();//蜂鳴器初始化
	 Lsens_Init(); //光敏傳感器初始化
	 TIM3_PWM_Init(100-1,7200-1);//pwm控制初始化 1hkz  計數(shù)到100為10ms
	 OLED_Init();			//初始化OLED  
	 OLED_Clear(0);	
	 while(1)
	 {
		 
			value = Key_Mode();	 
		  if(value == 1)
			{
				Ldr_Tackle(); //光敏模式處理			
			}
			else if(value == 2)
			{
				Voice_Tackle(); //語音模式功能處理			
			}		
			else if(value == 3)
			{
				Time_Display(); //定時模式處理			
			}
			else if(value == 4)
			{
				Csb_Tackle(); //超聲波功能處理
				
			}	
		 else if(value == 5)
		 {
			KEY_Tackle_Puty(); //按鍵模式功能處理
		}
	 	TIM_SetCompare2(TIM3,current_duty);
		 
 }
}
 /***********************************串口中斷****************************/
 //通過語音發(fā)送串口接收數(shù)據(jù)來進行燈光占空比的節(jié)和定時長短 這里我寫的比較簡單 要實現(xiàn)其他功能
 //大家自己修改一下即可
 void USART1_IRQHandler(void){
      if (USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) {
            USART_ClearITPendingBit(USART1, USART_IT_RXNE);
            RxData=USART_ReceiveData(USART1); 
						if(RxData == '0')
						{
							Time = 20;
							Buzzer_On();
							delay_ms(50);
							Buzzer_Off();
							
						}
						else if( RxData == '1')
						{
							current_duty = 10;
							Buzzer_On();
							delay_ms(50);
							Buzzer_Off();
						}
						else if(RxData == '2')
						{
							current_duty = 50;
							Buzzer_On();
							delay_ms(50);
							Buzzer_Off();
						//	printf("res 2 success\n");
						}
						else if(RxData == '3')
						{
							current_duty = 90;
							Buzzer_On();
							delay_ms(50);
							Buzzer_Off();
							//printf("re3 success\n");
						}
						else if(RxData == '4')
						{
								Time = 10;
								Buzzer_On();
							delay_ms(50);
							Buzzer_Off();							
								//printf("re 4 success\n");
						}
						else if(RxData == '5') //關閉燈光
						{
							current_duty =100; 
							Buzzer_On();
							delay_ms(50);
							Buzzer_Off();
							//printf("re 5 success\n");
							
						}
						else if(RxData == '6')
						{
							Time = 30;
							Buzzer_On();
							delay_ms(50);
							Buzzer_Off();
							//printf("re 6 success\n");
						}	
						else {	
							//printf("cmd is error\n");
						}	
						
						 USART_SendData(USART1,RxData);
						}
}

整體實物(太丑了 ^ ^)
2021校賽基于stm32f103多功能臺燈

上面代碼實測功能可以實現(xiàn),當然在邏輯處理上還是有有多問題 后面我會慢慢優(yōu)化,上面純屬個人理解有錯還希望各位大佬指正。學習一步一個腳印慢慢來,時間會見證一切 加油鴨。

最后工程源碼的鏈接我放這里了有需要的小伙伴自取
有問題大家一起討論 共同進步

鏈接:https://pan.baidu.com/s/11gRoBYrJTWg69tV65VzX5w
提取碼:jyep
–來自百度網(wǎng)盤超級會員V4的分享文章來源地址http://www.zghlxwxcb.cn/news/detail-419039.html

現(xiàn)在項目不開源了哦,有需可私 創(chuàng)作不易拒絕白嫖

到了這里,關于2021校賽基于stm32f103多功能臺燈的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 基于stm32F103的蜂鳴器周期發(fā)聲實驗

    基于stm32F103的蜂鳴器周期發(fā)聲實驗

    蜂鳴器作為一種聲音報警器件,應用廣泛。本實驗基于stm32F103單片機,通過控制蜂鳴器的IO口電平電壓,使其周期性地進行電平翻轉,從而驅動蜂鳴器發(fā)出周期性的鳴叫聲。該實驗主要運用了stm32的GPIO和定時器TIM的相關功能,不僅可以鞏固這些外設的使用,也可以通過改變時間參數(shù),控

    2024年02月21日
    瀏覽(29)
  • 基于STM32F103——AS608指紋模塊+串口打印

    基于STM32F103——AS608指紋模塊+串口打印

    最近用STM32F103做一個智能門鎖小玩意,其中用到指紋模塊,我這里也單獨的寫一下筆記,不過我只是了解了基本的,就是我做門禁卡要用到的幾個東西,其它還沒了解。為了方便,做一下記錄。我這里沒有用到按鍵和顯示屏,所以還是串口輸出輸入來控制了 哈哈哈哈 這里就

    2023年04月09日
    瀏覽(31)
  • 基于STM32F103HAL庫的聲音定位系統(tǒng)

    基于STM32F103HAL庫的聲音定位系統(tǒng)

    這是一道學校出的電賽題目,要求在100*100cm的平面上實現(xiàn)定位實現(xiàn)聲音定位。由于一米太大了,我們就做了40cm的,下面的講解我按照40厘米的寫。用到的處理器是stm32f103c8t6接下來分享一下調試心得。 硬件部分需要制作發(fā)聲裝置和接收裝置,詳細可以

    2024年02月14日
    瀏覽(29)
  • STM32--基于STM32F103的MAX30102心率血氧測量

    STM32--基于STM32F103的MAX30102心率血氧測量

    本文介紹基于STM32F103ZET6+MAX30102心率血氧測量+0.96寸OLED(7針)顯示(完整程序代碼見文末鏈接) 一、簡介 MAX30102是一個集成的脈搏血氧儀和心率監(jiān)測儀生物傳感器的模塊。它集成了一個紅光LED和一個紅外光LED、光電檢測器、光器件,以及帶環(huán)境光抑制的低噪聲電子電路。 MA

    2024年01月16日
    瀏覽(35)
  • 基于STM32F103的PWM電機驅動A4950

    基于STM32F103的PWM電機驅動A4950

    A4950的峰值輸出電流可達±3.5 A,工作電壓為7.6~40v。 優(yōu)點:相對于L298N模塊控制2個電機正反轉僅需要4個I/O口,體積小,發(fā)熱低。 缺點:需要2個PWM引腳才能控制正反轉,所以控制2個電機需要4PWM引腳,會使用STM32F103芯片一個定時器的全部PWM通道。 A4950模塊是靠輸入2路的PWM占空

    2024年02月04日
    瀏覽(31)
  • 基于STM32F103——SIM900A發(fā)送短信+串口打印

    基于STM32F103——SIM900A發(fā)送短信+串口打印

    最近用STM32F103做一個智能門鎖小玩意,密碼輸入錯誤次數(shù)多進行驗證碼解鎖,這里我采用SIM900A來通過發(fā)送短信輸入驗證碼進行解鎖。就是簡單的了解了一下在這里也單獨的寫寫這個SIM900A的一寫筆記。 。。。。。。還是直接進入主題吧 SIM900A是可以AT指令操作的,所以一般我拿

    2023年04月12日
    瀏覽(34)
  • stm32f103基于pid的藍牙循跡小車

    stm32f103基于pid的藍牙循跡小車

    目錄 前言 一、霍爾編碼器以及定時器計數(shù)原理 二、使用pwm占空比對電機速度進行控制 三、使用systick的中斷函數(shù)進行pid和速度的計算,還有oled的顯示 四、常用的測速方法: ?五、pid原理 六、oled的實現(xiàn) 七、藍牙通信 八、3路循跡模塊 總結 ? 經(jīng)過一個月對stm32的學習,終于完

    2024年02月16日
    瀏覽(34)
  • STM32項目設計:基于stm32f103c8t6智能電梯系統(tǒng)

    STM32項目設計:基于stm32f103c8t6智能電梯系統(tǒng)

    資料鏈接:待更新~ 嗶哩嗶哩視頻鏈接:https://www.bilibili.com/video/BV17D4y1V7HG/?vd_source=e5082ef80535e952b2a4301746491be0(bilibili:化作塵my) 資料鏈接:https://pan.baidu.com/s/1qObK7KBl50RmFrAtoX12kw 提取碼:iih4 實物鏈接:https://m.tb.cn/h.5h5mDXI?tk=MdxLWYHgKnz CZ0001 1、OLED顯示當前樓層、目標樓層等信息

    2024年02月03日
    瀏覽(40)
  • 基于STM32F103——XGZP6847D壓力傳感器+串口打印

    基于STM32F103——XGZP6847D壓力傳感器+串口打印

    XGZP6847D 型壓力傳感器尺寸小、易安裝,廣泛用于醫(yī)療電子、汽車電子、消費電子、運動健身器材、 物聯(lián)網(wǎng)等領域 Reg0x30(測量命令寄存器) Measurement_control2:0( 工作模式 ) 010b ,組合采集模式(一次溫度采集后立即進行一次傳感器壓力信號采集)。 011b ,休眠工作模式(定期的執(zhí)

    2023年04月24日
    瀏覽(36)
  • 【基于STM32F103C8T6的智能風扇控制】

    【基于STM32F103C8T6的智能風扇控制】

    本次分享的是基于STM32F103的智能風扇的制作,相關的硬件和部分源碼可看下面哦,需要成品的可私(創(chuàng)作不易,拒絕白嫖) 喜歡就給小殷一個關注和點贊吧 演示視頻鏈接 1、按鍵模式下通過按鍵進行風扇檔數(shù)改變一共設置為4檔 2、自動模式下根據(jù)環(huán)境溫度而改變溫度的轉速和

    2024年02月12日
    瀏覽(34)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包