STM32 STC15 控制四路SG90舵机

29 篇文章 7 订阅
19 篇文章 6 订阅

舵机其实是一种伺服马达,通过改变PWM的占空比来改变舵机的位置,PWM周期为20毫秒。

180度舵机占空比和位置的对应关系如下:

t = 0.5ms——————-舵机会转动 0 ° 
t = 1.0ms——————-舵机会转动 45°
t = 1.5ms——————-舵机会转动 90°
t = 2.0ms——————-舵机会转动 135°
t = 2.5ms——————-舵机会转动180°

如果使用STM32控制舵机,可以使用硬件PWM。以STM32F103为例,TIM3产生四路硬件PWM,这四路硬件PWM的周期是一样的为20ms, 占空比每一路都可以单独调节,这样就产生了四路PWM来控制舵机,注意占空比定义在0.5ms-2.5ms。

四路硬件PWM对应的管脚如下, SERVO01-SERVO04:

程序中通过修改四路PWM的占空比就可以分别控制四路舵机,注意为了保持舵机控制的平滑最好是缓慢改变占空比。比如从 0 ° 改变到 180 °,不是直接改变占空比到2.5ms而是缓慢增加占空比到2.5ms。这个改变速度需要和舵机联调,保证舵机转动的平滑。

如果使用STC15单片机控制舵机,因为STC15只有三路硬件PWM,所以只能采用软件模拟PWM。用定时器产生50us中断,那么50us就是修改占空比的最小值,周期还是20ms。

这样在定时器中断中改变占空比就可以控制舵机转动,实测50us中断中控制四路舵机是毫无压力的,同STM32控制一样,占空比需要慢慢改变而不是一下修改到目标值。

 

技术支持请加Q,一起学习新知识。删除& —等特殊字符277&94一3&652。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片机毕业设计-远望创客学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值