有人用过ULN2003驱动步进电机吗?
前些天买了一个2手的步进电机,6线两相的那种 测量两相电阻都为为6欧左右,上面的型号这么写的:P/NPJJQH4242ZA-MN
TYPE 17PU-HO12-G1VT
NO. T9Z02-01
MINEBEA CO.,LTD
MADIE IN THAILAND
请问它的电压什么的是多少啊?不知道能不能看的出来,另外我用ULN2003驱动了一下,现象如下:
1.电机只是震动,转不起来(是否是驱动能力不足呢,ULN2003是500MA)相序应该没问题
2.很短的时间内ULN2003就会很热!
下面是我的驱动原理图
点击此处打开armok01131765.doc 振动的话 说明的步进频率太高,我用过是可以的,不过就是有点热 AVR-MEGA128 原来是安步你呀,PIC高手,我们认识,哈哈 我用过,不过是用5V电压,所以感觉没什么劲,就是转转而已
我的也是六线的,好像说是四相的,但网上又说是两相的,,
可以四步,也可以八步转动,用2003当灌电流,速度不能太快,
否则会失步,电机不住的震动,,至于温度,应该是电流通过
时间过长吧,,本人菜鸟,呵呵,探讨探讨 我记得要接2003有上拉电阻,而且那也是个问题,忘了当时接输入还是输出来,不行,后来换成另一端上拉就可以了。 接2003的单片机I/O一定要上拉.我用51时记得上拉1K的.
如果不上拉,2003很短的时间内发热很大的.哈哈,不过烧不了的
至于振动,转不了:应该是相位搞错了吧!相位之间调换一下.
至于电压,不是5V就是12或24了.随便试一下应该试出来了. 晕了,楼上各位的建议我都试了!还是那个样子:震动!!ULN2003热的也很快,估计要不管一会就完蛋!上拉电阻我也弄了一下,没有效果!!
难道我的步进电机转距太大 带不起来????有没有可能是ULN2003驱动能力不足呢?
先面是我的程序,很简单的
#include <iom8v.h>
#include <macros.h>
//unsigned char dat[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09}; //8步
unsigned char dat[]={0x01,0x02,0x04,0x08}; //4步
//****************************************
void delay(unsigned int temp)
{
unsigned int i,j,k;
for(i=temp;i>0;i--)
for(j=900;j>0;j--)
//for(k=;k>0;k--)
;
}
//*****************************************
void main()
{
unsigned char i;
DDRD=0xff; //PD0 A PD1 B PD2 C PD3 D
while(1)
{
for(i=0;i<5;i++)
{
PORTD=dat;
delay(20);
}
}
}
-----此内容被hayuda于2006-10-13,15:18:14编辑过 另外ULN20003 是不是也有反相的功能的啊? 1,尝试将延时改小一点.
例如:delay(1);
2,可能是A B C D四相相位搞混了.你要确定4个相位是按顺序排列的:A->B->C->D ULN2003就是7个NPN三极管. ULN200系列芯片从逻辑上说是个反相器,它的特点是低
电平输出时候才能输出功率,高电平的时候是虚高(不负担电流输
出),所以,实际使用中都是用它的OC下拉输出,没人用它高电平电
流输出的,
不知道上面的说法对不对,,?相序表怎么写呢
leafzq : A B C D 不都是相对的吗,AB连通,CD连通(至于哪个是A哪个是B只是转的方向相反 类推CD)
是不是这样呢
-----此内容被hayuda于2006-10-13,17:09:03编辑过 不,A B C D相位是固定的。
一定要按A-->B-->C-->D(或相反的方向)这样的顺序给高电平。
不断循环,电机才能转起来。 ULN2003,只能驱动些直流电阻>50欧的玩具步进电机.咸觉快而有力的,都要用恒流斩波电路驱动,电路比ULN2003复杂许多. 谢谢楼上大家的解答!!问题已经得到解决!!经过测量我发现有两路NPN管坏了!我用另外的两路,电机已经转起来了!!:)
对leafzq大虾所说的:A B C D相位是固定的/// 我到觉得不是这样啊,我觉得A 和B 是相对的.只是转的方向不同罢了! 试下这个步序{0x0c,0x09,0x05,0x06}
相序乱了也没问题的,只是会正反转而已。 我也正在搞,不过,我用了MC1413,跟ULN2003兼容的一个NPN阵列管,还没搞定,看了楼主的大家的讨论,有所启发,明天继续搞 楼主,我手上的这款步进电机给的资料上,步进顺序跟你的是一样的,但是让我疑惑的B相和C相的方向是反的,到底是资料错了?还是怎么会事情呢? 明天试试吧,楼主能留个QQ,交流一下吗? 功率不够,可能 驱动时序最好要搞清楚
0011
0110
1100
1001
这样的循环移动就可以了,
不要单线驱动
0001
0010
0100
1000
这样的驱动时序其实很差,电机一点力气也没有
还有就是混合8步的驱动
实际效果不怎么样
0011
0010
0110
0100
1100
1000
1001
0001 发热的话,要考虑通过ULN2003的电流是否过大的原因。 原因有二:
1、时序错误
2、速率太高 电机的电压低也会出现这个问题 应该是转速低了ULN2003才热的快,电机就像一个电感线圈,对于直流而言就是一根导线(更准确的说就存在你测量的线阻),所以你转的频率高了才不会烫。还有你说的只是抖动,是因为失步造成的。你的程序一上电就给定一个速度让电机转,那么会出现2种情况:
1,低速转,ULN2003发热;
2,高速转,电机失步原地抖动;
要想运转顺畅,就得让电机先以低速启动,然后加速到想要的速度。这时后,你就会发现,电机声音和谐了,IC也不烫了,电流也低了---------:) 回复【22楼】luohongzhi
-----------------------------------------------------------------------
是这样的么??我不大清楚啊 MARK! 回复【19楼】SunnyTrip 阳光改造联盟
驱动时序最好要搞清楚
0011
0110
1100
1001
这样的循环移动就可以了,
不要单线驱动
0001
0010
0100
1000
这样的驱动时序其实很差,电机一点力气也没有
还有就是混合8步的驱动
实际效果不怎么样
0011
0010
0110
0100
1100
1000
1001
0001
-----------------------------------------------------------------------
为什么我的步进电机单线四拍力矩很小,换成双线四拍,混合8拍力矩还是很小!
是不是我的电机本事力矩就很小啊!!!
电机型号是:35BYGH26-0304A
是什么原因呢,请问下各位!
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_612259BO4DI3.jpg
(原文件名:QQ截图未命名.jpg)
http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_612487C0U3UE.jpg
(原文件名:35BYGH26步进电机.jpg) for(i=0;i<**4**;i++)
{
PORTD=dat;
delay(**5**);
}
delay()函数,调整为毫秒单位。。
我用ULN2803A驱动比较顺利。
不过用双H桥驱动4线,低转速时,电机顿顿的,按照上面的频率调整后,电机便欢快的转起来。。频率再高就不行了,频率低了就顿。。
我的是二手2相6线步进电机。
更正内容 {:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:} hilltang 发表于 2009-6-23 17:36 static/image/common/back.gif
明天试试吧,楼主能留个QQ,交流一下吗?
你的头像是什么? 路过路过 MARK 频率太高或者电压不足 我都遇到过就是用2003
页:
[1]