步进电机控制

liutzh_2008 2011-09-02 11:33:05
各位高手好:
小弟刚开始学习单片机,在控制步进电机的时候有了些问题,想请各位指点一下:
1>控制步进电机的引脚赋值编码如何定义,也就是如何给引脚赋值。
2>小弟的开发板的引脚编码如下:
unsigned char code FFW[8] =
{
0xf1, 0xf3, 0xf2, 0xf6, 0xf4, 0xfc, 0xf8, 0xf9
};
unsigned char code REV[8] =
{
0xf9, 0xf8, 0xfc, 0xf4, 0xf6, 0xf2, 0xf3, 0xf1
};
单片机接在P1.0 P1.1 P1.2 P1.3 上面。
这个赋值我不明白为什么要这样定义,请大家给个指点吧,谢谢了。
...全文
383 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzxgo 2011-10-18
  • 打赏
  • 举报
回复
你最好了解下步进电机的工作原理.
rudyfly 2011-10-14
  • 打赏
  • 举报
回复
应该是后四位来控制4相的开关,规律是:
0001
0011
0010
0110
0100
1100
1000
1001
这就是4相8拍的控制方法
如果每一位来控制一相 ,那么用ABCD表示就是:
A-AB-B-BC-C-CD-D-DA
刚好驱动了,两个数组表示正反转。
楼主,不知道有没有帮助到你。
woshi_ziyu 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 lr2131 的回复:]

不好意思,上面那个表格本来是拍好了的,发出来就自动乱了。
如果你对步进电机的操作按这个驱动的顺序来,电机会往某个方向转,而如果将顺序倒过来,电机就会往另个方向转,正方向由自己来定义。这样电机转向就这么控制。那转速怎么控制呢,看到上面那个时刻中的“T”了吧,那个相当于驱动电机的时序周期,一般这个频率(周期的倒数,1/T)越大,转速越快,当然不会无限制的快,当增大到某个值后,再增大,转速反而下降,……
[/Quote]
学习了很多
lr2131 2011-09-06
  • 打赏
  • 举报
回复
不好意思,上面那个表格本来是拍好了的,发出来就自动乱了。
如果你对步进电机的操作按这个驱动的顺序来,电机会往某个方向转,而如果将顺序倒过来,电机就会往另个方向转,正方向由自己来定义。这样电机转向就这么控制。那转速怎么控制呢,看到上面那个时刻中的“T”了吧,那个相当于驱动电机的时序周期,一般这个频率(周期的倒数,1/T)越大,转速越快,当然不会无限制的快,当增大到某个值后,再增大,转速反而下降,所以它是有个峰值的,但一般是单峰的(我目前没见过多峰的,所以不敢说没有)。此外,在高速转动下力矩一般比慢速的慢,也就是说力气小,这个也是要考虑的。你的8个元素的数组相当于是这4个值“插值”得来的,如果作细分的话,起始也是作“插值”,不过那个要困难一些,还得看电机的驱动芯片支持不支持。
lr2131 2011-09-06
  • 打赏
  • 举报
回复
你这里给出的2个数组起始就是步进电机的驱动时序。
下面那个数组是上面那个的倒序,这个就不说了。
步进电机的驱动时序:(H为高电平,L为低电平)
时刻 A+ B+ A- B- B-A-B+A+对应的十六进制数
t0 H H L L 0x03
t0+T L H H L 0x06
t0+2T L L H H 0x0C
t0+3T H L L H 0x09
t0+4T H H L L 0x03
接下来的就是这上面的循环,所以哪个作为第一个输出都无所谓,但相对顺序不能乱。
这个是最基本的驱动时序,你给出的那个8拍的时序是在这个上面相当于插值得来的。
看出这个时序的规律了吧,比你的8拍要更清楚更简单。后面的十六进制数其实就是你数组中除去“插值”进来的那四个。
lr2131 2011-09-06
  • 打赏
  • 举报
