求基于51单片机的4相步进电机细分驱动硬件电路图,有软件编程更好

作者&投稿:学妹 (若有异议请与网页底部的电邮联系)
求基于51单片机的4相步进电机细分驱动 要达到定位控制 有软件C编程更好~

4相步进电机,用ULN2003或者L298N都能控制吧?
用ULN2003的话就简单了,网上有很多资料……

简单的两相步进电机驱动用L297加L298这两个芯片就很简单,百度一下就有很多成熟的电路图了,控制也很简单,使能,然后定时器输出一定频率方波即可,频率越快电机转动越快

单片机最小系统图就不用细说了吧。。。步进电机模块,驱动小的步进电机就用ULN2003芯片。连线图给出了。软件编程嘛,你这没有细说功能要求,我就给你发个典型应用案例,自己看懂了修改下应该能用。基本功能就是正转反转,加速减速,启动停止动作。

ZHENG EQU 30H      

   FAN EQU 31H

    NO EQU 32H

    AS EQU 33H

    SS EQU 34H

       ORG 00H 

       AJMP MAIN

       ORG  03H

       AJMP SUB_INT0

       ORG  30H

MAIN:  MOV 10H,#01H

       MOV 11H,#03H

       MOV 12H,#02H

       MOV 13H,#06H

       MOV 14H,#04H

       MOV 15H,#0CH

       MOV 16H,#08H

       MOV 17H,#09H

       MOV 20H,#50

       MOV 21H,#25

       MOV 22H,#10

       MOV 23H,#05

       CLR ZHENG

       CLR FAN

       CLR NO

       CLR AS

       CLR SS

       MOV R1,#20H

       MOV A,@R1

       MOV R5,A

       MOV IE,#10000001B

       SETB IT0

       MOV R0,#0FH

LOOP:  JNB ZHENG,LP

       CALL GO

  LP:  JNB FAN,LOOP

       CALL BACK

       AJMP LOOP

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(中断)

SUB_INT0:

SCAN:  MOV A,P0

       CPL A

       ANL A,#00011111B

       JNZ SCAN1

       AJMP SCAN

       

SCAN1: CALL DELAY1

       MOV A,P0

       CPL A

       ANL A,#00011111B

       JZ SCAN

       CALL RDKEY     

       RETI

RDKEY: MOV A,P0

       JNB ACC.0,STOP

       JNB ACC.2,REV

       JNB ACC.1,FOR

       JNB ACC.3,ADDSPEED

       JNB ACC.4,SUBSPEED

       

       

     

STOP:  SETB  NO

       RET

FOR:   SETB ZHENG

       RET

REV:   SETB FAN

       RET

ADDSPEED:SETB AS

         RET

SUBSPEED:SETB SS

         RET

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(正转)

GO:    CLR ZHENG

       CLR FAN

       CLR NO

       CLR AS

       CLR SS

       INC R0

       MOV A,R0

       CJNE A,#18H,GO2

       MOV R0,#10H

GO2:   MOV P2,@R0

       MOV A,@R1

       MOV R5,A 

       CALL DELAY

       JB NO,RETURN

       JB ZHENG,RETURN

       JB FAN,RETURN 

       JNB SS,GO3

       CALL JIAN

GO3:   JNB AS,GO4

       CALL JIA

GO4:   AJMP GO

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(反转)

BACK:  CLR ZHENG

       CLR FAN

       CLR NO 

       CLR AS

       CLR SS   

       DEC R0

       MOV A,R0

       CJNE A,#0EH,TT

       MOV R0,#17H

       SJMP BACK2

  TT:  CJNE A,#0FH,BACK2

       MOV R0,#17H

BACK2: MOV P2,@R0

       MOV A,@R1

       MOV R5,A

       CALL DELAY

       JB NO,RETURN

       JB ZHENG,RETURN

       JB FAN,RETURN 

       JNB AS,BACK3

       CALL JIA

BACK3: JNB SS,BACK4

       CALL JIAN

BACK4: AJMP BACK

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(加速)

JIA:   MOV A,R1

       CJNE A,#23H,JIA1

       RET

