搜索
bottom↓
楼主: chenyuqiu

STC11F16XE驱动4个步进电机(软件实现16细分)

  [复制链接]

出0入0汤圆

 楼主| 发表于 2011-7-4 13:30:42 | 显示全部楼层
cposition 的参数你就按照我那个程序代码试试

出0入0汤圆

发表于 2011-7-4 13:48:47 | 显示全部楼层
好的。谢谢楼主不厌其烦的给我讲解!我在看看程序!

出0入0汤圆

发表于 2011-7-6 01:04:49 | 显示全部楼层
那请问楼主,这个曲线表和加减速有什么关系


lvyi913 QQ多少  我也正在学步进电机,我们可以交流下

出0入0汤圆

发表于 2011-7-6 01:09:14 | 显示全部楼层
cPosition是8位的变量,好像最大值为63。

wPanMotorNowPosition 和 wPanMotorEndPosition 这两个变量的差值了,之前你说的3200走一圈就是这两个变量的相差值,wPanMotorEndPosition 是代表电机的最终目标值,
有什么关系

出0入0汤圆

发表于 2011-7-6 01:33:16 | 显示全部楼层
c = DECREASE  这个DECREASE是多少  if ((c != bPanMotorDirection) || (i.word < wTableBrakeSpace211_1[cPanMotorNowSpeed]))  是什么意思

出0入0汤圆

发表于 2011-7-6 01:45:12 | 显示全部楼层
步进电机加减算法公布出  这里希望楼主能够帮我们好好分析下,谢谢了

强烈要求,希望群主,把这个独立开设一个模块

出0入0汤圆

发表于 2011-7-8 09:31:33 | 显示全部楼层
unsigned int code wtablebrakespace211_1[] 数据是怎么得出来的

出0入0汤圆

发表于 2011-7-8 10:19:41 | 显示全部楼层
最好恒流就好了!

出0入0汤圆

 楼主| 发表于 2011-7-8 12:44:10 | 显示全部楼层
回复【214楼】liukan
unsigned int code wtablebrakespace211_1[] 数据是怎么得出来的
-----------------------------------------------------------------------

这个是一组经验数据,之后做成了一个上位机软件

出0入0汤圆

发表于 2011-7-8 15:12:13 | 显示全部楼层
经验数据 ?是几细分的

出0入0汤圆

发表于 2011-7-8 15:39:42 | 显示全部楼层
经验,也有一个理论指导,楼主回答大深奥,能不能简单化一点

出0入0汤圆

发表于 2011-7-9 10:54:39 | 显示全部楼层
怎么改变速度

出0入0汤圆

 楼主| 发表于 2011-7-9 15:24:34 | 显示全部楼层
回复【219楼】liukan
-----------------------------------------------------------------------

我建议你还是先好好看看原理图和源代码先。

出0入0汤圆

发表于 2011-7-9 15:54:34 | 显示全部楼层
顶楼主!高啊!

出0入0汤圆

发表于 2011-7-9 16:34:39 | 显示全部楼层
还有人在吗

出0入0汤圆

发表于 2011-7-22 21:57:38 | 显示全部楼层
坐等楼主讲课

出0入0汤圆

发表于 2011-7-24 11:00:05 | 显示全部楼层
楼主好人啊

出0入0汤圆

发表于 2011-7-24 20:26:16 | 显示全部楼层
wTableUnl2803DriveValue  问一下楼主,这个表格是做啥用的

出0入0汤圆

发表于 2011-7-28 14:48:20 | 显示全部楼层
LZ,我等了半年了,,,,
xujianglun@126.com

出0入0汤圆

发表于 2011-7-28 16:08:18 | 显示全部楼层
haishi bu mingbai

出0入0汤圆

发表于 2011-7-28 16:24:18 | 显示全部楼层
谢谢楼主!

出0入0汤圆

发表于 2011-7-29 19:31:00 | 显示全部楼层
牛逼完了

出0入0汤圆

