OpenEdv-开源电子网

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

新手求助!请大佬们看看我这个STM32控制SG90舵机的程序,只能转一个角度,不能转过去再回来

[复制链接]

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
发表于 2018-8-11 10:33:05 | 显示全部楼层 |阅读模式
2金钱
本帖最后由 霞飞 于 2018-8-11 10:36 编辑

这是输出PWM的函数

这是输出PWM的函数

如果分开执行主函数里语句,舵机可以转相应的角度,但合在一起按占空比先大后小的顺序,应该转过去角度再回来啊,结果回不来,请各位大佬帮忙看下

这是主函数

这是主函数

最佳答案

查看完整内容[请看2#楼]

延时放大试试看,每个占空比延时1秒
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
金钱
466
注册时间
2018-6-8
在线时间
114 小时
发表于 2018-8-11 10:33:06 | 显示全部楼层
霞飞 发表于 2018-8-11 11:21
但合在一起就是转过一个角度停在那了,回不来

延时放大试试看,每个占空比延时1秒
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-11 10:36:07 | 显示全部楼层
我记得有个函数是修改pwm频率的啊....应该不能直接操作寄存器吧,你找找那个函数,看看里面怎么配的
猪猪熊呢?
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 10:40:28 | 显示全部楼层
323232 发表于 2018-8-11 10:36
我记得有个函数是修改pwm频率的啊....应该不能直接操作寄存器吧,你找找那个函数,看看里面怎么配的

我之前在网上找了不少资料,大都是这样配置的,就是控制占空比
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 10:45:16 | 显示全部楼层
好多都是说让舵机转过一定角度,没发现怎么让舵机再转回来,很疑惑
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-11 10:48:45 | 显示全部楼层
我记得我当时不是这么用的,有个函数直接改频率就行了
猪猪熊呢?
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 10:52:04 | 显示全部楼层
323232 发表于 2018-8-11 10:48
我记得我当时不是这么用的,有个函数直接改频率就行了

能让我看下你是怎么配置的吗?
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-8-11 11:01:53 | 显示全部楼层
霞飞 发表于 2018-8-11 10:52
能让我看下你是怎么配置的吗?

当时比赛的程序写的很乱...... 比赛—板球系统.zip (11.41 MB, 下载次数: 431)
猪猪熊呢?
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:02:55 | 显示全部楼层
323232 发表于 2018-8-11 11:01
当时比赛的程序写的很乱......

好的,谢谢分享
回复

使用道具 举报

19

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
金钱
466
注册时间
2018-6-8
在线时间
114 小时
发表于 2018-8-11 11:07:18 | 显示全部楼层
大学的时候用过舵机,我用过的都是50HZ的pwm频率,10K的没用过。
舵机的话需要看它的参数,一般会有一个高电平范围,以我用过的舵机为例:
50HZ的频率周期为20ms,舵机标注的控制范围是在0.5ms到2.5ms,也就说对应占空比在2.5%-12.5%,2.5%表示0度,12.5%表示最大角度(90、180、270等)。
回复

使用道具 举报

19

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
金钱
466
注册时间
2018-6-8
在线时间
114 小时
发表于 2018-8-11 11:09:22 | 显示全部楼层
不好意思,看了注释以为楼主输出的是10Khz的PWM。没注意看程序,频率是50hz的话,楼主可以去看看这个舵机给出的控制参数。
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:10:53 | 显示全部楼层
wbyrnygrysc 发表于 2018-8-11 11:07
大学的时候用过舵机,我用过的都是50HZ的pwm频率,10K的没用过。
舵机的话需要看它的参数,一般会有一个高 ...

对的,我写的主函数里就是对应高电平持续时间0.5ms,1ms....以此控制转过的角度
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:15:11 | 显示全部楼层
wbyrnygrysc 发表于 2018-8-11 11:09
不好意思,看了注释以为楼主输出的是10Khz的PWM。没注意看程序,频率是50hz的话,楼主可以去看看这个舵机给 ...

和你说的一样,也是0.5到2.5ms,我分开执行语句是可以正常转过角度的,但是我想让它再回到原位置,请问怎么实现
回复

使用道具 举报

19

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
金钱
466
注册时间
2018-6-8
在线时间
114 小时
发表于 2018-8-11 11:16:37 | 显示全部楼层
霞飞 发表于 2018-8-11 11:10
对的,我写的主函数里就是对应高电平持续时间0.5ms,1ms....以此控制转过的角度

调试试试,一次输出一种占空比。看看舵机能不能根据占空比转到对应的角度。
猜测可能是因为90ms的延时太短了,不知道对不对。
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:18:33 | 显示全部楼层
wbyrnygrysc 发表于 2018-8-11 11:16
调试试试,一次输出一种占空比。看看舵机能不能根据占空比转到对应的角度。
猜测可能是因为90ms的延时太 ...

对,我分开测试就是只输出一种占空比,很正常啊
回复

使用道具 举报

19

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
金钱
466
注册时间
2018-6-8
在线时间
114 小时
发表于 2018-8-11 11:19:25 | 显示全部楼层
霞飞 发表于 2018-8-11 11:15
和你说的一样,也是0.5到2.5ms,我分开执行语句是可以正常转过角度的,但是我想让它再回到原位置,请问怎 ...

回到0度位置就是0.5ms,你的pwm没错
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:21:15 | 显示全部楼层
wbyrnygrysc 发表于 2018-8-11 11:19
回到0度位置就是0.5ms,你的pwm没错

但合在一起就是转过一个角度停在那了,回不来
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:40:13 | 显示全部楼层
哇,解决了,谢谢大佬们
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:42:00 | 显示全部楼层
霞飞 发表于 2018-8-11 11:21
但合在一起就是转过一个角度停在那了,回不来

大佬你解决了困扰我两天的问题,十分感激
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:44:56 | 显示全部楼层
wbyrnygrysc 发表于 2018-8-11 10:33
延时放大试试看,每个占空比延时1秒

大佬你解决了困扰我两天的问题,十分感激
回复

使用道具 举报

19

主题

82

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
466
金钱
466
注册时间
2018-6-8
在线时间
114 小时
发表于 2018-8-11 11:46:47 | 显示全部楼层
霞飞 发表于 2018-8-11 11:44
大佬你解决了困扰我两天的问题,十分感激

当时搞舵机的时候,记得舵机的旋转速度没这么快,你程序跑完也就1秒钟不到。
回复

使用道具 举报

5

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1038
金钱
1038
注册时间
2018-8-11
在线时间
114 小时
 楼主| 发表于 2018-8-11 11:52:29 | 显示全部楼层
wbyrnygrysc 发表于 2018-8-11 11:46
当时搞舵机的时候,记得舵机的旋转速度没这么快,你程序跑完也就1秒钟不到。

真的是,大哥一语点醒梦中人啊
回复

使用道具 举报

6

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2018-8-17
在线时间
30 小时
发表于 2018-11-8 12:20:50 | 显示全部楼层
霞飞 发表于 2018-8-11 11:52
真的是,大哥一语点醒梦中人啊

大佬能不能分享一下你的程序呢
学习一点都不快乐
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 23:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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