JIA1:  INC R1

       RET

;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(减速)

JIAN:  MOV A,R1

       CJNE A,#20H,JIAN1

       RET

JIAN1: DEC R1 

       RET

    

RETURN:RET

DELAY: 

  D1:  MOV R6,#50

  D2:  MOV R7,#150

  D3:  DJNZ R7,$

       DJNZ R6,D2 

       DJNZ R5,D1       

       RET 

DELAY1: MOV R6,#60

   D4:  MOV R7,#100

        DJNZ R7,$

        DJNZ R6,D4

        RET

END



这个图有点不清楚把邮箱给我把论文发给你

第1章 步进电机概述

1.1步进电机的特点:

1) 一般步进电机的精度为步进角的3-5%,且不累积。

2)  步进电机外表允许的温度高。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。

3)步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。

4)步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。 

1.2步进电机的工作原理:

    步进电机是一种用电脉冲进行控制 ,将电脉冲信号转换成相位移的电机 ,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比 ,每一个脉冲信号可使步进电机旋转一个固定的角度.脉冲的数量决定了旋转的总角度 ,脉冲的频率决定了电机运转的速度.当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

1.3  步进电机的技术参数:

1.3.1  步进电机型号

本次设计所采用的电机型号:28bjy-48四相五线微型步进电机

实物如右图

1.3.2步进电机的基本参数

 

 

第2章 方案的论证 

2.1  控制方式的确定

步进电机控制虽然是一个比较精确的,步进电机开环控制系统具有成本低、简单、控制方便等优点,在采用单片机的步进电机开环系统中,控制系统送控制字的间隔和送控制字的顺序实际上就是控制步进电机的运行速度。系统可用两种办法实现步进电机的速度控制。一种是延时,一种是定时。延时方法是在每次按键之后调用一个延时子程序,待延时结束后再次送控制字,这样周而复始就可发出一定频率的CP脉冲。该方法简单,占用资源少,全部由软件实现,调用不同的子程序可以实现不同速度和不同方向的运行。但占用CPU时间长,不能在运行时处理其他工作。因此只适合较简单的控制过程。定时方法是利用单片机系统中的定时器定时功能产生任意周期的定时信号,从而可方便的控制系统输出CP脉冲的周期。当定时器启动后,定时器从装载的初值开始对系统及其周期进行加计数,当定时器溢出时,定时器产生中断,系统转去执行定时中断子程序将电机换向子程序放在定时中断服务程序中,定时中断一次,电机换向一次,从而实现电机的速度控制。

2.1.1  脉冲序列的生成

 

图4.2  脉冲的生成

脉冲幅值:由数字元件电平决定。                                                 

     TTL   0 ~ 5V                                                                                     

     CMOS  0 ~ 10V

 接通和断开时间可用延时的办法控制。要求:确保步进到位。

2.1.2  方向控制

步进电机旋转方向与内部绕组的通电顺序相关。 四相八拍,通电顺序为:  

正转:    A®AB®B®BC®C®CD®D®DA  

反转:      A®AD®D®DC®C®CB®B®BA   

改变通电顺序可以改变步进电机的转向 

2.2  脉冲分配 

实现脉冲分配(也就是通电换相控制)的方法有两种:软件法和硬件法。本次设计采用软件法。

2.2.1  通过软件实现脉冲分配

软件法是完全用软件的方式,按照给定的通电换相顺序,通过单片机的IO向驱动电路发出控制脉冲,下面以四相八拍为例

上面提到了三相六拍工作方式通电换相得正序为A-AB-B-BC-C-CD-D-DA-A,,反序为A-AD-D-DC-C-CB-B-BA-A

 

图4.3  用软件实现脉冲分配的接口示意图

注:P2.0:A相驱动

P2.1:B相驱动

P2.2:C相驱动

P2.3:D相驱动

三相六拍控制字如下表所示:

表4.1  三相六拍工作方式的控制字

通电状态 P2.3 P2.2 P2.1 2.0 控制字

A 0 0 0 1 01H

