前言
一、PMW调速电机原理
当没有进行配置PWM时默认PWM输出100%,所以此时小车的速度达到最大,调节PWM的占空比可以让小车的速度改变。
二、cubeMX配置
上篇文章讲到了PB0和PB1是控制左右电机转速的,所以我们只需要在之前的基础上将PB0和PB1设置为PWM模式即可。
三、代码解析
在原来的Moto.c和Moto.h里面添加下面代码即可
Moto.c
extern TIM_HandleTypeDef htim3; /* 函数功能:小车速度初始化 */ void Speed_Init(void) { HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3); HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_4); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, 850); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, 850); } /* 函数功能:小车速度设置 Speed:小车速度 */ void Speed_set(u16 Speed) { __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3,Speed); __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4,Speed); }
Moto.h
void Speed_Init(void); void Speed_set(u16 Speed);
总结
基于上篇文章让小车动起来这篇文章使用了PWM去改变小车的速度,大家有什么疑问可以留言或者私信。