• 方案介紹
    • 第六章-電機驅動和PWM
  • 附件下載
  • 推薦器件
  • 相關推薦
申請入駐 產業(yè)圖譜

第六章-電機驅動和PWM-STM32f103c8t6最小系統(tǒng)板_STM32項目_嵌入式學習

2024/06/18
4632
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

聯系方式.txt

共1個文件

第六章-電機驅動和PWM

6.1-認識電機驅動

示波器硬件仿真、軟件仿真

項目使用電機驅動芯片為A4950、下面是電機驅動的相關介紹
在這里插入圖片描述
我們按照這種使用方法
在這里插入圖片描述
這我們使用一個圖介紹

在這里插入圖片描述
在這里插入圖片描述

6.2-使用電機驅動(獨立工程)

分析和編寫代碼

綜合電機使用方法、C8T6單片機硬件資源、小車原理圖我們要進行如下配置
PA11-TIM1_CH4 定時器PWM輸出-PWMA 前面已經完成

PB13-GPIO輸出-AIN1

PA8-TIM1_CH1 定時器PWM輸出-PWMB 前面已經完成

PB3-GPIO輸出-BIN1
在這里插入圖片描述還有兩個管腳沒有初始化
在這里插入圖片描述
生成代碼

開始添加控制電機正反轉與速度的代碼,進行仿真和電機測試,示波器測量

添加AIN1、BIN1控制代碼

在這里插入圖片描述

	HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET);//設置AIN1 PB13為 低電平
	HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_SET);  //設置BIN1 PB3為高電平
	HAL_Delay(1000);
	//兩次會使得電機反向。
	HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_SET);//設置AIN1 PB13為 高電平
	HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_RESET);  //設置BIN1 PB3為低電平

仿真測試代碼

使用軟件仿真

檢測是否軟件仿真設置正確
在這里插入圖片描述
開啟仿真-添加PB13和PB3到邏輯分析儀
在這里插入圖片描述
全速仿真運行
在這里插入圖片描述

實物測試代碼

如何讓電機90%電壓轉速 旋轉

燒錄代碼

6.3-編寫電機轉速開環(huán)控制函數(另外復制工程)

新建motor文件
在這里插入圖片描述
包含文件并添加編譯
在這里插入圖片描述
為了方便移植和使用,我們GPIO電平控制寫成宏
在這里插入圖片描述

#define AIN1_RESET  HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_RESET)//設置AIN1 PB13為 低電平
#define AIN1_SET    HAL_GPIO_WritePin(AIN1_GPIO_Port,AIN1_Pin,GPIO_PIN_SET)//設置AIN1 PB13為 高電平

#define BIN1_RESET 	HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_RESET)  //設置BIN1 PB3為低電平
#define BIN1_SET    HAL_GPIO_WritePin(BIN1_GPIO_Port,BIN1_Pin,GPIO_PIN_SET)//設置AIN1 PB13為 高電平

下面我們編寫小車電機方向和速度控制

/*******************
*  @brief  設置兩個電機轉速和方向
*  @param  motor1:電機B設置參數、motor2:設置參數
*  @param  motor1: 輸入1~100 對應控制B電機正方向速度在1%-100%、輸入-1~-100 對應控制B電機反方向速度在1%-100%、motor2同理
*  @return  無
*
*******************/
void Motor_Set (int motor1,int motor2)
{
	//根據參數正負 設置選擇方向
	if(motor1 < 0) BIN1_SET;
	   else      BIN1_RESET;
	if(motor2 < 0) AIN1_SET;
		else      AIN1_RESET;
	
	//motor1 設置電機B的轉速
	if(motor1 < 0)
	{
		if(motor1 < -99) motor1 = -99;//超過PWM幅值
		//負的時候絕對值越小  PWM占空比越大
		//現在的motor1      -1   -99
		//給寄存器或者函數  99  1 
		 __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, (100+motor1));//修改定時器1 通道1 PA8 Pulse改變占空比
	}
	else{
		if(motor1 > 99) motor1 = 99;
		//現在是   0 1  99
		//我們賦值 0 1 99
		 __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, motor1);//修改定時器1 通道1 PA8 Pulse改變占空比
	}
	
	//motor2 設置電機A的轉速
	if(motor2 < 0)
	{
		if(motor2 < -99) motor2 = -99;//超過PWM幅值
		//負的時候絕對值越小  PWM占空比越大
		//現在的motor2      -1   -99
		//給寄存器或者函數   99  1 
		__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, (100+motor2));//修改定時器1 通道4 PA11 Pulse改變占空比
	}
	else{
		if(motor2 > 99) motor2 = 99;
		//現在是   0 1 99
		//我們賦值 0 1 99
		 __HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, motor2);//修改定時器1 通道4 PA11 Pulse改變占空比

	}

}  

然后我們連接電機主函數進行測試

	HAL_Delay(500);
	Motor_Set(0,0);

本章結束兄弟們
下章繼續(xù)-編碼器測速部分

聯系:Q,1930299709

  • 聯系方式.txt
    下載

推薦器件

更多器件
器件型號 數量 器件廠商 器件描述 數據手冊 ECAD模型 風險等級 參考價格 更多信息
RMLV0416EGSB-4S2#AA1 1 Renesas Electronics Corporation 4Mb Advanced LPSRAM (256-kword x 16-bit), TSOP(44), /Tray

ECAD模型

下載ECAD模型
$4.41 查看
SST25VF016B-50-4I-S2AF 1 Silicon Storage Technology Flash, 16X1, PDSO8, 5.20 X 8 MM, ROHS COMPLIANT, EIAJ, SOIC-8

ECAD模型

下載ECAD模型
$1.95 查看
TJA1055T/3/2Z 1 NXP Semiconductors Interface Circuit

ECAD模型

下載ECAD模型
$19.42 查看
意法半導體

意法半導體

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

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

查看更多

相關推薦