控制步进马达双四拍正反转

合集下载

大学毕业设计 C51程序控制步进电机

大学毕业设计 C51程序控制步进电机

题目:简易步进电机控制步进电机控制摘要:本设计采用ATMEL公司DIP-40封装的AT89S52单片机实现对四相步进电机的手动和按键控制。

由单片机产生的脉冲信号经过分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。

转速的调节和状态的改变由按键进行选择,此过程由程序直接进行控制。

通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。

电机转动的不同状态由液晶LCD1602显示出来。

而设计的扩展部分可以通过红外信号的发射由另一块单片机和红外线LED完成,用红外万能接收头接收红外信号,可以实现对电机的控制进行红外遥控。

关键字:四相步进电机单片机功率放大 LCD1602步进电机控制 (1)摘要 (1)关键字 (1)前言 (3)1系统总体方案设计及硬件设计 (4)1.1步进电机 (4)1.1.1 步进电机的种类 (4)1.1.2 步进电机的特点 (4)1.1.3 步进电机的原理 (5)1.2 控制系统电路设计 (7)1.3 液晶显示LCD1602 (7)1.4 AT89S52核心部件及系统SCH原理图 (9)1.5 LN2003A驱动 (10)2软件设计及调试 (13)2.1程序流程 (13)2.2软件设计及调试 (14)3 扩展功能说明 (15)4设计总结 (16)5 设计源程序 (16)6 附录 (21)参考文献 (22)附2:系统原理图及实物图 (23)步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。

目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。

分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。

实验指导书(7)-步进电机控制

实验指导书(7)-步进电机控制

实验七步进电机控制一、实验目的1、掌握PLC功能指令的用法2、掌握用PLC控制步进电机的方法二、实验器材1. DICE-PLC01型可编程序控制器实验台/箱l台2. 编程电缆l根3. 连接导线若干三、实验内容及步骤1、步进电机的工作原理步进电也称为脉冲电机,它可以直接接收来自计算机的数字脉冲,使电机旋转过相应的角度。

步进电机在要求快速启停,精确定位的场合做为执行部件,得到了广泛采用。

四相步进电机的工作方式:*单相四拍工作方式,其电机控制绕组A、B、C、D相的正转通电顺序为:A→B→C→D→A;反转通电顺序为:A→D→C→B→A。

*四相八拍工作方式,正转的绕组通电顺序为:A→AB→B→BC→C→CD→D→DA→A;反向的通电顺序为:A→AD→D→DC→C→CB→B→BA→A。

*双四拍工作方式,正转的绕组通电顺序为:AB→BC→CD→DA→AB;反向的通电顺序为:AB→AD→DC→CB→BA。

步进电机有如下特点:给步进脉冲电机就转,不给步进脉冲电机就不转;步进脉冲的频率越高,步进电机转得越快;改变各相的通电方式,可以改变电机的运行方式;改变通电顺序,可以控制电机的正、反转。

2、设计要求(1)控制模块中的步进电机工作方式为四相八拍,电机的四相线圈分别用A、B、C、D表示,公共端已接地。

当电机正转时,其工作方式如下:A→AB→B→BC→C→CD→D→DA→A。

当电机反转时,其工作方式如下:A→-AD→D→DC→C→CB→B→BA→A。

设计程序,要求能控制步进电机正反转,并能控制它的转速。

(2)设置以下控制按钮:启动、停止按钮;正、反转控制按钮;快速、慢速控制按钮。

步进电机的脉冲可用逐位移位指令循环移位来实现,其脉冲频率可通过控制逐位移位指令的移位脉冲来调节,而移位脉冲可用两个定时器组合来完成,要改变脉冲频率,只要改变定时器设定值即可。

(3)程序运行后,首先选择正、反转按钮,然后选择快、慢速按钮,最后按下“启动”按钮,电机便会按照按钮的选择控制来工作。

四相步进电机驱动程序及工作原理

四相步进电机驱动程序及工作原理

四相步进电机驱动程序及工作原理1. 步进电机的工作原理该步进电机为一四相步进电机,采用单极性直流电源供电。

只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。

图1是该四相反应式步进电机工作原理示意图。

开始时,开关SB接通电源,SA、SC、SD断开,B相磁极与转子0、3号齿对齐,同时,转子的1、4号齿就与C、D相绕组磁极产生错齿,2、5号齿就与D、A相绕组磁极产生错齿。

当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线与1、4号齿之间磁力线的作用,使转子转动,1、4号齿与C相绕组的磁极对齐。

