06 电机驱动和PWM
-
配置俩电机:
- PA11-TIM1_CH4 定时器PWM输出-PWMA 前面已经完成(A电机——通道2)
- PB13-GPIO输出-AIN1
- PA8-TIM1_CH1定时器PWM输出-PWMB 前面已经完成(B电机——通道1)
- PB3-GPIO输出-BIN
-
1、电机驱动芯片**(A4950)**
-
原因:驱动电路大,驱动电压大,节约单片机资源👇
-
只需要1个1GPIO口和1个PWM波
我们按照这种使用方法
-
这我们使用一个图介绍
-
PA11 :90%占空比(正转)→10%占空比(反转)
-
PB13: 低电平👉高电平
-
才能达到相同电压输出转速
-
2、使用电机驱动(独立工程)
- 分析和编写代码
综合电机使用方法、C8T6单片机硬件资源、小车原理图我们要进行如下配置
-
**PA11-TIM1_CH4 定时器PWM输出-**PWMA 前面已经完成
-
PB13-GPIO输出-AIN1
-
**PA8-TIM1_CH1 定时器PWM输出-**PWMB 前面已经完成
-
PB3-GPIO输出-BIN1
-
前面我们还有两个管脚没有初始化在界面选中PB3,13,设置为IO口输出
-
生成代码
-
开始添加控制电机正反转与速度的代码,进行仿真和电机测试,示波器测量添加AIN1、BIN1控制代码
-
3、仿真测试代码
- 使用软件仿真
- 检测是否软件仿真设置正确**(参数记得改!!!)**
DARMSTM.DLL -pSTM32F103C8
-
开启仿真-添加PB13和PB3到逻辑分析仪
-
PWM:PA8,11 IO:PB3,13 -
全速仿真运行
-
4、**实物测试代码:**如何让电机90%电压转速 旋转 烧录代码
-
5、编写电机转速开环控制函数(另外复制工程)
- 新建motor文件
- 新建motor文件
-
包含文件并添加编译
-
为了方便移植和使用,我们GPIO电平控制写成宏
-
下面我们编写小车电机方向和速度控制
-
然后我们连接电机主函数进行测试
- HAL_Delay(500); Motor_Set(0,0);
- HAL_Delay(500); Motor_Set(0,0);