有玩过三相、三线步进电机的朋友吗?进来看看吧~~
根据上面三相电机的时序图,我写了下面一段程序:while (1)
{
P2_DOUT|=0x80; //A+,PWMY3
P2_DOUT&=0xbf; //B-,PWMY0
delay();
P2_DOUT|=0x20; //C+,PWMY2
delay();
P2_DOUT&=0x7f; //A-,PWMY2
delay();
P2_DOUT|=0x40; //B+,PWMY2
delay();
P2_DOUT&=0xdf; //C-,PWMY2
delay();
}
结果,电机竟然是正转两圈又反转两下,彻底无语啊……
啊……啊……
试过用PWM细分,慢慢加速度启动等等方法,结果还是不行~~~
很无语啊…………
我找网上的资料,结果都是三相,四线的步进电机。三相,三线竟然没什么资料,有朋友做过三相,三线的吗,求指导,求分享一下心得!!!感激不尽~~!!~~ 没人路过吗?自己顶一下!! 三项的跟bldc原理一样,而且看你的换向表也和BLDC的相同。因此如果你真的实现了上面的输出,像一个方向转动应该不成问题,你最好用示波器看看你的输出是否有问题 tiancaigao7 发表于 2012-7-31 21:53 static/image/common/back.gif
三项的跟bldc原理一样,而且看你的换向表也和BLDC的相同。因此如果你真的实现了上面的输出,像一个方向转动 ...
有看过了,输出是没什么问题的~~这种线圈的接法,给这样的脉冲,真的没问题? 问题还是没解决啊~!自己再顶一下!! 会不会不是步进电机,是无刷电机。需要在正确的位置换相。 能启动了!驱动芯片是L6205~!但是在细分又出现了问题~我用示波器看它的输出波形,发觉竟然能看到PWM占空比不断变大的波形~瞬间不知道怎么做了!把细分量减少,增加PWM的频率变也没用,只要调一下示波器,又可以看到占空比变大的输出波形了~!那应该怎么细分啊?求解???? kelp 发表于 2012-8-1 16:37 static/image/common/back.gif
会不会不是步进电机,是无刷电机。需要在正确的位置换相。
我的是有刷电机来的,现在能启动了~!{:biggrin:} 本帖最后由 songzm 于 2012-8-2 08:50 编辑
songzm 发表于 2012-8-1 16:39 static/image/common/back.gif
能启动了!驱动芯片是L6205~!但是在细分又出现了问题~我用示波器看它的输出波形,发觉竟然能看到PWM占空比 ...
如果这个PWM输出波形直接给电机,而电机能分辨出来的话,内部不就产生涡流了?难道这些可以解释这样子电机没转动,而驱动芯片效率比较大,发热量相对比较大的原因?懂的解释一下,万分感激!! P2_DOUT|=0x80; //A+,PWMY3
delay();
delay();
delay();
delay();
delay();
P2_DOUT&=0xbf; //B-,PWMY0
delay();
delay();
delay();
delay();
delay();
P2_DOUT|=0x20; //C+,PWMY2
delay();
delay();
delay();
delay();
delay();
P2_DOUT&=0x7f; //A-,PWMY2
delay();
delay();
delay();
delay();
delay();
P2_DOUT|=0x40; //B+,PWMY2
delay();
delay();
delay();
delay();
delay();
P2_DOUT&=0xdf; //C-,PWMY2
delay();
delay();
delay();
delay();
delay();
P2_DOUT|=0x80; //A+,PWMY3
delay();
delay();
delay();
delay();
delay();
delay();
P2_DOUT&=0xbf; //B-,PWMY0
delay();
delay();
delay();
delay();
delay();
P2_DOUT|=0x20; //C+,PWMY2
delay();
delay();
delay();
delay();
delay();
P2_DOUT&=0x7f; //A-,PWMY2
delay();
delay();
delay();
delay();
delay();
P2_DOUT|=0x40; //B+,PWMY2
delay();
delay();
delay();
delay();
delay();
P2_DOUT&=0xdf; //C-,PWMY2
delay();
delay();
delay();
delay();
delay();
延时时间非常大的时候,发觉按照它的逻辑,走不完7步,坑爹啊。走了5步就开始就很大的震动了,没有走动!!当延时时间改小10倍的时候,它是可以均匀的走完7步的,再走多几个循环也没有问题!但是,这种情况走了两圈后,也开始出现很大的震动!谁能解释一下原因?我用老示波器看输出,发觉输出没什么问题~! songzm 发表于 2012-8-2 18:16 static/image/common/back.gif
P2_DOUT|=0x80; //A+,PWMY3
delay();
delay();
我也在调L6205,三相电机,我的是三角形接法,都烧了好几个IC了
页:
[1]