找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4153|回复: 11
收起左侧

求助步进电机怎么用51单片机控制

[复制链接]
ID:221336 发表于 2017-8-23 22:18 | 显示全部楼层 |阅读模式
图片是步进电机和控制器下面是我写的程序
用51单片机  怎么控制这个驱动 (DM542)

驱动

驱动
连接电机驱动电机

步进电机

步进电机


#include<reg52.h>  


/*****************************************************************/

unsigned char a,i,j,k;
sbit ANJIAN=P3^5;
void delay(i)//延时函数
{
for(j=0;j<i;j++)
for(k=0;k<250;k++);
}
main()
{
a=0;
while(1)
{
if(ANJIAN==0)
{
a++;
while(!ANJIAN);
switch(a)
        {
  /**************正转  步距脚90度****************/
//        case 1:P2=0x02;break;//         0010  45  //         1 -45  2 +45 3 0  4 +135  5 0          6 +90          7 +45          8 -135          9  -90  
//        case 2:P2=0x06;break;//         0110  90             A  0  B -45   C +180  D -135 e  +135 f 0
//        case 3:P2=0x04;break;//         0100  135
//        case 4:P2=0x0c;break;//         1100  180
//        case 5:P2=0x08;break;//         1000  225
//        case 6:P2=0x09;break;//  1001  270
//        case 7:P2=0x01;break;//        0001  315
//        case 8:P2=0x03;break;//        0011  360
//  case 9:a=0;break;


default:break;       
        }

}
}
}




回复

使用道具 举报

ID:228347 发表于 2017-8-23 23:33 来自手机 | 显示全部楼层
先检查接线是否接对。PUL是给电机转动的脉冲信号,dir是选正转或者反转,ENA应该是使能,这三个信号在驱动器里面应该是接的光耦,正接5v,负接单片机IO。编程思路应该是  先给使能,再给方向,然后给脉冲驱动,脉冲个数取决于你要转的角度和细分设置。时序买的模块应该有说明书会讲。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:123289 发表于 2017-8-24 00:18 | 显示全部楼层
认真研读控制驱动器(DM542),记住永远的法则:要控制什么,就必须先了解什么!!!
回复

使用道具 举报

ID:221336 发表于 2017-8-24 10:04 | 显示全部楼层
oo0o_11 发表于 2017-8-23 23:33
先检查接线是否接对。PUL是给电机转动的脉冲信号,dir是选正转或者反转,ENA应该是使能,这三个信号在驱动 ...

脉冲驱动,这块理解不够   我原来是使用ULN2003A或者ULN2803 来驱动步进电机的 使用的是四个IO口来控制 ,对于这里的单个IO口控制 ,请问能指导下吗
回复

使用道具 举报

ID:221336 发表于 2017-8-24 10:05 | 显示全部楼层
yzwzfyz 发表于 2017-8-24 00:18
认真研读控制驱动器(DM542),记住永远的法则:要控制什么,就必须先了解什么!!!

驱动器理解了大部分 ,主要是脉冲驱动,这块理解不够   我原来是使用ULN2003A或者ULN2803 来驱动步进电机的 使用的是四个IO口来控制电机 ,对于这里的单个IO口控制 ,请问能指导下吗
回复

使用道具 举报

ID:228347 发表于 2017-8-24 11:44 来自手机 | 显示全部楼层
xiong123154 发表于 2017-8-24 10:04
脉冲驱动,这块理解不够   我原来是使用ULN2003A或者ULN2803 来驱动步进电机的 使用的是四个IO口来控制  ...

高电平 延时  低电平  延时
回复

使用道具 举报

ID:221336 发表于 2017-8-24 14:18 | 显示全部楼层
oo0o_11 发表于 2017-8-24 11:44
高电平 延时  低电平  延时

单片机要和驱动模块共地吗
回复

使用道具 举报

ID:58925 发表于 2017-8-24 14:43 | 显示全部楼层
脉冲,方向,使能,直接用单片机发脉冲(高低电平)信号就可以转起来
回复

使用道具 举报

ID:123289 发表于 2017-8-24 16:11 | 显示全部楼层
你在用晶体管阵列驱动电机时,不但要向晶体管阵列送数据,而且要按一定的逻辑次序送入数据。
现在人家把这一块都做好了,放在这个驱动器里面了,你只要研读一下它的数据接口命令,按命令送入数据就OK了。
回复

使用道具 举报

ID:228347 发表于 2017-8-24 22:33 | 显示全部楼层
xiong123154 发表于 2017-8-24 14:18
单片机要和驱动模块共地吗

需要共地。。。。。
回复

使用道具 举报

ID:105206 发表于 2017-8-25 15:37 | 显示全部楼层
用单片机3个IO口分别输出脉冲信号,正反转信号,势能信号。共地。驱动器注意设置电流,细分等。
回复

使用道具 举报

ID:221336 发表于 2017-12-22 14:00 | 显示全部楼层
jubaolun 发表于 2017-8-25 15:37
用单片机3个IO口分别输出脉冲信号,正反转信号,势能信号。共地。驱动器注意设置电流,细分等。

谢谢 ,这个会啦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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