你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 HAL库控制数字舵机

[复制链接]
STMCU小助手 发布时间:2022-4-12 10:00
介绍
& }' u  U% V4 D8 _数字舵机一般比较贵,数字舵机与模拟舵机的区别是前者在得到相应的脉冲后,会很清脆的到达固定的角度,不会产生异响;而模拟舵机则会在到达固定角度后抖动。8 }: y# k8 J; J! L- s2 ~
" z' S6 s( T# q5 n% H6 f; J
控制方法2 x. [- M" X9 N# J7 i
数字舵机大多是是依靠PWM进行控制,舵机一个周期是20ms,给定固定占空比,则会转到相应的角度;例如让舵机转到90度的位置,那么20ms的周期内就是让低电平占1.5ms,这样就控制了舵机转到90度。对应如下表:
  O7 ^& G5 ?4 p5 a5 M1 {2 }3 Q7 X8 p2 e
20191109153738713.png   {$ v: C# T" A6 P

. ~& A. j9 h- A2 r) J所以我们的方法就是使用STM32单片机的定时器输出周期为20ms的PWM波,通过更改占空比值实现舵机的角度控制。通过上表可以得到一个公式:一度的占空比 = 1 / 90 * 角度 + 0.5/ W/ h8 u& F- [/ t
3 ~' i; O6 N' ^  F& b' W
STM32配置/ c/ }5 m6 x0 K4 {* {8 |- i
这里我使用STM32F407VE,配置定时器3和PWM通道1,配置如下:
7 d6 U3 M* D/ M+ x/ E7 ?) [% u& |; _1 l' {. L6 ?
20191109154236469.png 5 d( F0 l9 e/ ^9 _! p5 L
' o# Y& r* x# J) A
定时器3的时钟主频是84M,这里我分8400频(8399+1),计数值200(199+1),
# p  I. l7 Y8 s! d& i# w/ S所得到的定时周期时间就是:200 * 8400 / 84000000 = 0.02s = 20ms. y0 Y+ k1 S4 ^' x
PWM的频率就是:84000000 / (200 * 8400) = 50HZ/ r& \8 V0 {! v* M
按照以上配置计算,那么上面的公式就要扩大十倍,变为:一度的占空比 = 1 / 90 * 角度 + 5( u/ U( [* H+ m5 x% u
转为代码就是:, _& o3 s: i) j' E) D( q
  1. // angle:角度值,0~180/ m" g3 c3 i" U. a# }& g: G
  2. void Servo_Control(uint16_t angle)
    # T* S7 ]9 V# q% H9 g
  3. {# v, a+ o. D: P# s8 K
  4.    float temp;
    3 I: A: a; {# c
  5.    temp =(1.0 / 9.0) * angle + 5.0;//占空比值 = 1/9 * 角度 + 5- V. M" X7 E8 ^+ S  n2 J
  6.    __HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_1, (uint16_t )temp);
    0 s9 y, d( r, g0 z* x
  7. }
复制代码
9 }0 w; ?1 h% J( B9 w# w; u
通过该函数,就可以很方便的控制数字舵机转动了!) u% n( J& M/ j4 S

- O$ o1 G! {% B) t+ c7 `$ O6 l注意:
7 Y: r  X* ~2 f' CSTM32CUBEMX生成的代码不是使能定时器,所以需要你手动添加下面一行代码使能定时器:2 X( ^+ k; m2 t7 B
8 z+ B6 I4 e1 K2 P' @, c
  1. HAL_TIM_Base_Start(&htim3);
复制代码

$ r6 x1 G9 F' w0 o, h L]0W9O@0FFP8O(GDZX2Q~IP.png   B. Q5 L7 @, G4 [$ f

9 ]$ o# e/ ?2 y& U$ y: {5 c% B) }2 z* G$ d

' z( Q4 h9 c' d6 ?9 Z
; R$ F7 o9 r" e( y  T3 L
收藏 评论0 发布时间:2022-4-12 10:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版