1. 程式人生 > 實用技巧 >403【畢設課設】基於STM32無刷直流電機調速藍芽APP無線監測控制系統

403【畢設課設】基於STM32無刷直流電機調速藍芽APP無線監測控制系統

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

STM32微控制器無刷直流電機調速藍芽APP控制118
本系統由STM32F103C8T6微控制器核心板、按鍵電路、藍芽模組、
電調模組及電機部分組成。
通過按鍵可以驅動無刷直流電機停止、加速、減速;中間按鍵為加速按鍵,
上電後按下加速按鍵即可執行。執行中按下停止鍵直接停止。
通過藍芽可以就控制直流無刷電機的執行情況,在APP介面首先“使能控制”,
可以對電機加速、減速控制,也可以拖動滾條直接控制;也可以停止電機執行。
3、電機轉速是緩慢變化的,是為了防止轉速變化過快導致電機劇烈抖動可能帶來的危險和電機自身的損傷。
注意:在APP介面只有“使能控制”後才可以控制電機執行狀況,防止誤操作。

App協議:
定義 起始位元組 資料長度 命令 資料內容 校驗和 結束位元組
標識 smsb slsb length cmd data data check emsb elsb
示例 0x2a 0xd6 0x02 0x04 0x50 0x78 0x32 0xdd 0x23

校驗和:1個位元組,用於校驗接收到的資訊是否正確,計算方法是
check = 0x100 - (length+cmd+data[0]+data[1]+...+data[n])&0xff
如上表中:0x32 = 0x100 - (0x02+0x04+0x50+0x78)&0xff

單片機發送命令:
#define CMD_MCU_SPEED_NOW 0x02//微控制器將當前速度傳送給APP
#define CMD_MCU_SPEED_SET 0x03//微控制器將當前設定的速度傳送給APP

微控制器接收命令:
#define CMD_APP_SET_SPEED 0x02//APP設定電機轉速
#define CMD_APP_SPEED_DEC 0x03//APP設定電機減速
#define CMD_APP_SPEED_INC 0x04//APP設定電機加速
#define CMD_APP_SET_STOP 0x05//APP設定電機停止

//減速
void Speed_Dec(u8 ppm){
	PPM_set -= ppm;
	if(PPM_set<830){//電機內部有阻力,轉速小於一定值是轉不起來的
		PPM_set = 720;//小於830則直接等於720(停止)
	}
	else if(PPM_set>1440){//1440為全速執行
		PPM_set=1440;
	}
}
//加速
void Speed_Inc(u8 ppm){
	PPM_set += ppm;
	if(PPM_set<830){//電機內部有阻力,轉速小於一定值是轉不起來的
		PPM_set=830;//小於830則直接等於830(啟動)
	}
	else if(PPM_set>1440){//1440為全速執行
		PPM_set=1440;
	}
}

/********