AB 0 0 1 1 03H

B 0 0 1 0 02H

BC 0 1 1 0 06H

C 0 1 0 0 04H

CD 1 1 0 0 0CH

D 1 0 0 0 08H

DA 1 0 0 1 09H

注:0代表使绕组断电,1代表使绕组通电

在程序中,只要依次将这8个控制字送到P2口,步进电机就会转动一个齿距角,每送一个控制字,就完成一拍,步进电机转过一个步距角。

2.3  驱动方式的确定

     用于步进电机的驱动一般有两种方法,一种是通过CPU直接来驱动,这种方法一般不宜采用,因为CPU的输出电流脉冲是特别小的它不能足以让步进电机的转动;别一种是通过CPU来间接驱动,就是把从CPU输出的信号进行放大,然后直接驱动或是再通过光电隔离间接来驱动步进电机,这种方法比较安全可靠。固本次设计应采用CPU间接驱动步进电机。

2.4  驱动电路的选择

    由于单片机接口信号不够大需要通过ULN2803放大再连接到相应的电机接口,ULN2803属于高电压大电流8达林顿晶体管系列,该阵列系列中的八NPN达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS或PMOS/NMOS)和大电流高电压要求的灯、继电器、打印机锤和其他类似负载间的接口的理想器件。广泛用于计算机,工业消费类产品中。所用器件有集电极开路输出和用于瞬变抑制的续流钳位二极管。它与单片机和步进电机连接如下:

 

2.5  基本方案的确定

因本次设计的要求,选用四相八拍步进电机,单片机选用89C51作为控制器。选取用4511来驱动LED段选,7406作为LED位选驱动以显示电机转速。选用2803作为步进电机的驱动芯片。系统原理框图如下所示:

 

第3章 硬件电路的设计

3.1  单片机的选择

本次设计以CPU选用89C5l作为步进电机的控制芯片.89C51的结构简单并可以在编程器上实现闪烁式的电擦写达几万次以上.使用方便等优点,而且完全兼容MCS5l系列单片机的所有功能。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FAlsh ProgrAmmABle And ErAsABle ReAd Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案

3.2  LED显示电路设计

LED使用4511驱动,CD4511是一个用于驱动共阴极 LED(数码管)显示器的 BCD码—七段码译码器,特点如下:

具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。CD4511 是一片 CMOS BCD—锁存/7 段译码/驱动器,引脚排列如图3—2 所示。其中a b c d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。a~g是 7 段输出,可驱动共阴LED数码管。另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观 图3-1是 CD4511和AT89C51配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可。所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。限流电阻要根据电源电压来选取,电源电压5V时可使用300Ω的限流电阻。                                    

 

图3-1

 

图3-2

8421 BCD 码对应的显示见下图 :

 

3.3  步进电机与微型机的接口电路                           电路原理图如下:                                             1. 图中 自上而下K1、K2、K3、K4按钮和S1、S2开关分别控制步进电机停止、一档、二挡、三档、正转反转。 2. P1.0-P1.5 接控制按钮和开关,P0.0-P0.3送BCD码、P3.0-P3.3送LED段选,P2.0-P2.3送不及电机控制字。                                 

第4章 程序设计

4.1  程序框图

 

4.2 C程序

#include <AT89X51.H>

Unsigned char code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9,0x00,0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0x00};

unsigned char temp,temp_old;

unsigned char key;

unsigned char i,j,k,m,s;

#include <stdio.h>

#define uchar unsigned char

uchar code tab[][3]={0x02,0x07,0x03,0x08,0x08,0x01,0x08,0x02,0x01};

void d10ms()

{

    int p,q;

 for(p=2;p>0;p--)

  for(q=40;q>0;q--);

}

void delay(int i)

  { int a;

    a=i-1;

   for(m=i;m>0;m--)

   {

    P0=tab[a][0];    

    P3=0x01;

 d10ms();

 P3=0x00;

 P0=tab[a][1];

    P3=0x02;

 d10ms();

 P3=0x00;

 P0=tab[a][2];

    P3=0x04;

 d10ms();

 P3=0x00;

 }

  }