发表于 2011-7-29 19:37:42 | 显示全部楼层
小陈同志,对于没用过STC单片机的人来讲,完全看明白你的程序算法真的是不容易
所以,能不能就针对步进电机,来讲讲怎么样用单片机的PWM脉冲来做细分
如果真能这样,我想大家都容易明白,也可以自己来通过PWM来做电机的细分程序了
这样才是真正的让大家明白
PWM本身只是占空比可调的巨形脉冲,又是如果变成梯形脉冲来实现对步进电机细分的?

出0入0汤圆

发表于 2011-7-29 21:00:36 | 显示全部楼层
跟着楼主学习了

出0入0汤圆

 楼主| 发表于 2011-7-30 00:38:29 | 显示全部楼层
回复【230楼】zjm520
小陈同志,对于没用过stc单片机的人来讲,完全看明白你的程序算法真的是不容易
所以,能不能就针对步进电机,来讲讲怎么样用单片机的pwm脉冲来做细分
如果真能这样,我想大家都容易明白,也可以自己来通过pwm来做电机的细分程序了
这样才是真正的让大家明白
pwm本身只是占空比可调的巨形脉冲,又是如果变成梯形脉冲来实现对步进电机细分的?

-----------------------------------------------------------------------

其实用什么单片机都是一样的,关键是就要理解细分构思

出0入0汤圆

发表于 2011-7-30 08:41:48 | 显示全部楼层
顶楼主。

出0入0汤圆

发表于 2011-7-30 08:58:26 | 显示全部楼层
看了楼主的第一张图,步进电机的通电时序只能是A-B-C-D了,为什么不去掉7414,这样时序可以A-AB-B-BC-C-CD-D-DA这样力矩就大了。

出0入0汤圆

 楼主| 发表于 2011-7-30 09:15:46 | 显示全部楼层
回复【234楼】HYLG
看了楼主的第一张图,步进电机的通电时序只能是a-b-c-d了,为什么不去掉7414,这样时序可以a-ab-b-bc-c-cd-d-da这样力矩就大了。
-----------------------------------------------------------------------

去掉7414会占用很多I/O。

出0入0汤圆

发表于 2011-7-30 09:18:29 | 显示全部楼层
回复【232楼】chenyuqiu 小陈
-----------------------------------------------------------------------

楼主说的是,正是这个意思,你能否说说细分构思呢?
让初学都懂得细分构思,用自己的方法去开发细分程序,这样最好不过了。
另楼主可否留个联系方式,本人也在广州,现正在做一个电机细分程序,如能得到楼主的帮助,
定万分感谢!

出0入0汤圆

 楼主| 发表于 2011-7-30 09:41:44 | 显示全部楼层
回复【236楼】zjm520
回复【232楼】chenyuqiu 小陈
-----------------------------------------------------------------------
楼主说的是,正是这个意思,你能否说说细分构思呢?
让初学都懂得细分构思,用自己的方法去开发细分程序,这样最好不过了。
另楼主可否留个联系方式,本人也在广州,现正在做一个电机细分程序,如能得到楼主的帮助,
定万分感谢!
-----------------------------------------------------------------------
我觉得有什么技术难题就在这里大家讨论比较好。

出0入0汤圆

发表于 2011-7-30 09:46:39 | 显示全部楼层
回复【237楼】chenyuqiu 小陈
回复【236楼】zjm520  
回复【232楼】chenyuqiu 小陈  
-----------------------------------------------------------------------  
楼主说的是,正是这个意思,你能否说说细分构思呢?  
让初学都懂得细分构思,用自己的方法去开发细分程序,这样最好不过了。  
另楼主可否留个联系方式,本人也在广州,现正在做一个电机细分程序,如能得到楼主的帮助,  
定万分感谢!
-----------------------------------------------------------------------
我觉得有什么技术难题就在这里大家讨论比较好。

-----------------------------------------------------------------------

这个PWM细分构思能在这里讲清楚吗?如果小陈同志很有耐心的话,我在期待,也许还有很多人也在等着哦!

关键的关键是-------------能过你的讲解,起码10个人中有6个人能听明白,理解,这才是硬道理!

最后想说,不管楼主最后有没有给大家说说PWM构细,你还是辛苦了,你做到目前为止,你是很了不起的。

