打印
[应用相关]

STM32 HAL库控制数字舵机

[复制链接]
981|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
介绍
数字舵机一般比较贵,数字舵机与模拟舵机的区别是前者在得到相应的脉冲后,会很清脆的到达固定的角度,不会产生异响;而模拟舵机则会在到达固定角度后抖动。

控制方法
数字舵机大多是是依靠PWM进行控制,舵机一个周期是20ms,给定固定占空比,则会转到相应的角度;例如让舵机转到90度的位置,那么20ms的周期内就是让低电平占1.5ms,这样就控制了舵机转到90度。对应如下表:

所以我们的方法就是使用STM32单片机的定时器输出周期为20ms的PWM波,通过更改占空比值实现舵机的角度控制。通过上表可以得到一个公式:一度的占空比 = 1 / 90 * 角度 + 0.5

STM32配置
这里我使用STM32F407VE,配置定时器3和PWM通道1,配置如下:

定时器3的时钟主频是84M,这里我分8400频(8399+1),计数值200(199+1),
所得到的定时周期时间就是:200 * 8400 / 84000000 = 0.02s = 20ms
PWM的频率就是:84000000 / (200 * 8400) = 50HZ
按照以上配置计算,那么上面的公式就要扩大十倍,变为:一度的占空比 = 1 / 90 * 角度 + 5
转为代码就是:

// angle:角度值,0~180
void Servo_Control(uint16_t angle)
{
   float temp;
   temp =(1.0 / 9.0) * angle + 5.0;//占空比值 = 1/9 * 角度 + 5
   __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, (uint16_t )temp);
}



通过该函数,就可以很方便的控制数字舵机转动了!

注意:
STM32CUBEMX生成的代码不是使能定时器,所以需要你手动添加下面一行代码使能定时器:

HAL_TIM_Base_Start(&htim3);




使用特权

评论回复
沙发
51xlf| | 2021-8-4 20:13 | 只看该作者

HAL库控制SG90舵机   

使用特权

评论回复
板凳
i1mcu| | 2021-8-4 20:13 | 只看该作者
配置定时器3和PWM通道1  

使用特权

评论回复
地板
pmp| | 2021-8-4 20:14 | 只看该作者
怎么与舵机相连相连  

使用特权

评论回复
5
mmbs| | 2021-8-4 20:14 | 只看该作者
pwm控制舵机怎么调速  

使用特权

评论回复
6
1988020566| | 2021-8-4 20:14 | 只看该作者
从哪个口输出PWM  

使用特权

评论回复
7
lzbf| | 2021-8-4 20:15 | 只看该作者
PWM波怎样通过按键来调波?   

使用特权

评论回复
8
youtome| | 2021-8-4 20:15 | 只看该作者
可以驱动16路舵机么?  

使用特权

评论回复
9
cemaj| | 2021-8-4 20:16 | 只看该作者
STM32控制舵机   多个舵机

使用特权

评论回复
10
jimmhu| | 2021-8-4 20:16 | 只看该作者
舵机一般是50Hz的PWM波   

使用特权

评论回复
11
lihuami| | 2021-8-4 20:16 | 只看该作者
根据角度计算公式,控制舵机任意角度转动

使用特权

评论回复
12
1988020566| | 2021-8-4 20:16 | 只看该作者
舵机本身电位器的位置角度信号可以用stm32读出来吗?

使用特权

评论回复
13
mmbs| | 2021-8-4 20:16 | 只看该作者
用寄存器怎么调节舵机频率为50hz  

使用特权

评论回复
14
pmp| | 2021-8-4 20:16 | 只看该作者
用stm32怎么控制18个舵机?  

使用特权

评论回复
15
i1mcu| | 2021-8-4 20:17 | 只看该作者
可以直接驱动舵机吗?  

使用特权

评论回复
16
51xlf| | 2021-8-4 20:17 | 只看该作者
数字舵机大多是是依靠PWM进行控制  

使用特权

评论回复
17
cemaj| | 2021-8-4 20:17 | 只看该作者
般通过单片机产生PWM信号控制舵机。  

使用特权

评论回复
18
youtome| | 2021-8-4 20:17 | 只看该作者
用数字舵机好还是模拟舵机好  

使用特权

评论回复
19
lzbf| | 2021-8-4 20:17 | 只看该作者
求STM32F103ZE6开发板的输出PWM脉冲的例程  

使用特权

评论回复
20
jimmhu| | 2021-8-4 20:17 | 只看该作者
按照占空比控制角度  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

78

主题

4079

帖子

2

粉丝