您好!欢迎进入无锡惠斯通电机科技有限公司官网 !

    联系我们
    服务热线
    13901635301
    联系人:赵先生
    手机:13901635301
    电话:0523-83765066
    地址:江苏省兴化市张郭镇刘西工业园区民营路168号
    混合式步进电机重新对电机控制 v
    浏览:45 发布日期:2020-09-07 06:17:31

      三相步进电机控制程序及电路_物理_自然科学_专业资料。成绩 课程论文 题 目: 课程名称: 学生姓名: 学生学号: 系 别: 专 业: 年 级: 任课教师: 三相步进电机控制系统的设计 Proteus 刘卫东 电子工程学院 通信工程 2012 级 王

      成绩 课程论文 题 目: 课程名称: 学生姓名: 学生学号: 系 别: 专 业: 年 级: 任课教师: 三相步进电机控制系统的设计 Proteus 刘卫东 电子工程学院 通信工程 2012 级 王丽 电子工程学院制 2015 年 4 月 三相步进电机控制系统的设计 学生:刘卫东 指导教师:王丽 电子工程学院 通信工程 1 系统硬件介绍 AT89C51 单片机简介 AT89C51 是一种带 4k 字节闪烁可编程课擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,混合式步进电机 俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯 片中,ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活 性高且价廉的方案。 主要特性: (1)与 MCS-51 兼容 (2)4K 字节可编程闪烁存储器 (3)寿命:1000 写/擦循环 (4)数据保留时间:10 年 (5)全静态工作:0Hz-24Hz (6)三级程序存储器锁定 (7)128*8 位内部 RAM (8)32 可编程 I/O 线 位定时器/计数器 (10)5 个中断源 (11)可编程串行通道 (12)低功耗的闲置和掉电模式 (13)片内振荡器和时钟电路 ULN2003A 芯片介绍 经常在以下电路中使用,混合式步进电机作为: 1、显示驱动 2、继电器驱动 3、照明灯驱动 4、电磁阀驱动 5、伺服电机、步进电机驱动等电路中。 基本参数: 模块配置:7 NPN 电压, Vceo:50V 集电极直流电流:500mA 直流电流增益 hFE:1000 工作温度范围:-20°C to +85°C 封装类型:PDIP 引脚数:16 封装类型:DIP 晶体管数:7 表面安装器件:通孔安装器件标号:2003 连续电流, Ic:500mA 芯片标号:2003 输入电压:30V 输入类型:5V TTL CMOS 输出电压:50V 输出电流:0.6A 通道数:7 2 硬件电路设计 总体的硬件设计 (1) 用 K0-K2 做为通电方式选择键,K0 为单三拍,混合式步进电机K1 为双三拍,K2 为三相六拍; 设计一个单片机三相步进电机控制系统要求系统具有如下功能: (2) K3、K4 分别为启动和方向控制; (3) 正转时红色指示灯亮,反转时黄色指示灯亮,混合式步进电机不转时绿色指示灯亮; (4) 用 4 位 LED 显示工作步数。混合式步进电机 根据设计要求用 PROTEUS 所做的硬件连线 总体硬件连线 三相步进电机控制电路 2.2.1 启/停控制、正/反转控制、工作模式控制电路分析原理图如图 2 所示; 图 2 按键控制图 (1)K0-K2 为工作模式控制开关,KO 接电时,为步进电机单三拍工作模式;K1 接电时, 为步进电机双三拍工作模式;K2 接电时,步进电机工作模式为三相六拍, (2)K3 为启动/停止控制开关,控制整个系统的开启和关闭。 (3)K4 为正转/反转控制开关,控制步进电机的转向。 (4)K5 速度控制(快慢两档)。 2.2.2 步进电机驱动电路 将 80C51 的作为步进电机的输出控制口。电路图如下所示: 图 3 步进电机的输出控制口 LED 显示电路 2.3.1 发光二极管显示电路 用 3 个不同的发光二极管来作为指示灯,将接红灯,接黄灯,接绿灯,正转时红色 指示灯亮,反转时黄色指示灯亮,不转时绿色指示灯亮。图如下: 图 4 指示灯接线 八段数码管显示电路 由 80C51 的 P0 口取出显示码,从 80C51 的输出位选码,设计中我们主要用到 4 位 显示步数既可。原理图如下: 图 5 显示器接线 程序设计流程图 设计说明:首先复位单片机,然后从 P3 口读出开关状态,判断是否启动,没启动 绿灯亮重新确认启动。启动后再次读取 P3 口数据,判断工作方式并将对应的用来存储 步进电机工作方式字的数组首地址值给 q。由口的双向开关来控制步进电机的正反转, 如果是正转则红灯亮,反转则绿灯亮。在电机每走一步后,步数记数加 1,然后通过 LED 显示把工作步数显示出来。再从 P3 口把状态信息读出来,与之前的 P3 口的状态信息进 行比较。如果状态信息没有改变,电机继续运行。如果状态信息改变了,就需要重新返 回程序的开端,对电机的运行状态进行判断,让电机重新以新的状态运行。由此,开关 的状态在电机每走一步都会查询一遍,做到实时地反映。 开始 P3 口、步数清零 数码管输出 0 绿色显示灯亮 启/停按键 K3 按下 Y K0/K1/K2 选择工作方 式控制字序列 启/停按键 K3 按下 N 以已选择的序列 输出控制字 步数自增一 数码管输出步进 步数 正/反转按键 K4 按下 N Y 选择正 转控制 字序列 选择反 转控制 字序列 红灯亮 黄灯亮 调速键 N K5 按下 短延时 长延时 图 6 总体流程图 4 仿真结果与分析 三相步进电机三种工作方式 图 7 为步进电机工作在三相单三拍,此时 K0,K3 接高电平,K1,K2 接低电平启动; 图 8 为步进电机工作在三相双三拍,此时 K1,K3 接高电平,K0,K2 接低电平;图 9 为步 进电机工作在三相六拍,此时 K0,K1 接低电平,K2,K3 接高电平;若 K4 接高电平则反转, 低电平则正转;若 K5 接高电平速度快,接低电平速度慢。这三种工作方式工作不同, 三相单三拍时,混合式步进电机通电顺序为 A-B-C-A;三相双三拍时,通电顺序为 AB-BC-CA-AB;三相六 拍时,通电顺序为 A-AB-B-BC-C-CA-A;以上通电方式是三种工作方式正转的情况,若要 反转,则通电方式放过来即可。 图 7 步进电机工作在三相单三拍 图 8 步进电机工作在三相双三拍 图 9 步进电机工作在三相六拍 相步进电机启动和停止 图 15 为步进电机工作在启动状态,此时步进电机工作在三种方式之一,K3 接高电 平。 图 10 步进电机工作在启动状态 图 11 为步进电机工作在停止状态,此时步进电机工作在三种方式之一,K3 接低电 平。 图 11 步进电机工作在停止状态 三相步进电机正转和反转 图 12 为三相步进电机工作在正转状态,此时 K4 接低电平。 图 12 为三相步进电机工作在正转状态 图 13 为三相步进电机工作在反转状态,此时 K4 接高电平 图 13 为三相步进电机工作在反转状态 三相步进电机速度控制 图 14 为三相步进电机处于快速度状态,此时 K5 接高电平。 图 14 为三相步进电机处于高速度状态 图 15 为三相步进电机处于慢速度状态,此时 K5 接低电平 5 总结 图 15 为三相步进电机处于慢速度状态 经过一个星期的努力和付出,完成了本次proteus课程设计,通过本次课程设 计提高了我的设计方案和分析问题的能力,加深了对理论知识的理解,做到了理论知识 与实践的联系。学会了 Proteus 这个仿真软件的运用,积累进行课程设计的经验。 首先通过本次课程设计,熟练地掌握了三相步进电机控制系统的设计,了解其工作 原理,以及电路所用到一些芯片的工作状况,如 80C51 单片机芯片和 ULN2003A 驱动芯 片以及 7SEG-MPX4-CC 四位共阴二极管显示器阴,熟悉了它们各自的特点和用途。通过 本次课程设计,对理论知识有了更深入的理解,感受到 proteus 的魅力。 其次,通过本次课程设计,大大提高了自己的动手能力和设计能力,加深对 Proteus 软件功能的理解,学会用这个软件设计三相步进电机控制系统,将理论知识与实践相联 系,为以后在学习和工作的发展打下一个良好的基础 。然后,通过该课程设计,初步 理解了利用计算机控制技术进行三相步进电机控制系统的设计。 参考文献 [1] 于海生编着.计算机控制技术[M].北京:机械工业出版社.2005. [2] 谭浩强编着.C 程序设计(第三版)[M].北京:清华大学出版社.2008. [3] 彭虎、周佩琳编着.微机原理与接口技术[M]. 北京:电子工业出版社.2007. [4] 刘教瑜、曾勇编着.单片机原理与应用[M].武汉:武汉理工大学出版社.2008. [5] 顶明亮、唐前辉编着.51 单片机应用设计与仿真:基于 keil 与 proteus[M]. 北京:北京航空航天大学出版社.2009. [6] 徐安编着.微型计算机控制技术[M]. 北京:科学出版社. 2005. [7] 杨立编着.计算机控制与仿真技术[M]. 北京:中国水利水电出版社. 2006. [8] 彭旭昀编着.机电控制系统原理及工程应用[M].北京:机械工业出版社.2006. [9] 杨益强、李长虹编着.控制器件[M].北京:中国水利水电出版社.2005. 附录: #include #include void delay1(void); void delay2(void); void display(int); int bs=0; int cishu; main() { char a,b,c,d,j,*q, done1[8]={0x01,0x02,0x04,0x00,0x01,0x04,0x02,0x00}, done2[8]={0x03,0x06,0x05,0x00,0x03,0x05,0x06,0x00}, done3[14]={0x01,0x03,0x02,0x06,0x04,0x05,0x00,0x01,0x05,0x04,0x06,0x02, 0x03,0x00}; P3=0x20; //口置 1,绿灯亮,不工作 delay1(); L: a=P3; while(!(a&0x08)) //判断是否启动,若没启动则重新启动 { P3=0x20; a=P3; delay1();} a=P3; //判断工作模式 if(a&0x01) //方式 1 模型 q=done1; if(a&0x02) //方式 2 模型 q=done2; if(a&0x04) //方式 3 模型 q=done3; if(a&0x20) cishu=5; else cishu=50; if(a&0x10) //判断电机是否要正转 { P3=0x80; //口为 1,电机正转,红灯亮 b=0;} else { P3=0x40; //口为,电机反转,黄灯亮 if(a else b=4; } d=b; while(1) { c=*(q+b); //判断电机步数是否走完 if(c==0)b=d; //步数走完,电机重新再走 else { P1=c; //从 P1 输出电机控制信号 b++; bs++; //总步数加 1 display(bs); //显示步数 j=a; a=P3; if(a!=j) //判断 P3 口状态信号是否改变 { if(!(a&0x08))bs=0; //若为停止信号,总步数清零 goto L; } //状态信号改变,返回到开始,重新对电机控制 } } } void delay1() { int i,j; for(i=0;i200;i++) for(j=0;j300;j++); } void display(int n) {unsigned char tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67}; unsigned char i,k,t,num[4]; num[0]=n%10; //将总步数的各位分别存在 num 数组中 num[1]=(n/10)%10; num[2]=(n/100)%10; num[3]=(n/1000)%10; for(t=0;tcishu;t++) //扫描快慢指定次数次 { k=0x08; //位选码指向左一位,第四位 for(i=0;i4;i++) { P2=k; //从 P2 口输入位选码 P0=~(tab[num[i]]); //取出显示码,并从 P0 口输出显示码 k=k1; //求下一个位选码 delay2(); } } } void delay2() { int i,j; for(i=0;i10;i++) for(j=0;j60;j++); }
    以上信息由无锡惠斯通电机科技有限公司整理编辑,了解更多步进电机,两相步进电机,混合式步进电机信息请访问http://www.huistong.com