出0入0汤圆

 楼主| 发表于 2011-7-30 10:19:56 | 显示全部楼层
我在这里就大概讲讲我这个程序的细分思路:
大家都知道我的硬件电路接法只能跑单四拍(原因是为了节省CPU I/O,加了74HC14反相器)。即:
  A   B   C   D
  1   1   0   0       // 第一拍
  0   1   1   0       // 第二拍
  0   0   1   1       // 第三拍
  1   0   0   1       // 第四拍
这样就形成一个循环的节拍周期。没有细分的程序就是不断的查表循环跑上图这四个节拍,而我的细分思路就是:第一拍和第二拍,第二拍和第三拍,第三拍和第四拍,第四拍和第一拍之间插入16个细分因子,把驱动节拍的0和1扩大成16位,所以有了这个表:
unsigned int code wTableUnl2803DriveValue[] =
{
    0x0000, 0x0080, 0x0820, 0x1110, 0x2244, 0x2492, 0x4a52, 0x5554,  
0xaaaa, 0xabaa, 0xbaae, 0xbbba, 0xeeee, 0xeefe, 0xf7f7, 0x7fff,

};
这个表里的每个数据都是16位的,通过检测这16个位每个位是0或是1,来确定CPU I/O 输出的是当前的第一拍还是下一拍,就这样依次把表里的每个数据都做一次检测,这样就有了在当前拍和下一拍之间插入了16个高低电平.程序如下:
for (c = 0; c != 16; c ++)
{
if (wTemp & 0x0001)
cDriveValue = cPhaseValueRight;
else
    cDriveValue = cPhaseValueLeft;   
cPwmDriveBuffer[c] &=  cShieldValue;     
cPwmDriveBuffer[c] |=  cDriveValue;
wTemp >>= 1;  
}  
cPwmDriveBuffer[16] &=  cShieldValue;     
cPwmDriveBuffer[16] |=  cPhaseValueRight;
}

出0入0汤圆

发表于 2011-7-30 11:34:47 | 显示全部楼层
回复【239楼】chenyuqiu 小陈
-----------------------------------------------------------------------

这个与PWM有什么联系呢?
不是PWM来做细分的么?

出0入0汤圆

 楼主| 发表于 2011-7-30 11:42:41 | 显示全部楼层
回复【240楼】zjm520
-----------------------------------------------------------------------

呵呵,我这个帖子主要是以软件模拟来实现细分的。如果用硬件PWM来做的话更加方便。

出0入0汤圆

 楼主| 发表于 2011-7-30 13:44:13 | 显示全部楼层
回复【242楼】zjm520
回复【241楼】chenyuqiu 小陈
-----------------------------------------------------------------------
给个联系方式,不方便吗?
-----------------------------------------------------------------------

不好意思,我不能提供联系方式给你,第一:既然是在这里讨论的技术问题就应该要在这里讨论下去,没必要去私聊。我也不可能有那么多的时间替你们每个人单独解决问题。第二,论坛规定是不能留联系方式私聊的,所以既然我们是在这里讨论的问题就要遵守论坛的相关规定。

出0入0汤圆

发表于 2011-7-30 13:56:38 | 显示全部楼层
牛比完了!

出0入0汤圆

 楼主| 发表于 2011-7-30 14:01:46 | 显示全部楼层
回复【244楼】zjm520
牛比完了!
-----------------------------------------------------------------------

不知道你说的“牛比完了!”是什么意思?不解

出0入0汤圆

发表于 2011-7-30 14:10:14 | 显示全部楼层
回复【245楼】chenyuqiu 小陈
------------------------------------------------------------------
早上看了一下,还是没能明白你说的把0,1分成了16个细分因子,所以有了这个表:
unsigned int code wTableUnl2803DriveValue[] =  
{  
    0x0000, 0x0080, 0x0820, 0x1110, 0x2244, 0x2492, 0x4a52, 0x5554,   
0xaaaa, 0xabaa, 0xbaae, 0xbbba, 0xeeee, 0xeefe, 0xf7f7, 0x7fff,  

};  

