目录
一、舵机操作原理解释
原理解释
使用50Hz的不同占空比的PWM波来控制舵机
舵机的控制一般需要一个20ms 50Hz的脉冲,角度对应如下:
t = 0.5ms——————-舵机会转动 0 °
t = 1.0ms——————-舵机会转动 45°
t = 1.5ms——————-舵机会转动 90°
t = 2.0ms——————-舵机会转动 135°
t = 2.5ms——————-舵机会转动180°
二、STM32Cube配置
老套路:
(1)配置RCC
(2)配置自己喜欢的引脚和定时器
(3)配置相应参数
Prescaler(时钟预分频数):
Counter Period(自动重装载值):
Mode(定时模式):PWM mode 1 设置定时器计数器与比较值相等时输出引脚的状态
占空比计算:pwm/(ARR+1)
STM32CUBEMX配置如下:
(7199+1)*(199+1)/72M=20000US=20ms=0.02S=50HZ;
1s=1000MS=1000 000US
占空比为:pluse/(199+1);
三、添加代码
(1)定时器使能
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
/* USER CODE END 2 */
(2)pwm编写
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
static uint16_t pwm=10;
static uint16_t dir=1;
if(dir){
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwm);
HAL_Delay(100);
pwm++;
if(pwm>25)
dir=0;
}
else{
pwm--;
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, pwm);
HAL_Delay(100);
if(pwm==10)
dir=1;
}
}
}
/* USER CODE END 3 */
(4)分析之总结
当pwm==5时,转动角度为0度
当pwm==10时,转动角度为45度
当pwm==15时,转动角度为90度
当pwm==20时,转动角度为135度
当pwm==25时,转动角度为180度