而0、3号齿与A、B相绕组产生错齿,2、5号齿就与A、D相绕组磁极产生错齿。

依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。

单四拍与双四拍的步距角相等,但单四拍的转动力矩小。

八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:驱动电路:程序:大家对照一下程序就知道,本程序采用了八拍工作方式**项目:步进电机正反转(EE01学习板演示程序)**一线工人**网站:电子工程师之家#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar codeFFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};/* 延时t毫秒/* 11.0592MHz时钟,延时约1msvoid delay(uint t)uint k;while(t--)for(k=0; k<123; k++)/*步进电机正转void motor_ffw(uint n)uchar i;uint j;for (j=0; j<12*n; j++) //转1×n圈for (i=0; i<8; i++) //一个周期转30度P0 = FFW; //取数据delay(15); //调节转速/*步进电机反转void motor_rev(uint n)uchar i;uint j;for (j=0; j<12*n; j++) //转1×n圈for (i=0; i<8; i++) //一个周期转30度P0 = REV; //取数据delay(15); //调节转速* 主程序main()while(1)motor_ffw(5); //电机正转delay(1000); //换向延时motor_rev(5); //电机反转delay(1000); //换向延时。

51单片机按键控制步进电机加减速及正反转

51单片机按键控制步进电机加减速及正反转

51单片机按键控制步进电机加减速及正反转之前尝试用单片机控制42步进电机正反转,电机连接导轨实现滑台前进后退,在这里分享一下测试程序及接线图,程序部分参考网上找到的,已经实际测试过,可以实现控制功能。

所用硬件:步进电机及驱动器、STC89C52单片机、直流电源1、硬件连接图•注意:上图为共阳极接法,实际连接参考总体线路连接。

•驱动器信号端定义:PUL+:脉冲信号输入正。

( CP+ )PUL-:脉冲信号输入负。

( CP- )DIR+:电机正、反转控制正。

DIR-:电机正、反转控制负。

EN+:电机脱机控制正。

EN-:电机脱机控制负。

•电机绕组连接A+:连接电机绕组A+相。

A-:连接电机绕组A-相。

B+:连接电机绕组B+相。

B-:连接电机绕组B-相。

•电源连接VCC:电源正端“+”GND:电源负端“-”注意:DC直流范围:9-32V。

不可以超过此范围,否则会无法正常工作甚至损坏驱动器.•总体线路连接输入信号共有三路,它们是:①步进脉冲信号PUL+,PUL-;②方向电平信号DIR+,DIR-③脱机信号EN+,EN-。

输入信号接口有两种接法,可根据需要采用共阳极接法或共阴极接法。

在这里我采用的是共阴极接法:分别将PUL-,DIR-,EN-连接到控制系统的地端(接入单片机地端);脉冲输入信号通过PUL+接入单片机(代码中给的P2^6脚),方向信号通过DIR+接入单片机(代码中给的P2^4脚),使能信号通过EN+接入(不接也可,代码中未接,置空)。

按键连接见代码,分别用5个按键控制电机启动、反转、加速、减速、正反转。

注意:接线时请断开电源,电机接线需注意不要错相,相内相间短路,以免损坏驱动器。