void saomiao()

{

 P1=0xff;

 if(P1_4==0)

 {

  temp=P1;

  temp=temp&0x0f;

  if(temp!=0x0f)

   {

    for(i=3;i>0;i--)

    for(j=80;j>0;j--);

    temp=P1;

    temp=temp&0x0f;

    if(temp!=0x0f)

     {

      temp=P1;

      temp=temp&0x0f;

      switch(temp)

       {

        case 0x0e:

        key=1;

         break;

        case 0x0d:

        key=2;

        break;

        case 0x0b:

        key=3;

        break;

        case 0x07:

        key=4;

        break;

       }

        temp=P1;

        temp=temp&0x0f;

        while(temp!=0x0f)

        {

         temp=P1;

         temp=temp&0x0f;

        }

     }

   }

}

  P1=0xff;

  if(P1_5==0)

  {

  temp=P1;

  temp=temp&0x0f;

  if(temp!=0x0f)

   {

    for(i=3;i>0;i--)

    for(j=80;j>0;j--);

    temp=P1;

    temp=temp&0x0f;

    if(temp!=0x0f)

     { 

      temp=P1;

      temp=temp&0x0f;

      switch(temp)

       {

     case 0x0e:

  key=8;

  break;

     case 0x0d:

        key=5;

        break;

        case 0x0b:

        key=6;

        break;

        case 0x07:

        key=7;

        break;

       }

        temp=P1;

        temp=temp&0x0f;

        while(temp!=0x0f)

        {

         temp=P1;

         temp=temp&0x0f;

        }

     

     }

   }

}

}

void main(void)

while(1)

{    

    saomiao();

    if(key==1)

     { P1=0;

      P2=0;

      saomiao();   

     }

    if(key==2)

     { 

      temp_old=key;

      for(s=0;s<8;s++)

           {  P2=table[s];

      

        delay(3);

  }

        saomiao();

        

     }

    if(key==3)

     {

      temp_old=key;  

      for(s=0;s<8;s++)

           {  P2=table[s];

        

        delay(2);

 

  }

        saomiao(); 

 

        

     }

    if(key==4)

     {

         temp_old=key;

      for(s=0;s<8;s++)

           {  P2=table[s];

        delay(1);

  }

        saomiao(); 

   

     }

    if(key==5)

     {

        temp_old=key;

      for(s=9;s<17;s++)

           {  P2=table[s];

        

        delay(3);

  }

        saomiao(); 

         

     }

    if(key==6)

     {

        temp_old=key;

      for(s=9;s<17;s++)

           {  P2=table[s];

        

        delay(2);

   }

        saomiao();

        

     }

    if(key==7)

     {

               temp_old=key;

      for(s=9;s<17;s++)

           {  P2=table[s];

        

  

        delay(1);

  }

        saomiao(); 

         

     }

   if(key==8)

     { P1=0;

       P2=0;

    saomiao();

   }

}

}

实物图

  

参考文献

[1]  李朝青. 单片机原理及接口技术 . 北京航空航天大学出版社.  2006

[2]  胡占齐、杨莉.  机床数控技术 . 机械工业出版社 .  2010

[3]  于晓东. 51系列单片机丛书 80C51单片机原理、开发与应用实例. 中国电力                             出版社. 2008

[4]   郑锋.  51单片机应用系统典型模块开发大全 .中国铁道出版社. 2010




51单片机的4个IO端口的作用是什么?
可以当做普通的IO口用,P3口有复用功能,串行传输,外部中断,定时器等等,P2和P0可以作为地址口用,P1就是普通的IO口

求,基于51单片机的4*6键盘扫描C程序.
描述 : 该文件实现了 4 * 4 键盘的试验。两位通过数码管来显示当前的按键值。\/ include<reg51.h> include<intrins.h>#define uint unsigned int define uchar unsigned charuchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/ 名称 : Delay_1ms()功...

