




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、论文题目: 步进电机的控制 课程名称: 计算机控制技术 学 院 信息工程学院 专业班级 应用电子技术(2)班 学 号 3109003108 姓 名 卢广彬 任课教师 黄国宏 2012年4 月 16 日实验名称:步进电机的控制实验目的:1、 复习步进电机的工作原理,进一步加强对步进电机的应用方面的学习;2、 了解芯片ULN2003A的工作原理,并利用单片机或者微机等对芯片加予控制;3、 学会灵活编写单片机的控制及应用程序,进一步熟悉单片机的工作方式;4、 学会用单片机及一外围设备组建具有独特功能的自动控制系统。实验原理:ULN2003A是一个具有16个引脚驱动芯片,其作用是将输入的较小电流放大,
2、以便可以驱动一般的I/O无法驱动的较大功率的外围设备。下面将叙述ULN2003A的内部结构、芯片引脚功能、与单片机的连接方法及简单的应用。一、ULN2003管脚排列如下图所示:ULN2003的内部结构和功能ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。 ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。用户输出
3、口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。通常单片机驱动ULN2003A时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。ULN2003A是一个非门电路,包含7个单元,但独每个单元驱动电流最大可达350mA.资料的最后有引用电路,9脚可以悬空。 比如1脚输入,16脚输出,你的负载接在VCC与16脚之间,不用9脚。 ULN2003A的作用:ULN2003A是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。 输入5VTTL电平,输出
4、可达500mA/50V。ULN2003A是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。 该电路的特点如下: ULN2003A的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路 直接相连,可以直接处理原先需要标准逻辑缓冲器。ULN2003A是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。 ULN2003A引脚图及
5、功能:ULN2003 是高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片。经常在以下电路中使用,作为:1、显示驱动2、继电器驱动3、照明灯驱动4、电磁阀驱动5、伺服电机、步进电机驱动等电路中。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。ULN2003 的封装采用DIP16 或SOP16ULN2003A在各种控制电路中常用它作为驱动继
6、电器的芯片,其芯片内部做了一个消线圈反电动势的二极管。ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。ULN2003可以驱动7个继电器,具有高电压输出特性,并带有共阴极的续流二极管使器件可用于开关型感性负载。每对达林顿管的额定集电极电流是500mA,达林顿对管还可并联使用以达到更高的输出电流能力。 ULN2003A中每对达林顿管的基极都串联有一个2.7k的电阻,可直接与TTL或5V CMOS器件连接ULN20
7、03可以并联使用,在相应的OC输出管脚上串联几个欧姆的均流电阻后再并联使用,防止阵列电流不平衡。2.1步进电机步进电机是一种将电脉冲转化为角位移的执行机构。电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。2.2步进电机的控制1.换相顺序控制: 通电换相这一过程称为脉冲分配。例如:混合式步进电机的工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。2.控制步进电机的转向控制: 如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。3.控制步进电机
8、的速度控制:如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。2.3步进电机的工作过程开关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方向转动。
9、四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图3.a、b、c所示: a.单四拍 b. 双四拍 c.四相八拍步进电机工作时序波形图对步进电机四个绕组依次实现如下方式的循环通电控制:1、单四拍运行:正转A-B-C-D; 反转D-C-B-A2、双四拍运行:正转AB-BC-CD-DA;反转DC-CB-BA-AD3、八拍运行: 正转A-AB-B-BC-C-CD-D-DA
10、 本实验使用的四相八拍的工作方式3、实验原理图:单片机控制步进电机的原理图如下图所示:单片机STC89C52上电后根据程序在P1.0P1.3这四个I/O口输出上面步进电机工作时序图中的四相八拍时序方波,方波电流经ULN2003A芯片构成的驱动模块放大到一定的程度,以便提供可以满足步进电机工作所需的功率,即可使步进电机工作。如图所示的电路图中,步进电机有三种工作方式:一是仿照自动升降国旗的系统,当SA按下后,就进入自动升国旗的模式,国歌的长度是49秒,电机转过24.5圈时,蜂鸣器就响一下,与此同时,在LCD1602上会计数,并显示电机转过的圈数;当SB按下后,则是降国旗,其他方面的跟升国旗的情况
11、一样。二是正转方向上的加减速,只有SC这个按键按下后,就进入正转模式;再按SC键,就可以循环加减束。三是反转方向的加减速,情况和第二种工作方式相类似。实验步骤及结果:1、 按照实验原理图连接好电路图;2、 根据原理图编写程序;3、 电路上电,调试程序,观察并控制电机使其按照预期的行为工作;4、 当电机可以通过按键控制其仿照自动升降国旗系统、正转加减速、反转加减速时,程序调试结束;5、优化程序,整理实验结果实验程序:#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsi
12、gned char#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define DataPort P0uint flag,N;uchar step=3;sbit keyA=P14; /正转键sbit keyB=P15; /反转键sbit keyC=P16; /加速键sbit keyD=P17; /减速键sbit beep=P36; /报警器开关口 sbit RS=P20;sbit RW=P21;sbit EN
13、=P22;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /数码管显示uchar code F=0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9; /四相八拍正转 TABLEuchar code R=0xf1,0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3; /四相八拍反转 TABLEvoid delay(uint z)/延时子程序 uint x,y;for(x=z;x>0;x-)for(y=0;y<115;y+);void DelayUs2x
14、(unsigned char t) while(-t);void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245); DelayUs2x(245); bit LCD_Check_Busy(void) DataPort= 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80); void LCD_Write_Com(unsigned char com) while(LCD_Check_Busy(); /忙则等待 RS_CLR
15、; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙则等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_(); EN_CLR; void LCD_Clear(void) LCD_Write_Com(0x01); DelayMs(5); void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *
16、s) if (y = 0) LCD_Write_Com(0x80 + x); /表示第一行 else LCD_Write_Com(0xC0 + x); /表示第二行 while (*s) LCD_Write_Data( *s); s +; void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) if (y = 0) LCD_Write_Com(0x80 + x); else LCD_Write_Com(0xC0 + x); LCD_Write_Data( Data); void LCD_Init(void)
17、 LCD_Write_Com(0x38); /*显示模式设置*/ DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*显示关闭*/ LCD_Write_Com(0x01); /*显示清屏*/ LCD_Write_Com(0x06); /*显示光标移动设置*/ DelayMs(5); LCD_Write_Com(0x0C); /*显示开及光标设置*/ void display() P0=0xFF; /P1口
18、置1 LCD_Init(); LCD_Clear();/清屏 LCD_Write_String(0,0,"2012-4-14"); LCD_Write_String(10,0,"S:");LCD_Write_String(12,0,"F");LCD_Write_String(0,1,"Round:");LCD_Write_Char(7,1,0+0x30); LCD_Write_Char(9,1,0x7e ); void STEP_F(uchar n) uint i;for(i=0;i<8;i+) if(key
19、C=0) while(!keyC); n-; if(n=0) n=3; beep=0; delay(100); beep=1; P1=Fi; delay(n);void STEP_R(uchar n) uint i;for(i=0;i<8;i+) if(keyD=0) while(!keyD); n-; if(n=0) n=3; beep=0; delay(100); beep=1; P1=Ri; delay(n);void keyboard() if(keyA=0) flag=0;N=0;LCD_Write_String(12,0,"F"); else if(key
20、B=0) flag=1;N=0; LCD_Write_String(12,0,"R");else if(keyC=0) while(!keyC); flag=2;N=0;LCD_Write_String(12,0,"F");else if(keyD=0) while(!keyD); flag=3; N=0; LCD_Write_String(12,0,"R");void main() /主程序 uint i,j;display(); while(1) keyboard(); if(flag=0) for(j=0;j<32;j+)
21、 for(i=0;i<8;i+)/电机转过45° P1=Fi; delay(2); N+; if(N=245) beep=0; delay(300); beep=1; break; LCD_Write_Char(10,1,N/1000+0x30); LCD_Write_Char(11,1,N%1000/100+0x30 ); LCD_Write_Char(12,1,N%1000%100/10+0x30 ); LCD_Write_String(13,1,"."); LCD_Write_Char(14,1,N%1000%100%10+0x30 ); else i
22、f(flag=1) for(j=0;j<32;j+) for(i=0;i<8;i+)/电机转过45° P1=Ri; delay(2); N+; if(N=245) beep=0; delay(300); beep=1; break; LCD_Write_Char(10,1,N/1000+0x30); LCD_Write_Char(11,1,N%1000/100+0x30 ); LCD_Write_Char(12,1,N%1000%100/10+0x30 ); LCD_Write_String(13,1,"."); LCD_Write_Char(14,1
23、,N%1000%100%10+0x30 ); else if(flag=2) while(keyA&keyB&keyD) for(j=0;j<9*step;j+) STEP_F(step); N+; LCD_Write_Char(10,1,N/1000+0x30); LCD_Write_Char(11,1,N%1000/100+0x30 ); LCD_Write_Char(12,1,N%1000%100/10+0x30 ); LCD_Write_String(13,1,"."); LCD_Write_Char(14,1,N%1000%100%10+0x30 ); else if(flag=3) while(keyA&keyB&keyC) for(j=0;j<9*step;j+) STEP_R(step); N+; LCD_Write_Char(10,1,N/1000+0x30); LCD_Write_Char(11,1,N%1000/100+0x30 ); LCD_Write_Char(12,1,N%1000%100/10+0x30 ); LCD_Write_String(13,1,"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年北京邮电大学招聘笔试真题
- 智能化WP框架构建-全面剖析
- 天津市北辰区2023-2024学年高二下学期期中考试历史试题(解析版)
- 安徽省六校2024-2025学年高三下学期2月素质检测考试生物试题(解析版)
- 铸造技术发展趋势-全面剖析
- 金融科技安全风险评估-全面剖析
- 清明节的文化与春游活动
- 2025年航空服务与管理专业知识考试试题及答案
- 2025年广播电视编导专业入学考试试卷及答案
- 传统节日与非物质文化遗产
- 2013-2022全国高考真题物理汇编:练习使用多用电表
- 2023年中南大学湘雅二医院康复医学与技术岗位招聘考试历年高频考点试题含答案解析
- GB/T 21567-2008危险品爆炸品撞击感度试验方法
- 《绿色建筑概论》整套教学课件
- 卫生人才培养方案计划
- DB64-T 1684-2020 智慧工地建设技术标准-(高清可复制)
- 婚丧嫁娶事宜备案表
- “三级”安全安全教育记录卡
- 风生水起博主的投资周记
- 赛艇赛事活动推广方案
- 人教版小学五年级数学竞赛试题及答案
评论
0/150
提交评论