2、代码1.#include<reg51.h>2.#define MotorTabNum 53.unsigned char T0_NUM;4.sbit K1 = P3^5; // 启动5.sbit K2 = P3^4; // 反转6.sbit K3 = P3^3; // 加速7.sbit K4 = P3^2; // 减速8.sbit K5 = P3^1; //正反转9.10.sbit FX = P2^4; // 方向11.//sbit MotorEn = P2^5; // 使能12.sbit CLK = P2^6; // 脉冲13.14.inttable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};15.16.unsigned char g_MotorSt = 0; //17.unsigned char g_MotorDir = 0; //18.unsigned char MotorTab[7] = {12, 10, 8, 6, 4, 2,1};19.20.signed char g_MotorNum = 0;21.22.void delayms(xms);23.void mDelay(unsigned int DelayTime);24.void T0_Init();25.26.void KeyScan(void);27.28.29.30.void main(void)31.{32.T0_Init();33.// MotorEn = 0; //34.FX = 0;35.while(1)36.{37.KeyScan(); //38.}39.40.41.}42.43.void T0_Init()44.{45.TMOD = 0x01;46.TH0 = (65535-100)/256; // 1ms47.TL0 = (65535-100)%256;48.EA = 1;49.ET0 = 1;50.// TR0 = 1;51.52.}53.54.void T0_time() interrupt 155.{56.// TR0 = 0;57.TH0 = (65535-100)/256;58.TL0 = (65535-100)%256;59.T0_NUM++;60.if(T0_NUM >= MotorTab[g_MotorNum]) //61.{62.T0_NUM = 0;63.CLK=CLK^0x01; //64.}65.// TR0 = 1;66.}67.68.69.//--------------------------70.void KeyScan(void)71.{72.if(K1 == 0)73.{74.delayms(10);75.if(K1 == 0)76.{77.g_MotorSt = g_MotorSt ^ 0x01;78.// MotorEn ^= 1;79.TR0 = 1;80.FX ^= 0; //反转81.}82.}83.84.if(K2 == 0)85.{86.delayms(10); //正转87.if(K2 == 0)88.{89.g_MotorDir = g_MotorDir ^ 0x01;90.FX ^= 1; //加速91.}92.}93.94.if(K3 == 0) //95.{96.delayms(5); //加速97.if(K3 == 0)98.{99.g_MotorNum++;100.if(g_MotorNum > MotorTabNum) 101.g_MotorNum = MotorTabNum; 102.}103.}105.if(K4 == 0) //106.{107.delayms(5); // 减速108.if(K4 == 0)109.{110.g_MotorNum--;111.if(g_MotorNum < 0)112.g_MotorNum = 0;113.}114.}115.116.if(K5 == 0) //117.{118.delayms(10); // 正反转119.if(K5 == 0)120.{121.g_MotorSt = g_MotorSt ^ 0x01; 122.g_MotorDir = g_MotorDir ^ 0x01; 123.MotorEn ^= 1;124.TR0 = 1;125.while(1)126.{127.FX ^= 1; //128.delayms(90000);129.FX ^= 0; //130.delayms(90000);131.}132.}133.}135.136.void delayms(xms)//延时137.{138.unsigned int x,y;139.for(x=xms;x>0;x--)140.for(y=110;y>0;y--);141.}3、常见问题解答•控制信号高于5v一定要串联电阻,否则可能会烧坏驱动器控制接口电路。

步进电机正反转及调速设计

步进电机正反转及调速设计

步进电机正反转及调速设计陈超渭南师范学院物理与电气工程系2008级电气(1)班摘要:本系统用52系列单片机和LY-36电机驱动芯片并加入了按钮来控制步进电机实现转向、转速等。

系统中使用的四相步进电机,相应的驱动和控制电路对于其整体性能起着非常重要的作用。

经系统调试,能够很好的控制步进电机的正反转、加减速,从而达到预期目的。

整个系统具有结构简单、可靠性高、成本低和实用性强等特点,具有较高的通用性和应用推广价值。

关键词:四相步进电机 52单片机控制 YL-36驱动电路正反转1 绪论1.1 概述步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化系统中,与其他类型的电机相比具有易于精确控制,无累积误差等优点。

步进电机是一种将电脉冲转化为角位移的执行机构。

当步进驱动器接收到一个脉冲信号,就驱动步进电机按设定的方向转一个固定的角度,它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机可以作为一种控制用的特种电机,利用其没有累积误差的特点,广泛应用于各种开环控制。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,用它来做一些控制电器一类不是很复杂的工作[1]。

单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。

本文设计一种用STC89C52作为核心部件进行逻辑控制及信号产生的步进电机控制系统。

为使步进电机系统的可靠性、通用性、可维护性以及性价比最优,根据系统的功能要求,通过单片机存储器、I/O口、中断、键盘、LED显示器的扩展来实现步进电机的启停、正反转、加减速等功能。

1.2 步进电机及单片机的发展趋势步进电机的发展,将依赖于新型材料的应用、设计手段,以及与驱动技术的最佳匹配。

随着自动控制技术、计算机网络通信技术在众多领域中的快速发展,以及进一步数字化、智能化,步进电机将会在更深入广泛的领域中得意应用。

步进电机的知识点

步进电机的知识点

步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。

当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。

),双(双相绕组通电)四拍(AB-BC- CD-DA-AB-。

),八拍(A-AB-B-BC-C-CD-D-DA-A。

)前不久弄到一只28BYJ48型步进电机,没有资料,从网上查找,搜到一些资料,但按照网上介绍的程序实验,都没有成功。

后来根据资料的原理部分,试着自己编写了一段程序,经过多次实验调试,终于成功了。

哈哈,收获不小!!!步进电机是一种将电脉冲转化为角位移的执行设备。

通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。

我们可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时我们可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

28BYJ48型步进电机是四相八拍电机,电压为DC5V~DC12V。

当对步进电机按一定顺序施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号使得步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度。

