找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

51单片机控制42步进电机不知道接线,程序已经写好!求救50黑币

查看数: 19114 | 评论数: 13 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-3-3 22:58

正文摘要:

本帖最后由 1492548699 于 2016-3-4 20:46 编辑 51单片机控制42步进电机不知道接线,程序有!求救50黑币。。,现在想要电机转起来,希望有人能够帮我,51芯片的脚怎么接我才可以控制电机。谢谢  qq ...

回复

ID:296880 发表于 2018-3-25 19:27
楼主整明白没,我是新手,刚接触单片机,同问
ID:79544 发表于 2016-3-8 21:44
你这个驱动器好像还要设置吧。你这个程序不能用。
ID:107207 发表于 2016-3-8 21:11
wc86110 发表于 2016-3-5 01:38
买这货时没有说明书之类附件的教你如何操作?

有关键是我接上线后电机一秒估计只转了1毫米的距离。而且电机发热严重
ID:96682 发表于 2016-3-5 01:38
买这货时没有说明书之类附件的教你如何操作?
ID:107207 发表于 2016-3-4 19:45
俠歌无畏 发表于 2016-3-4 19:09
这是我写的1相/两相/1,2相励磁的程序

/*

我现在不晓得接线 哎。我的控制线该接的单片机的哪几脚
ID:107207 发表于 2016-3-4 19:42
俠歌无畏 发表于 2016-3-4 19:09
这是我写的1相/两相/1,2相励磁的程序

/*

可以加我QQ1492548699吗
ID:94991 发表于 2016-3-4 19:09
俠歌无畏 发表于 2016-3-4 19:06
这是两相四线的驱动方式,就按照这写程序就好了

这是我写的1相/两相/1,2相励磁的程序

/*
1相励磁法延迟较2相励磁法延迟时间长,一般来说,1相励磁法延迟为5~10毫秒,2相励磁法延迟时间为2毫秒左右,

但一般使用1-2相励磁法
*/


#include<reg52.h>
sbit a1=P1^0;
sbit b1=P1^1;
sbit c1=P1^2;
sbit d1=P1^3;


bit flag;

unsigned char speed;

#define coil_ab1 {a1=1;b1=1;c1=0;d1=0;}

#define coil_bc1 {a1=0;b1=1;c1=1;d1=0;}

#define coil_cd1 {a1=0;b1=0;c1=1;d1=1;}

#define coil_da1 {a1=1;b1=0;c1=0;d1=1;}

#define coil_a1 {a1=1;b1=0;c1=0;d1=0;}

#define coil_b1 {a1=0;b1=1;c1=0;d1=0;}

#define coil_c1 {a1=0;b1=0;c1=1;d1=0;}

#define coil_d1 {a1=0;b1=0;c1=0;d1=1;}


#define coil_off {a1=0;b1=0;c1=0;d1=0;}

void delay(unsigned char t);




void main()
{
        EA=1;
        EX0=1;
        IT0=1;

        speed=1;
while(1)
{


        while(flag)
        {
                coil_off;
                delay(speed);
               
                coil_a1;
                delay(speed);               

                coil_ab1;
                delay(speed);

                coil_b1;
                delay(speed);               


                coil_bc1;
                delay(speed);

                coil_c1;
                delay(speed);               


                coil_cd1;
                delay(speed);

                coil_d1;
                delay(speed);               


                coil_da1;
                delay(speed);


        }





        while(!flag)
        {
                coil_off;
                delay(speed);

                coil_da1;
                delay(speed);               

                coil_d1;
                delay(speed);

                coil_cd1;
                delay(speed);               


                coil_c1;
                delay(speed);

                coil_bc1;
                delay(speed);               


                coil_b1;
                delay(speed);

                coil_ab1;
                delay(speed);               


                coil_a1;
                delay(speed);


        }
}
}


void delay(unsigned char t)
{
        unsigned int x,y;
        for(x=0;x<t;x++)
                for(y=0;y<123;y++);
}

void ISR_INT0(void) interrupt 0
{

if(!INT0)
   {
   delay(10);//在此处可以添加去抖动程序,防止按键抖动造成错误
   if(!INT0)
   //while(!INT1);//等待按键释放
     {
     flag=!flag;   
     }
   }
}
ID:94991 发表于 2016-3-4 19:06
俠歌无畏 发表于 2016-3-4 19:03
看完你的程序,突然发现你的程序是写给直流电机的。

这是两相四线的驱动方式,就按照这写程序就好了

QQ图片20160304190530.png (9.42 KB, 下载次数: 280)

QQ图片20160304190530.png
ID:94991 发表于 2016-3-4 19:03
1492548699 发表于 2016-3-4 18:44
驱动28块钱买的。我现在单片机的脚怎么接驱动上面来 就是搞不清楚,比如说P1.2接哪里 P1.3接哪里

看完你的程序,突然发现你的程序是写给直流电机的。
ID:107207 发表于 2016-3-4 18:44
俠歌无畏 发表于 2016-3-4 16:46
楼主土豪,买一百多的驱动器,方向和脉冲只需要接在+上面就行了,然后就是四线结对,分为两相,分不出来的 ...

驱动28块钱买的。我现在单片机的脚怎么接驱动上面来 就是搞不清楚,比如说P1.2接哪里 P1.3接哪里
ID:94991 发表于 2016-3-4 16:46
楼主土豪,买一百多的驱动器,方向和脉冲只需要接在+上面就行了,然后就是四线结对,分为两相,分不出来的话看括号(那一根线把四线其中的两根短接,然后转动电机轴,发现有种锁死的感觉那就是一对的,然后就是使能端接。
ID:104472 发表于 2016-3-4 15:40
一般三根线,cp,drive,GND 端,
程序可能要用pwm,但是没见你程序里面有,
ID:71508 发表于 2016-3-4 14:04
估计楼主的程序也不行吧  

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

Powered by 单片机教程网

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