OpenEdv-开源电子网

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

感谢论坛对我的帮助,分享一个自己写的步进电机驱动的程序

[复制链接]

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
发表于 2016-3-2 21:44:13 | 显示全部楼层 |阅读模式
包含了电机脉冲的个数控制,方向控制,以及输出频率的控制。
新手只为提供个简单思路。
自己测试完,没有大问题。
不喜勿喷!

单个电机调试完毕速度方向调试完毕.rar

1.77 MB, 下载次数: 11086

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

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2016-3-2 21:49:21 | 显示全部楼层
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-1-17
在线时间
9 小时
发表于 2016-3-8 13:30:33 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-1-17
在线时间
9 小时
发表于 2016-3-8 13:33:31 | 显示全部楼层
请问你用的哪块板子?
回复 支持 反对

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2016-1-17
在线时间
9 小时
发表于 2016-3-10 10:59:30 | 显示全部楼层
你代码里面这些是什么意思???  if(m%2&&m/2<200) 谢谢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165538
金钱
165538
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-10 11:03:06 | 显示全部楼层
不错,谢谢分享
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-3-12 14:24:29 | 显示全部楼层
KnightLi 发表于 2016-3-10 10:59
你代码里面这些是什么意思???  if(m%2&&m/2

这个事控制脉冲的个数  求余是为了实现电平的翻转  而200 是个数 脉冲的个数
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-3-12 14:24:58 | 显示全部楼层
KnightLi 发表于 2016-3-8 13:33
请问你用的哪块板子?

mini板
回复 支持 反对

使用道具 举报

1

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2016-4-5
在线时间
32 小时
发表于 2016-4-10 20:45:46 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

2

主题

3

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2015-10-10
在线时间
8 小时
发表于 2016-4-12 15:31:46 | 显示全部楼层
电机的四个输入口接mini板的哪些端口呢
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-12 21:28:44 | 显示全部楼层
这个需要自己设定  因为现在我改了以前的程序,脉冲的输出应该定义的是PA6,PA7.这个程序我只控制了两个电机,其他的你可以自己外加定义的
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-12 21:29:11 | 显示全部楼层
黑色秀气 发表于 2016-4-12 15:31
电机的四个输入口接mini板的哪些端口呢

请看楼下
回复 支持 反对

使用道具 举报

头像被屏蔽

7

主题

21

帖子

0

精华

禁止发言

积分
1370
金钱
1370
注册时间
2011-6-12
在线时间
142 小时
发表于 2016-4-13 15:28:24 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-4-13 15:42:57 | 显示全部楼层
学习一下
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-4-13 15:48:15 | 显示全部楼层
这程序有问题的。驱动不了电机的
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-13 20:47:01 | 显示全部楼层
752151619 发表于 2016-4-13 15:48
这程序有问题的。驱动不了电机的

你要看你电机的型号,是否有电机的驱动器,这个程序只是输出脉冲信号,并且可以控制脉冲的周期。 主要是驱动步进电机
回复 支持 反对

使用道具 举报

0

主题

0

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2018-3-19
在线时间
13 小时
发表于 2016-4-17 20:01:48 来自手机 | 显示全部楼层
请问这个怎么实现正反转
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-19 14:13:18 | 显示全部楼层
第七杯柚子茶 发表于 2016-4-17 20:01
请问这个怎么实现正反转

正反转的话我最初的工程里没有 目前写的工程有,其实很简单,单独设置是个引脚通过按键控制高低电平就可以了
回复 支持 反对

使用道具 举报

5

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-25
在线时间
7 小时
发表于 2016-4-21 15:54:43 | 显示全部楼层
楼主能不能加下扣扣,我有点问题想请教一下
回复 支持 反对

使用道具 举报

5

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-25
在线时间
7 小时
发表于 2016-4-21 15:54:58 | 显示全部楼层
我扣扣1781247769
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-21 16:03:21 | 显示全部楼层
zcls 发表于 2016-4-21 15:54
我扣扣1781247769

有什么问题?
回复 支持 反对

使用道具 举报

5

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-25
在线时间
7 小时
发表于 2016-4-21 16:05:22 | 显示全部楼层
你这个是没有pwm调制的,是不是不能直接驱动电机,是要把电机接上驱动器,你的每个定时器输出脉冲倒驱动器就能控制电机了,不知道你当时是做的什么啊?能不能介绍一下呢?
专注
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-21 17:03:52 | 显示全部楼层
zcls 发表于 2016-4-21 16:05
你这个是没有pwm调制的,是不是不能直接驱动电机,是要把电机接上驱动器,你的每个定时器输出脉冲倒驱动器 ...

这个是加驱动器的,四路输出不同占空比的pwm 我也有写,道理上差不多的。论坛里有了我就没传
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
461
金钱
461
注册时间
2015-11-29
在线时间
45 小时
发表于 2016-4-22 08:32:44 | 显示全部楼层
不错,谢谢分享
回复 支持 反对

使用道具 举报

5

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2015-1-25
在线时间
7 小时
发表于 2016-4-22 12:19:39 | 显示全部楼层
HR GoGo 发表于 2016-4-21 17:03
这个是加驱动器的,四路输出不同占空比的pwm 我也有写,道理上差不多的。论坛里有了我就没传

就是这个程序能够输出脉冲了,但是驱动器上的方向信号是接控制器的那个信号呢?你上面没有吧,我觉着应该是两个引脚,一个输出脉冲信号,就是你写的程序定时器中断产生的信号,还有一个引脚应该是输出电机正反转的信号,接到驱动器的方向接口,对不对?最近在做电机控制方面的课设,还得多多请教你啊
专注
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-22 16:08:30 | 显示全部楼层
zcls 发表于 2016-4-22 12:19
就是这个程序能够输出脉冲了,但是驱动器上的方向信号是接控制器的那个信号呢?你上面没有吧,我觉着应该 ...

这个程序没有,控制方向很简单,你拿出来任意一个引脚按键控制输出高低电平。我有写好控制方向的,需要的话我传给你。
回复 支持 反对

使用道具 举报

头像被屏蔽

7

主题

21

帖子

0

精华

禁止发言

积分
1370
金钱
1370
注册时间
2011-6-12
在线时间
142 小时
发表于 2016-4-22 19:53:41 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-23 07:19:45 | 显示全部楼层
cwfwh 发表于 2016-4-22 19:53
楼主用的是什么驱动芯片

最常用的THB6128
回复 支持 反对

使用道具 举报

葡式蛋挞 该用户已被删除
发表于 2016-4-24 10:50:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-4-25 16:18:11 | 显示全部楼层
葡式蛋挞 发表于 2016-4-24 10:50
请问楼主用的步进电机是什么型号的

这个程序主要是看你是加在驱动器上还是加在电机上,此程序输出是脉冲,是需要驱动器的,基本上带驱动器的电机都可以用。如果你需要输出不同占空比的pwm 论坛里有人发过了。
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-3-28
在线时间
23 小时
发表于 2016-5-10 08:48:33 | 显示全部楼层
谢谢楼主分享mark
回复 支持 反对

使用道具 举报

5

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2016-5-17
在线时间
41 小时
发表于 2016-5-18 21:44:40 | 显示全部楼层
谢谢分享,下来看看能用不
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-5-19 07:42:24 | 显示全部楼层
梦想实现 发表于 2016-5-18 21:44
谢谢分享,下来看看能用不

请看好需求是否和我写的一样,另外其他程序也有写,都是类似的。我就没传上来,有问题欢迎一起探讨
回复 支持 反对

使用道具 举报

5

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2016-5-17
在线时间
41 小时
发表于 2016-5-30 20:53:20 | 显示全部楼层
楼主我试了一下你的程序,从PA7输出的泳冲接到驱动板上,转一会停几秒又转是这样的吗?如果可以编成有加减速就好实用,我自己又写不出,请各位高手给多点提示或有程序的可以给我一份吗?我的驱动器IC tb6560械我的电路板是以下的;
IMG_20160530_201826.jpg
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-5-31 07:26:35 | 显示全部楼层
梦想实现 发表于 2016-5-30 20:53
楼主我试了一下你的程序,从PA7输出的泳冲接到驱动板上,转一会停几秒又转是这样的吗?如果可以编成有加减 ...

加减速的我记得里面有吧,写了很多版本忘记了,这是第一期程序。我记得是通过外部按键控制加减速的。实际上就是改变定时器的频率
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-6-1 07:14:24 | 显示全部楼层
看一下啊。。。。。
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-6-1 07:21:50 | 显示全部楼层
if(m%2&&m/2<200)   你 这句是什么意思啊。。。
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-6-1 15:29:29 | 显示全部楼层
控制脉冲的个数
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-6-1 15:29:47 | 显示全部楼层

控制脉冲个数
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3983
金钱
3983
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-6-3 13:03:18 | 显示全部楼层

怎么要用这种方式来比较。。。不直观
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-6-3 13:16:08 | 显示全部楼层
752151619 发表于 2016-6-3 13:03
怎么要用这种方式来比较。。。不直观

最开始写的,想到哪就写了,有更好的请自行更改
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-27
在线时间
43 小时
发表于 2016-6-17 11:13:33 | 显示全部楼层
多谢分享。。。。。。。。。。。。。。。
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2016-7-5
在线时间
43 小时
发表于 2016-7-26 11:59:54 | 显示全部楼层
谢谢分享学习...
回复 支持 反对

使用道具 举报

2

主题

47

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2016-6-18
在线时间
40 小时
发表于 2016-8-4 16:50:56 | 显示全部楼层
谢谢分享,请问楼主,你还有其他寄存器版本的其他类资料??
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2016-7-16
在线时间
0 小时
发表于 2016-8-5 09:11:30 | 显示全部楼层
请教一下,我能产生pwm波,但是不知道怎么控制方向,也就是说不知道应该用哪个io口连接到驱动器的方向线上,能不能给一下指点。。。不用按键控制可以吗?
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2016-8-17 14:03:39 | 显示全部楼层
机械李 发表于 2016-8-5 09:11
请教一下,我能产生pwm波,但是不知道怎么控制方向,也就是说不知道应该用哪个io口连接到驱动器的方向线上 ...

可以的,写程序控制也可以,我是通过高低电平控制方向的。pwm是改变占空比,我个人觉得不能通过他准确的控制方向
回复 支持 反对

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-12-10
在线时间
11 小时
发表于 2016-12-28 17:54:24 | 显示全部楼层
有没有设定运行距离和最高运行速度的功能呀?
回复 支持 反对

使用道具 举报

22

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
913
金钱
913
注册时间
2015-9-17
在线时间
117 小时
 楼主| 发表于 2017-1-3 08:14:42 | 显示全部楼层
jplzl10000 发表于 2016-12-28 17:54
有没有设定运行距离和最高运行速度的功能呀?

根据惦记的数据手册 计算运行的距离对应的转数就可以设定运行距离了,速度同样可以
回复 支持 反对

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-12-10
在线时间
11 小时
发表于 2017-1-3 17:39:42 | 显示全部楼层
HR GoGo 发表于 2017-1-3 08:14
根据惦记的数据手册 计算运行的距离对应的转数就可以设定运行距离了,速度同样可以

比如说以这种参数组合(电机最高速度,运行距离)来运行以下几条线段:
1.(100mm/s, 100mm)
2.(500mm/s, 100mm)
3.(1000mm/s, 100mm)
这三种运行方式能不能很好的运行呢?
回复 支持 反对

使用道具 举报

11

主题

94

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2016-12-12
在线时间
55 小时
发表于 2017-1-3 19:41:10 | 显示全部楼层
支持分享贴!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 16:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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