51单片机4位LED电子钟怎么编程
char code dis_7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00, 0xff };\/*共阴LED数码管段码 0 1 2 3 4 5 6 7 8 9 10 A B C D E F 灭 *\/ char data ...

基于51单片机的四层电梯c语言独立按键的四层电梯模拟
1、电梯内部至少6个按键,4个楼层加两个门的控制,定义为:4层楼 PB1,PB2,PB3,PB4,门开,门关,PB5,PB6.2、楼梯外部每层基本2个按键:1层:上PC1,2层上PC2,下PC3,3层上PC4,下PC5.4层,下PC6.对应4和1层最少使用一个就能完成乘坐的基本要求。3、电梯位置,每层一个,PA1,PB...

请作出基于MCS51系列单片机关于存储器4片6264的扩展电...
请作出基于MCS51系列单片机关于存储器4片6264的扩展电路图,并写出各地址范围!(26分)与下图类似,在74LS138的Y2和Y3输出再接两个6264即可。4个芯片地址范围为:IC1: 0000-1FFFH IC2: 2000H-3FFFHIC3: 4000H-5FFFH

51单片机中阐述4*4行列式按键的扫描原理
如图:单片机4个IO线如P1.0至P1.3作为输出,4 个作为输入如P1.4至P1.7,上面可以接16 个按键,这些按键都有是一端跨在一根输出线上,另一端跨在一根输入线上, 要是没有按键按下时,输入 状态和输出状态没有任何关系,这时单片机读输入线的状态,得到的结果全是1(默认或设定),若有按键...

C51单片机4位数码管最好用什么来驱动?
如果条件允许的话 建议你用595芯片做驱动,它是串入并出功能的芯片,在单片机端只需要三个管脚输出就可以控制无数个数码管显示输出(理想情况下),你可以在网上下载一个595的PDF datasheet,很简单的一个芯片,用好了功能却很强大,使用时只要注意时序就可以了。对了忘记说,每一个595芯片都是8位的...

求基于51单片机的4相步进电机细分驱动硬件电路图,有软件编程更好_百度...
NO EQU 32H AS EQU 33H SS EQU 34H ORG 00H AJMP MAIN ORG 03H AJMP SUB_INT0 ORG 30H MAIN: MOV 10H,#01H MOV 11H,#03H MOV 12H,#02H MOV 13H,#06H MOV 14H,#04H MOV 15H,#0CH MOV 16H,#08H MOV 17H,#09H MOV 20H,#50 MOV 21H,#25 MOV 22H,#10 MOV 23H,#...

51单片机问题 编写4个LED数码管循环显示2008的程序。 用C语言写...
void main(void){ unsigned char n1;unsigned char code SEG[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, \/\/0-4 0x92, 0x82, 0xf8, 0x80, 0x90};\/\/5-9 while(1) { P0 = SEG[n1]; \/\/P0口,外接共阳数码管的段选端 delay(2000);n1++; if(n1 > 9) n1 = 0;} } ...

51单片机智能小车的4个直流电机如何控制才不至于浪费
我也是弄四驱动的,你要二驱动也是可以的,而且简单。可是四驱动却可以编码很多特技,像平行左右移动,这是二驱动完全做不到的。如果你很喜欢智能小车的特级运动,建议用四驱动的,完全不浪费。你说的拖动是有的,可是就是拖动产生的特效,建议图书馆找PWN有关的书,这个很多知识的,不是一下就可以讲...

义乌市15727917386: 基于51单片机的步进电机细分驱动,,,用C语言的,看到你在知道里有回答哦~~想要想要,,我的毕业设计~谢 -
言砖抗肿: 其实就是电机走的时序而已,如下面的时序表格 unsigned char Clockwise[8]={0x01,0x09,0x08,0x0a,0x02,0x06,0x04,0x05}; //大电机的四拍和八拍 unsigned char AntiClockwise[8]={0x05,0x04,0x06,0x02,0x0a,0x08,0x09,0x01}; ////90/24=3.75 一个...

义乌市15727917386: 用51单片机产生PWM 控制步进电机的256细分,以下是protues原理图和C语言程序,我想仿真,但是没有成功 -
言砖抗肿: 试着玩的,你参考一下吧: /**********四相步进电机驱动实验*****************/ #include<reg51.h> unsigned char ABCD=0; //工做相标志 unsigned char TIM=0; sbit LD=P1^5; sbit LC=P1^4; sbit LB=P1^3; sbit LA=P1^2; void main(void) {LA=1;LB=...

