1. 程式人生 > 實用技巧 >427【畢設課設】基於STM32微控制器行動式氣象儀風速風向檢測系統

427【畢設課設】基於STM32微控制器行動式氣象儀風速風向檢測系統

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

STM32微控制器行動式氣象儀風速風向檢測系統69
本系統由STM32T103C8T6微控制器、風向採集模組、風速採集模組及電源組成。
1、微控制器實時採集風速感測器資料,將採集模擬量轉化為數字量,
計算風速大小,單位m/s,顯示精度0.1,範圍:0-30m/s。
2、微控制器實時採集風向感測器資料,將採集模擬量轉化為數字量,
計算風向角度,單位度,範圍0-360度。
3、LCD1602實時顯示當前風速大小,風向角度值。
注意:風向角度相對於風向模組上箭頭指向的方向位置。

  TIM3_Int_Init(499,7199); //定時器初始化
	
	LED_Init();		  		//初始化介面 	 
	Adc_Init(); //初始化ad轉換
	 
	Lcd_GPIO_init();   //液晶介面初始化
	Lcd_Init();		 //液晶配置初始化
	delay_ms(20);	 
		
	 while(1)
	{			

		if(disFlag==1)//定時讀取標誌
		{
			disFlag=0;//清空標誌

			adcx=Get_Adc_Average(ADC_Channel_0,5);//讀取ad轉換值 5次求平均	
			fanSpeed = ((float)adcx*3.3/4096)*2*MAX_FAN_SPEED/5;  //風速轉換 根據手冊
			if(fanSpeed>300)fanSpeed=300; //
			
			adcx=Get_Adc_Average(ADC_Channel_1,5);//讀取ad轉換值 5次求平均	
			fanDir = ((float)adcx*3.3/4096)*2*360/5;       //風向轉換 根據手冊                  
			if(fanDir>360)fanDir=360;     
 			
			sprintf(dis0,"nowSpeed:%04.1fm/s  ",(float)fanSpeed/10);//列印					
			Lcd_Puts(0,0,(u8 *)dis0);//顯示	
			
			sprintf(dis1,"nowDir  :%03d  ",(unsigned int)fanDir);//列印
			Lcd_Puts(0,1,(u8 *)dis1);//顯示					
			Lcd_1Put(12,1,0xdf);//顯示