当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A……),双(双相绕组通电)四拍(AB-BC-CD-DA-AB……),四相八拍(A-AB-B-BC-C-CD-D-DA-A……)。

本例是使用四相八拍驱动方式实现的。

下面是我写的C语言控制程序实现28BYJ48型步进电机正转五圈然后倒转五圈的效果://********************************************************************************//* 标题: 步进电机正反转演示程序*//* 文件: 步进电机正反转演示.C *//* 日期: 2011-3-13 *//* 环境: 使用自制单片机最小系统板测试通过*//********************************************************************************//* 描述: 28BYJ-48步进电机正反转控制*//* 电机使用端口:P1.0、P1.1、P1.2、P1.3 *//* 单双八拍工作方式:A-AB-B-BC-C-CD-D-DA *//********************************************************************************#include <reg51.h>#include <intrins.h>//**********************正向旋转相序表*****************************unsigned char code FFW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};//**********************反向旋转相序表*****************************unsigned char code REV[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};//***********************延时子程序********************************void delay(unsigned int t){unsigned int k;while(t--){for(k=0; k<125; k++){}}}//**********************步进电机正转******************************void motor_ffw(unsigned int n){unsigned char i;unsigned int j;for (j=0; j<8*64*n; j++){for (i=0; i<8; i++){P1 = FFW[i];delay(1);}}}//*********************步进电机反转********************************void motor_rev(unsigned int n){unsigned char i;unsigned int j;for (j=0; j<8*64*n; j++){for (i=0; i<8; i++){P1 = REV[i];delay(1);}}}//*************************主程序*********************************main(){while(1){motor_ffw(5); //电机正转5圈delay(1000);motor_rev(5); //电机反转5圈delay(1000);}}∙5V∙5线4相∙步进角5.625°∙减速比1/64。

三、步进电机正反转加减速控制

三、步进电机正反转加减速控制

实验题目:单片机控制步进电机电路设计与调试一、实验要求与目的1、设计要求1、利用Proteus软件设计仿真电路原理图。

2、系统控制能够完成步进电机的启动、停止;正转、反转;加速、减速及速度显示功能。

2、实验目的1、进一步掌握单片机应用系统的软硬件设计方法。

2、掌握步进电机正转反转设置方法。

3、掌握步进电机调速工作原理及程序控制原理。

4、了解单片机系统常用的功率驱动电路ULN2803的应用。

二、实验原理实验电路原理图:AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机;8重达林顿反相驱动器ULN2803包含8个NPN达林顿管,是一种大功率驱动芯片,多用于智能仪器、PLC、步进电机控制,具有工作电压高,电路增益高,可以提供大功率负载的特点,适应于各种功率驱动电路;数码管显示模块能显示电机的转速和电机的运动趋势,方便直观。

三、设计思路本设计的硬件电路包括独立按键控制模块、步进电机驱动模块、数码管显示模块和单片机最小系统四部分。

单片机最小系统由时钟电路和复位电路组成,保证单片机正常运行;独立按键控制模块由开关和按键组成,当按下按键时,该系统就按照该按键控制的功能运作;显示模块主要是为了显示电机的工作状态和转速;驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

根据系统的要求,按键输入部分设置了顺时针控制、逆时针控制、加速控制、减速控制和启动、停止三种启动方式选择按键。

控制电路原理图所示,当按下按键,内部程序检测P3.0~P3.7的状态变化调用相应的启动和转向程序,从而实现系统的电机的启动和正反转控制。

根据步进电机的工作原来可以知道,步进电机的转速主要通过控制通入电机的脉冲频率,从而控制电机的转速。

对单片机而言,主要的方法有:软件延时和定时中断,在此电路中电机的转速控制主要是通过软件延时控制,本设计是根据操作者设定的转速大小依据一定的公式计算得到变量脉冲的大小,通过延时程序改变电机转动一个步进角的时间,从而改变电机转动的快慢。

步进电机控制电路

步进电机控制电路

课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 步进电机控制电路的设计仿真与制作初始条件:集成译码器、计数器、555定时器、移位寄存器、LED和必要的门电路或其他器件。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周内完成对步进电机的设计、仿真、装配与调试。

2、技术要求:错误!未找到引用源。

能控制步进电机正转和反转及运行速度,并由LED显示运行状态;错误!未找到引用源。

设计步进电机工作方式为单四拍或双四拍。

A.单四拍方式,通电顺序为A—B—C—D—AB.双四拍方式,通电顺序为AB—BC—CD—DA—AB③确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分电路,画出总体电路原理图,阐述基本原理。

