1、简介
常见的舵机分为360°和180°两种,本次对180°舵机进行驱动,舵机驱动需要通过PWM信号进行驱动。本文通过定时器中的PWM信号设定使得SG90舵机进行不同角度的转动。
2、PWM信号和舵机角度关系
对于舵机的驱动,需要20ms的脉冲,高电平时间在0.5ms-2.5ms区间即可控制舵机在0-180°角度进行转动。常见角度对应关系如下所示:
3、Cubemax初始化配置如下:
3.1基础配置
首先进行时钟树等基础配置。
3.2 PWM配置
信号引脚选用PB1,对应定时器3通道4,如下图所示:
接着在定时器对PWM进行配置,如下图所示:
接着对PSC、arr参数进行设置,定时器计算过程点击:STM32定时器定时计算。参数设置如下所示:
硬件接线:褐色接负极,红色接正极,橘黄色接信号(PB1)。
接着生成代码。
3、代码实现过程如下:
3.1 在主函数中打开对应的定时器时钟,代码如下所示:
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4);//打开对应定时器通道
接着在循环中进行角度设置,代码如下所示:
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_4, 5);//相当于一个周期内(20ms)有1ms高脉冲
HAL_Delay(500);
__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_4,25); //相当于一个周期内(20ms)有2.5ms高脉冲
HAL_Delay(500);
当pwm==5时,转动角度为0度
当pwm==10时,转动角度为45度
当pwm==15时,转动角度为90度
当pwm==20时,转动角度为135度
当pwm==25时,转动角度为180度
演示效果如下:
链接:百度网盘 请输入提取码
提取码:0s0z文章来源:https://www.toymoban.com/news/detail-445605.html
上文如有错误,恳请各位大佬指正。文章来源地址https://www.toymoban.com/news/detail-445605.html
到了这里,关于STM32F103C8T6(HAL库)驱动舵机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!