不知道在这个论坛中有多少人能完全看明白你的程序
不过本着不耻下问的精神,对不懂的还是要问,大虾们别太介意。

出0入0汤圆

发表于 2011-7-30 14:12:23 | 显示全部楼层
上面这个表是从这几个数据中变化而来的吗:
   A   B   C   D
   1   1   0   0       // 第一拍   0x0c
   0   1   1   0       // 第二拍   0x06
   0   0   1   1       // 第三拍   0x03
   1   0   0   1       // 第四拍   0x01

出0入0汤圆

发表于 2011-8-1 17:06:15 | 显示全部楼层
回复【103楼】winkle

(原文件名:1.jpg)
引用图片
使用lz的
unsigned int code wtablebrakespace211_1[]做出来的曲线
-----------------------------------------------------------------------

哪位,再标下x y轴分别代表什么?

出0入0汤圆

发表于 2011-8-1 17:42:08 | 显示全部楼层
顶楼上的楼上,我也是有个疑问,希望看懂的网友告诉一下  unsigned int code wTableUnl2803DriveValue  这个表格是怎么来的

出0入0汤圆

发表于 2011-8-1 19:24:23 | 显示全部楼层
MARK。

出0入0汤圆

发表于 2011-8-2 11:19:20 | 显示全部楼层
这个贴这样一天一天的接力,说明搞不清楚步进电机驱动的人还是蛮多地,而搞懂的人在这里发贴,贴子里面也是说了很久却也没说明清楚,大家都急,建议楼主开课讲解一下,具体的细分技术,我想应该有蛮多的人参加,只有让大家真正理解,用自己的方法能写出细分程序,这样多好啊!

出0入0汤圆

发表于 2011-8-29 11:14:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-2 09:50:00 | 显示全部楼层
步进电机细分

出0入0汤圆

发表于 2011-9-8 17:59:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-23 19:15:19 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-9-23 22:05:59 | 显示全部楼层
回复【55楼】chenyuqiu  小陈
-----------------------------------------------------------------------

没有上下文。。比较难看得懂。。哎。。。

出0入0汤圆

发表于 2011-9-24 07:13:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-24 08:00:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-28 19:21:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-28 20:34:49 | 显示全部楼层
跪求梯形曲线加减速详细算法。。楼主的算法没上下文,实在难看懂。。。

出0入0汤圆

发表于 2011-9-29 17:31:23 | 显示全部楼层
木有电流反馈吧

出0入0汤圆

发表于 2011-9-29 22:19:07 | 显示全部楼层
回头仔细瞧瞧

出0入0汤圆

发表于 2011-9-30 15:18:37 | 显示全部楼层
很好!如果用PWM就很好了!PWM可以到64细分

出0入0汤圆

发表于 2011-10-7 11:41:57 | 显示全部楼层
楼主能不能给我传份完整的代码,驱动部分及加减速看个半懂~~哎..我想把加减速和驱动移植到STM32上..谢谢了
我的邮箱:519017998@qq.com
万分感谢!

出0入0汤圆

发表于 2011-10-8 22:36:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-15 13:41:14 | 显示全部楼层
学习学习。

出0入0汤圆

发表于 2011-10-15 19:01:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-15 19:51:57 | 显示全部楼层
没看代码,是开环PWM控制的?

出0入0汤圆

发表于 2011-10-17 09:09:14 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2011-10-18 08:26:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-18 08:47:25 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-18 14:30:16 | 显示全部楼层
牛人牛帖

出0入0汤圆

发表于 2011-11-14 15:06:29 | 显示全部楼层
好东西,值得珍藏,remark了

出0入0汤圆

发表于 2011-11-15 16:29:58 | 显示全部楼层
请问楼主使用的步进电机是几相几线制的步进电机。

出0入0汤圆

发表于 2011-11-16 07:45:02 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-16 09:29:32 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-11-16 15:08:56 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2011-11-17 15:30:56 | 显示全部楼层
看了大半天,发现楼主根本就没想让大家整明白哦。

出0入0汤圆

 楼主| 发表于 2011-11-20 20:22:16 | 显示全部楼层
回复【284楼】liyuguang
-----------------------------------------------------------------------