义乌市15727917386: 帮忙写个51单片机的c程序!两相四线混合式步进电机,正反转功能能实现,但是细分的部分需要求助! -
言砖抗肿: #include void delay() {int x,y; for(x=0;x for(y=0;y} main() {while(1) {P1=0x3f; delay(); P1=0x6f; delay(); P1=0xcf; delay(); P1=0x9f; delay(); } } 正反转改P1的值,速度改delay的值.我默认步进电机是由P1口驱动的.

义乌市15727917386: 两相四线步进电机如何用软件实现多级细分 -
言砖抗肿: 软件细分法,就是你用的2相8拍.若还要细分,就要软硬结合,用PWM调节各相平均电压,这个需要有PWM调节功能的单片机或其他单独的设备.完全做下来,由于细分本来就是一个很精密的工作,所以你做的未必能够很好地工作.很容易出现的问题就是失步,转速提高不上去.基本无法工作.解决多级细分个人认为最佳方法:采用具有多级细分的步进电机驱动芯片,如THB7128或THB6128,支持,1/2,1/4,1/8, 1/16, 1/32, 1/64,1/128 多种细分方式,功率很大,性能很好.并且有很多一般驱动电路没有的特性,保证了电路的正常运行.价格在一般人能接受的范围内.

义乌市15727917386: 基于51单片机的步进电机控制系统设计 -
言砖抗肿: //-AVR的--------------------------------//正反转可控的步进电机ULN2003A(atmega16)AVR#include <avr/io.h>#include <avr/delay.h>#define INT8U unsigned char#define INT16U unsigned int //四相步进八拍方式//正转励磁序列为A->AB->B->BC->C->CD-...

义乌市15727917386: 什么是步进电机的细分控制? -
言砖抗肿: 步进电机细分驱动技术是七十年代中期发展起来的一种可以显著改善;步进电机综合使用性能的驱动控制技术.它是通过控制各相绕组中的电流,使它们按一定的规律上升或下降,即在零电流到最大电流之间形成多个稳定的中间电流状态; 相应...

义乌市15727917386: 请高手根据此原理图给一个51单片机控制四相六线步进电机的C语言程序. 先给20分,如果仿真成功追加50分.
言砖抗肿: 你的图我看不清楚,正面是我编的一段程序仅供参考#include<reg51.h> //头文件 FYM 35BY48S053常州市丰源微特电机有限公司?#define uchar unsigned int //宏定义,为方便编程#define uint unsigned int#define MOTORSTEP P1 //宏定义,定...

义乌市15727917386: 51单片机控制步进电机程序.在线等高分,请会写的高手大侠写出来. -
言砖抗肿: 我上周刚做的这个实验 成功拉,给你参考一下吧 这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的 和ULN2003一样,你把它换成2003就行拉#include <AT89X51.H> unsigned char code table[]=; unsigned char temp,temp_old; ...

义乌市15727917386: 求助51单片机驱动四相8拍步进电动机C程序 -
言砖抗肿: 这是我自己按照你的要求写的程序,不过实际操作要看你具体的应用场合,仅供你参考.假设P0口高4位来驱动.有不明白可以联系. const unsigned char clockstep[8] ={0x80, 0x90, 0x10, 0x30, 0x20, 0x60, 0x40, 0xc0}; const unsigned char ...

义乌市15727917386: 请求大侠帮忙写一个51单片机(stc89c52)通过光敏电阻控制的4相步进电机的C语言程序驱动器是L298N -
言砖抗肿: 298只能驱动一个二相四线的步进电机或者二个直流电机:你用的是四相步进电机要用ULN2003这类驱动芯片,四相电机是单极电机,二相四线电机是双极电机,驱动原理有不一样的地方因此用的驱动芯片也有区别

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网