本文主要是介绍STM32CubeIDE自平衡小车教程5.直流电机转速开环控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.打开上一节的文件,进入我们上一小节修改过的文件夹,找到并打开.cproject 文件,双击.ioc 文件,双击打开工程。
2.在左侧 Pinout&Configuration 界面中的 Timers 下拉中点击TIM2,然后在TIM2 的 Mode and Configuration 的 Mode中将Channel3 选择为 PWM Generation CH3;将Channel4 选择为 PWM Generation CH4。
3.在下方的参数设置选项卡中将 Prescaler 设为 72,即预分频系数(TIMx_PSC)设为 72;Counter Period 设为 100,即计数周期(自动加载值 TIMx_ARR)设为 100;Pulse 设为 100,即占空比设置为 100%。
4.在右侧界面的芯片中分别点击 PB12、PB13、PB14、PB15,并将其配置为 GPIO_Output。
5.在 System Core 下拉菜单中选择 GPIO,然后在左侧的System Core 下拉菜单中选择 GPIO,然后在 GPIO Mode and Configuration 中对 PB12、PB13、PB14、PB15 引脚进行配置。
6. GPIO output level代表 GPIO 默认输出电平,在这里设置为低电平;GPIO mode 代表 GPIO 引脚模式,在这里设置为推挽输出;GPIO Pull-up/Pull-down 即 GPIO 上拉或下拉,在这里设置为既不上拉也不下拉;Maximum output speed 即 最大输出速度,在这里设置为低速。(默认设置即可)
User Label 即用户标签,在这里将PB12 改为 BIN2,PB13 改为 BIN1; PB14 改为 AIN1,PB15 改成AIN2。
7.点击生成代码,打开工程左侧 gpio.c 源文件,双击打开,可以看到HAL_GPIO_Init() 函数里面已经有BIN1_Pin|BIN2_Pin 的相关初始化代码。
8.在 /* USER CODE BEGIN 2 */ 和 /* USER CODE END 2 */ 中加入以下代码
HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);//开启 TIM2_CH3 的 PWM 输出HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_4);//开启 TIM2_CH4 的 PWM 输出HAL_GPIO_WritePin(BIN1_GPIO_Port, BIN1_Pin, GPIO_PIN_SET);//初始化BIN1引脚为低电平(左 轮)HAL_GPIO_WritePin(BIN2_GPIO_Port, BIN2_Pin, GPIO_PIN_RESET);//初始化 BIN2 引脚为高电平(左轮)HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_SET);//初始化 AIN1 引脚为低电平(右轮)HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_RESET);//初始化 AIN2 引脚为高电平(右轮)__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_3, 100);//控制小车转速(右轮)__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 100);//控制小车转速(左轮)
其中 __HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4, 100)里的100是用来控制PWM占空比的大小的。在配置IOC文件时,我们设置的最大PWM值为100,如果需要调整转速,可以设置0~100的PWM数值来控制车轮转速。
9.点击编译烧录,开启小车电源开关,完成转速的开环控制。
STM32CubeIDE直流电机转速开环控制效果展示
这篇关于STM32CubeIDE自平衡小车教程5.直流电机转速开环控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!