舵机原理
考虑到机器人需要灵活和确切地转动到一定的角度,在此之前先实现舵机灵活转动。网上基本关于舵机的介绍都是旋转到特定的角度,如45°,135°等,其实只需要修改一下定时器的分频系数和预装载值就可以实现灵活转动了。
代码
CubeMX配置:
注:时钟等基础配置过于基础不再叙述
keil代码:
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim1 , TIM_CHANNEL_1); // 开启PWM
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
// 以下实现舵机从0°到180°再到0°的转动
for(i=0;i<=180;i++)
{
__HAL_TIM_SetCompare(&htim1 , TIM_CHANNEL_1 , 45+i);
HAL_Delay(2);
}
for(i=179;i>0;i--)
{
__HAL_TIM_SetCompare(&htim1 , TIM_CHANNEL_1 , 45+i);
HAL_Delay(2);
}
}
/* USER CODE END 3 */
经过实物验证是可以得到的,如果有不妥的地方还请读者指正,万分感谢!