stm32PWM控制舵机偏转角度
舵机的偏转角度是通过高电平的占空比 来调节的,舵机的驱动信号是50Hz的方波信号,每个周期为20ms,其中高电平的占比在0.5ms-2.5ms之间。
t = 0.5ms——————-舵机会转到 0 ° t = 1.0ms——————-舵机会转到 45° t = 1.5ms——————-舵机会转到 90° t = 2.0ms——————-舵机会转到 135° t = 2.5ms——————-舵机会转到 180°
以stm32f103c8t6的TIM3的通道一为例
TIM3挂载在APB1上,我们将他设置为72MHz。
PWM频率的计算公式为:f=时钟频率/prescaler/counter
占空比的计算公式为:P=pulse/counter*100%
按图中的配置,我们可以得到f=72 000 000/72/20 000 = 50Hz,也就是20ms。
占空比为P=2000/20000=0.1
占空比我们可以通过调用函数
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,P);
来改变。在调用该函数之前,需要打开对应定时器的PWM功能。我们需要在初始化时调用
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
进行初始化。