回复
一般驱动步进电机是需要用到驱动芯片的,因为电机在转动时会产生反电动势(由法拉第电磁感应定律可知),而且反电动势一般都很高,极易烧坏这些I/O管脚(我和我几个同学都遇到过),用驱动芯片的话,一般要好一些,具体的似乎还要加上电解电容,这个电路的设计我不是很清楚。如果你只是用别人设计好的电路,这些个问题你就不用管了,但如果是你来设计这个电路,就要小心了,这个是很容易烧坏的。
LS的说要注意是用什么芯片来驱动,我觉得没必要太关心,当然前提是不是由你来设计整个硬件环境。你给出了引脚说明和驱动时序,这说明你这里不是用那种PWM转4引脚的驱动器(用过但不知道怎么描述),你就当是单片机的4个I/O输出的时序直接来控制电机。不知道你是不是还需要对步进电机进行驱动细分,如果需要的话,可能还要用到DAC,要看你用什么芯片(我也只是用过一种驱动细分芯片而已,不能以偏概全)。
woshi_ziyu 2011-09-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lixianghua0428 的回复:]

这是正转八拍和反转八拍,你的电机应该是四相步进电机,电机总共有5线,一根是VCC,其他四根是产生脉冲的,分别接在P1.0 P1.1 P1.2 P1.3 上,你最好了解下步进电机是怎么工作的
[/Quote]
++++
bee 2011-09-06
  • 打赏
  • 举报
回复
你的步进电机是用芯片驱动的,还是用通用驱动器驱动的。这个首要的问题。
AnYidan 2011-09-04
  • 打赏
  • 举报
回复
单片机接在P1.0 P1.1 P1.2 P1.3 上面。

这一句我就看不懂
lixianghua0428 2011-09-04
  • 打赏
  • 举报
回复
这是正转八拍和反转八拍,你的电机应该是四相步进电机,电机总共有5线,一根是VCC,其他四根是产生脉冲的,分别接在P1.0 P1.1 P1.2 P1.3 上,你最好了解下步进电机是怎么工作的
yuanlaosi 2011-09-03
  • 打赏
  • 举报
回复
自己看步进电机额度电路图,简单的物理知识!
lr2131 2011-09-03
  • 打赏
  • 举报
回复
这个你需要看一下步进电机的驱动时序。
看你的描述,这个应该是四线控制的步进电机,四线分别是A+,B+,A-,B-,分别对应你这里的4个I/O引脚。

liutzh_2008 2011-09-03
  • 打赏
  • 举报
回复
我自己顶!
一、课程特色      1.课程以理论知识讲解+实操+项目实战的方式进行教学,避免了传统课堂教学只知其然不知其所以然的问题。      2.课程对理论知识部分的分析鞭辟入里,再配合实操演示,让学员能够真正掌握每一条指令的使用和每一个参数的含义,以求做到融会贯通,举一反三。      3.对于课程的项目实战部分,则采用保姆式的教学方式,从新建项目开始,让基础不是很好的学员也可以对照视频教程一步一步完成项目实操,让学习能够有一个很好的获得感。二、课程目标      1.掌握西门子TIA Portal软件的使用。      2.掌握步进电机的结构与工作原理(图解法教学)。      3.掌握西门子S7-1200PLC与步进系统的接线(含实物接线讲解)。      4.掌握西门子CTRL_PTO脉冲输出指令参数配置、原理及使用(含实物操作演示+练手小项目)。      5.掌握使用TIA Portal软件进行组态运动轴的参数配置(实操演示)。      6.理解组态运动轴的的每一个参数含义TIA Portal(实操演示)。      7.掌握TIA Portal组态运动轴对步进电机的调试(实操演示)。      8.掌握西门子MC_Home、MC_MoveVelocity等运动控制指令的参数配置及使用(实操演示)。      9.掌握西门子S7-1200/1500PLC结构化编程,完成“立体仓库自动出入库系统”项目实战。      10.掌握西门子KTP700触摸屏组态应用。                       

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