我可以很肯定的跟你说,你这种人真是不要脸,加了我QQ要求我帮你忙,在得不到你想要的东西后就丧心病狂注_册个马甲在这里黑我,我发的主题很多都被你黑过,你这人心术很不正,还有脸活在世上?我为你感到很悲哀,你这种人真是社会的败类!

出0入0汤圆

 楼主| 发表于 2011-11-20 20:26:42 | 显示全部楼层
回复【284楼】liyuguang
-----------------------------------------------------------------------

我可以很肯定的跟你说,你这种人真是不要脸,加了我QQ要求我帮你忙,在得不到你想要的东西后就丧心病狂注_册个马甲在这里黑我,我发的主题很多都被你黑过,你这人心术很不正,还有脸活在世上?我为你感到很悲哀,你这种人真是社会的败类!

出0入0汤圆

发表于 2011-11-21 10:17:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-22 16:42:34 | 显示全部楼层
飘过

出0入0汤圆

发表于 2011-11-22 17:06:08 | 显示全部楼层
学习一哈

出0入0汤圆

发表于 2011-11-23 13:10:09 | 显示全部楼层
很好啊

出0入0汤圆

发表于 2011-12-1 19:07:56 | 显示全部楼层
楼主V5

出0入0汤圆

发表于 2011-12-2 11:38:13 | 显示全部楼层
谢谢楼主!!!mark !

出0入0汤圆

发表于 2011-12-7 12:38:53 | 显示全部楼层
标记一下

出0入0汤圆

发表于 2011-12-24 19:09:24 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-24 19:12:08 | 显示全部楼层
请问 群里有人知道,他这个电路 57 电机 可以驱动么,??我指的是那个硬件电路哦,谢谢

出0入0汤圆

发表于 2011-12-24 19:51:54 | 显示全部楼层
mark

出0入84汤圆

发表于 2011-12-24 20:31:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-26 08:50:20 | 显示全部楼层
回复【楼主位】chenyuqiu  小陈
-----------------------------------------------------------------------

楼主有没有尝试过用SVPWM协议加上三道程序同刻并发执行这两项功能实现对步进电机的精密控制?我们有一些客户,是专门做数控机床的,还有一些做智能控制的,用的都还不错。建议可以尝试一下我们的LS052系列多核51单片机。如需样片,请联系QQ:66474360

出0入0汤圆

发表于 2011-12-28 10:51:26 | 显示全部楼层
mark下

出0入0汤圆

发表于 2011-12-28 10:58:31 | 显示全部楼层
给力的程序,mark!

出0入0汤圆

发表于 2011-12-28 11:00:19 | 显示全部楼层
如果使用大功率的步进电机,ULN2003不能用,那就换L298吧

出0入0汤圆

发表于 2011-12-28 20:24:54 | 显示全部楼层
学习了,不错

出0入0汤圆

发表于 2012-1-2 14:27:46 | 显示全部楼层
mark  步进电机

出0入0汤圆

发表于 2012-1-15 11:52:50 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-7 09:53:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-7 12:25:22 | 显示全部楼层
好东西啊!

出0入0汤圆

发表于 2012-2-8 17:29:36 | 显示全部楼层
如此猛料居然没看到,为时未晚,收藏学习

出15入190汤圆

发表于 2012-2-8 20:48:15 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-10 20:48:56 | 显示全部楼层
回复【280楼】wpnx
-----------------------------------------------------------------------

MARK

出0入0汤圆

发表于 2012-2-10 21:43:51 | 显示全部楼层
不知道在这个论坛中有多少人能完全看明白你的程序

出0入0汤圆

发表于 2012-2-12 08:32:26 | 显示全部楼层
很有兴趣···望楼主也给一份,tianfe.g@163.com   谢谢!!!
顺便问下直接用2路PWM该怎么样改的

出0入0汤圆

发表于 2012-2-13 17:21:57 | 显示全部楼层
留下我的痕迹

出0入0汤圆

发表于 2012-2-14 06:13:55 | 显示全部楼层
MARK

出0入0汤圆

发表于 2012-2-14 08:18:04 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 06:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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