OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8682|回复: 10

如何控制舵机的初始化角度的速度很快的问题

[复制链接]

19

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
金钱
330
注册时间
2018-8-2
在线时间
171 小时
发表于 2018-9-12 10:24:30 | 显示全部楼层 |阅读模式
1金钱
在程序一开始要对机械臂位置进行初始化(也就是初始化所有舵机的角度),我是用STMF407的芯片控制,命令是TIM_SetCompare1(TIM5,1832);但是初始化速度太快,用延时函数也不行。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2018-6-30
在线时间
42 小时
发表于 2018-9-12 10:37:58 | 显示全部楼层
本帖最后由 shiyikuangxia 于 2018-9-12 10:41 编辑

分两步走或多步试试,例如要左转60度,先转30度,延时后再转30度。一般我们要求舵机响应速度要快,但有时零点几秒的速度确实有点猛。
回复

使用道具 举报

4

主题

82

帖子

0

精华

高级会员

Rank: 4

积分
748
金钱
748
注册时间
2018-9-1
在线时间
178 小时
发表于 2018-9-12 11:37:15 | 显示全部楼层
能不能加个标点符号断下句。
通过你的描述,只能大概理解你的意思:
(可能是开机上电)在初始化舵机位置时,希望舵机缓慢打到预设角度。
如楼上所说,是个办法。但是有前提,就是你得知道当前舵机位置。
如果你的舵机能够获取到舵机位置就简单了。
可以用循环做,循环体中也可以增加适当延时,然后逐步增加/减小  占空比即可。
如果你获取不到当前舵机位置,比如上电前舵机被外力改变位置,就不好办了。
只能减小舵机电压,但觉得也仍然会比较快。
uevip#126.com
回复

使用道具 举报

19

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
金钱
330
注册时间
2018-8-2
在线时间
171 小时
 楼主| 发表于 2018-9-12 14:08:07 | 显示全部楼层
ultraelec 发表于 2018-9-12 11:37
能不能加个标点符号断下句。
通过你的描述,只能大概理解你的意思:
(可能是开机上电)在初始化舵机位置 ...

嗯嗯,现在是因为上电前的舵机不知道角度所以才不好办。
回复

使用道具 举报

19

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
金钱
330
注册时间
2018-8-2
在线时间
171 小时
 楼主| 发表于 2018-9-12 14:12:37 | 显示全部楼层
shiyikuangxia 发表于 2018-9-12 10:37
分两步走或多步试试,例如要左转60度,先转30度,延时后再转30度。一般我们要求舵机响应速度要快,但有时零 ...

现在是因为上电前角度不一定,如果知道就好办。
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-9-12 16:02:22 | 显示全部楼层
本帖最后由 edmund1234 于 2018-9-12 16:13 编辑

初始值 A,当时值 B, 目标值 C
B=A+1

定时10ms 中断更新

B +=1+(C-A)>>2;
if (B>=C){
  B=C;
TIM 停止, TIM中断停止
}

红色部分的参数为可调参数

回复

使用道具 举报

19

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
金钱
330
注册时间
2018-8-2
在线时间
171 小时
 楼主| 发表于 2018-9-13 14:08:56 | 显示全部楼层
edmund1234 发表于 2018-9-12 16:02
初始值 A,当时值 B, 目标值 C
B=A+1

怎么理解B +=1+(C-A)>>2;
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-9-13 16:12:29 | 显示全部楼层
Leven175 发表于 2018-9-13 14:08
怎么理解B +=1+(C-A)>>2;

说不如看
我有个习惯, 对于理解不了函数或公表, 就代入变量, 用图来观察, MathCad或MatLab 绘这种图很简单
我想图一看你就应该明白
回复

使用道具 举报

21

主题

218

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2322
金钱
2322
注册时间
2017-12-11
在线时间
494 小时
发表于 2018-10-1 11:23:53 | 显示全部楼层
Leven175 发表于 2018-9-12 14:08
嗯嗯,现在是因为上电前的舵机不知道角度所以才不好办。

我也碰到了这个不知道舵机位置这个问题,楼主解决了吗?
回复

使用道具 举报

21

主题

218

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2322
金钱
2322
注册时间
2017-12-11
在线时间
494 小时
发表于 2018-10-1 11:27:00 | 显示全部楼层
Leven175 发表于 2018-9-12 14:12
现在是因为上电前角度不一定,如果知道就好办。

我也碰到了这个不知道舵机位置这个问题,楼主解决了吗?
回复

使用道具 举报

19

主题

95

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
330
金钱
330
注册时间
2018-8-2
在线时间
171 小时
 楼主| 发表于 2018-11-8 14:13:11 | 显示全部楼层
白纸扇001 发表于 2018-10-1 11:27
我也碰到了这个不知道舵机位置这个问题,楼主解决了吗?

这个只能通过另外的方式去解决了,基本上舵机的速度已经固定了,只能换一种可以具有调节速度和角度的功能舵机!还有就是,角度这个问题还是没有解决!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 23:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表