用uln2003电机驱动怎么驱动两相四线步进电...

要用步进电机做智能窗帘,四根线要怎么接在驱动块上?
不能,只能驱动四相五线式的步进电机。两相四线时的步进电机要用L293、L298、A3977之类驱动器。
可以的,2003实际上只是一个开关,需要配合单片机来实现换相等功能。
可以的,2003实际上只是一个开关,需要配合单片机来实现换相等功能。
已有帐号?
无法登录?
社交帐号登录
再邀请我回答民科相关问题我就要骂人了!博客访问: 3638
博文数量: 5
博客积分: 0
博客等级: 民兵
技术积分: 50
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 嵌入式
&&&&今天,接到一个任务,采用stm32驱动步进电机,已经有了驱动模块了。所以不再采用PWM方式,直接用软件编写。
我也是初学,仅供参考。
1、管脚接线
// IN4: PC9&& d
// IN3: PC8&& c
// IN2: PC7&& b
// IN1: PC6&& a
电源接开发板电源。地接地(简直是废话)。
2、定义正转反转数组
uint16_t phasecw[4] ={0x0,0x0};// D-C-B-A&&
uint16_t phaseccw[4]={0x0,0x0};// A-B-C-D
说明一下,数组里面的值,就是对应的GPIO口的地址。根据自己实际的接线方式填入。
3、子函数书写
3.1延时函数
void Delay_xms(uint x)
&uint i,j;
&for(i=0;i<x;i++)
& for(j=0;j<112;j++);
3.2电机初始化函数
void Moto_Init(void)
&GPIO_InitTypeDef GPIO_InitS
&RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
&GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 ;
&GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
&GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
&GPIO_Init(GPIOC,&GPIO_InitStructure);
&GPIO_ResetBits(GPIOC,GPIO_Pin_6 | GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_9 );
3.3电机正转函数
void Motorcw(void)&
&&& uint8_&
&&& for(i=0;i<4;i++)&
&&&&&&& GPIO_Write(GPIOC,phasecw[i]);&
&&&&&&& Delay_xms(50);&
3.4电机反转函数
void Motorccw(void)&
&&& uint8_&
&&& for(i=0;i<4;i++)&
&&&&&&& GPIO_Write(GPIOC,phaseccw[i]);&
&&&&&&& Delay_xms(50);&
3.5电机停止函数
void MotorStop(void)&
&&& GPIO_Write(GPIOC,0x0000);&
4主函数测试代码
int main()
&Moto_Init();
&&&while(1)
&&&for(i=0;i<500;i++)
&&&&&Motorcw();
&&&&如何控制转速呢,把正转反转函数里面的“50”改大就相当于调慢了脉冲速度,自然电机就慢了。当然你也可以根据现实开发自己设置变量去各种调节速度。有什么问题可以跟博主交流,我也是新手哦。但是我实际测出来的转速最快只有每分钟10转左右,o(︶︿︶)o 唉,太慢了。原因是这款步进电机内置1:64减速比装置,内部转64圈,外面才转1圈呢。具体的驱动原理大家网上可以随便搜搜的,其实就是一次脉冲,电机的旋转度数而已,很简单的。脉冲越快,转的越快。
&5、总结&&
&&&&好了,很多小伙伴肯定说博主直接给代码就行了。写那么多废话干嘛。但是我想说,一味的复制粘贴别人的代码是不对的。首先嵌入式程序要硬件接线一样才行,你首先得把线和博主接一样的才行吧。实际开发中,不是每个IO口都能给你用的,所以根据自己实际的接线方式,然后改数组里面的值就可以了。具体的方法(右键GPIO,跳到定义处,就能看到了。)
阅读(855) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。21ic官方微信
后使用快捷导航没有帐号?
查看: 2592|回复: 6
请教XWJ,有些步进电机用ULN就能驱动的?
&&已结帖(0)
主题帖子积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
主题帖子积分
专家等级:结帖率:94%打赏:0.00受赏:10.00
主题帖子积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
那是什么类型的电机呢?
如题。如果用驱动的,那么流过线圈的电流不是只有一个方向吗?
主题帖子积分
主题帖子积分
专家等级:结帖率:59%
主题帖子积分
小电流的步进当然可以用ULN2003驱动了。
但需要自己用软件写控制逻辑驱动马达转动。
一:我的回帖多数只是猜测/估计/想象,建立在我现有知识结构的理解和分析上,多数都没有动手实际检验过,请斟酌采纳.
二:若对我的技术类主帖或回帖有异议,欢迎讨论,拒绝过激攻击或辱骂,否则全站追杀屏蔽发帖,后果自负.
三:对本人的其它意见,请直接向站长投诉,勿使用站内短信骚扰/挑衅/辱骂,否则将全站追杀屏蔽发帖,后果自负.
主题帖子积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
主题帖子积分
专家等级:结帖率:94%打赏:0.00受赏:10.00
主题帖子积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
但是混合式,两个线圈那种步进电机,不是要给线圈通正反方向电流才能维持转动的吗?
主题帖子积分
主题帖子积分
专家等级:结帖率:59%
主题帖子积分
加电、断电。
一:我的回帖多数只是猜测/估计/想象,建立在我现有知识结构的理解和分析上,多数都没有动手实际检验过,请斟酌采纳.
二:若对我的技术类主帖或回帖有异议,欢迎讨论,拒绝过激攻击或辱骂,否则全站追杀屏蔽发帖,后果自负.
三:对本人的其它意见,请直接向站长投诉,勿使用站内短信骚扰/挑衅/辱骂,否则将全站追杀屏蔽发帖,后果自负.
主题帖子积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
用2003的是两相6线(每相有个中心抽头,且叫中线)的,每相的中线接电源正,其他两线分开控制就行了。两相4线的不行。
主题帖子积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
主题帖子积分
专家等级:结帖率:94%打赏:0.00受赏:10.00
主题帖子积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
初级工程师, 积分 2653, 距离下一级还需 347 积分
谢谢zhaoyu2005,那么是不是意味着除了用H桥,否则就别想让它转了.我打算用搭H桥.
主题帖子积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:0.10
主题帖子积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
资深工程师, 积分 10494, 距离下一级还需 9506 积分
两相4线的就得用H桥或者专门的驱动芯片了。H桥得注意死区控制,要不然炸管子的
精华达人奖章
等级类勋章
湍急之河流
发帖类勋章
时间类勋章
技术导师奖章
人才类勋章
终身成就奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章
热门推荐 /5}

我要回帖

更多关于 uln2003电机驱动 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信