3、查阅至少5篇参考文献。

按《武汉理工大学课程设计工作规范》要求撰写设计报告书。

全文用A4纸打印,图纸应符合绘图规范。

时间安排:1)第1-2天,查阅相关资料,学习设计原理。

2)第3-4天,方案选择和电路设计仿真。

3)第4-5天,电路调试和设计说明书撰写。

4)第6天,上交课程设计成果及报告,同时进行答辩。

指导教师签名:年月日系主任(或责任教师)签名:年月日摘要关键词:步进电机,工作方式,驱动步进电机是一种将电能转化为角位移的装置。

当它接收到一个脉冲信号,步进电机按设定的方向转动一个固定的角度。

本次课程设计采用分离的数字电路元件来驱动步进电机。

控制电路由三部分组成:第一部分为脉冲信号发生器,由555构成的多谐振荡器来实现;第二部分为步进电机工作方式的控制电路,由计数器来控制单四拍的运行,由D触发器来控制双四拍的运行;第三部分为步进电机的驱动部分,由移位寄存器和一些门电路组成来控制步进电机的正常工作。

步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/****************************************************************************** *******
* 标题: 步进电机试验二(双四拍方式)
*
*
*
* 通过本例程了解步进马达使用及驱动程序编写
*
*; 双四拍工作方式:*
*; 正转:A/B AB AB/ A/B/
*
* 反转:A/B/ AB/ AB A/B
*
* UDN2916电流控制真值表:
* I0 I1 输出电流
* L L 最大
* H L 最大*2/3
* L H 最大*1/3
* H H 0
*
* 请学员一定要消化掉本例程
*
J14短路冒需断开
*
******************************************************************************* *******/
#include "reg52.h"
#define speed 30
//Motor
sbit PH1 = P1^0; //定义管脚
sbit PH2 = P1^1;
sbit I01 = P1^2;
sbit I11 = P1^3;
sbit I02 = P1^4;
sbit I12 = P1^5;
sbit k1 = P0^0;
int a;
void delay(int time);
/***************************************
函数功能:产生脉冲控制步进机
正转:A/B AB AB/ A/B/
I0 I1 为低电平时,均以最大电流输出
**************************************/
void Go0()
{ //A
PH1 = 0; //PH1为0 则A线圈为反向电流
I01 = 0;
I11 = 0;
PH2 = 0; //PH2为1 则B线圈为反向电流A/B/ AB/ AB A/B I02 = 0;
I12 = 0;
delay(speed);
//0
PH1 = 1; //PH1为1 则A线圈为正向电流
I01 = 0;
I11 = 0;
PH2 = 0; //PH2为1 则B线圈为反向电流
I02 = 0;
I12 = 0;
delay(speed);
//B
PH1 = 1; //PH1为1 则A线圈为正向电流
I01 = 0;
I11 = 0;
PH2 = 1; //PH2为0 则B线圈为正向电流
I02 = 0;
I12 = 0;
////
delay(speed);
//0
PH1 = 0; //PH1为0 则A线圈为反向电流
I01 = 0;
I11 = 0;
PH2 = 1;
I02 = 0;
I12 = 0;
delay(speed);
}
void Go1()
{ //A
PH1 = 0; //PH1为0 则A线圈为反向电流
I01 = 0;
I11 = 0;
PH2 = 1; //PH2为1 则B线圈为正向电流
I02 = 0;
I12 = 0;
delay(speed);
//0
PH1 = 1; //PH1为1 则A线圈为正向电流A/B AB AB/ A/B/ I01 = 0;
I11 = 0;
PH2 = 1; //PH2为0 则B线圈为反向电流
I02 = 0;
I12 = 0;
delay(speed);
//B
PH1 = 1; //PH1为1 则A线圈为正向电流
I01 = 0;
I11 = 0;
PH2 = 0; //PH2为0 则B线圈为正向电流
I02 = 0;
I12 = 0;
////
delay(speed);
//0
PH1 = 0; //PH1为0 则A线圈为反向电流
I01 = 0;
I11 = 0;
PH2 = 0; //PH2为1 则A线圈为正向电流
I02 = 0;
I12 = 0;
delay(speed);
}
/*******************延时函数****************************/ void delay(int time)
{
int i,j;
for(j=0; j <= time; j++)
for(i =0 ; i <= 120; i++);
}
void main()
{
while(1)
{
if(k1==0)
a=0;
else a=1;
switch(a)
{
case 0 :Go0();break;
case 1 : Go1();break; //步进电机运行
}
}
}。

相关文档
最新文档