文档库 最新最全的文档下载
当前位置:文档库 › 基于红外遥控步进电机的设计

基于红外遥控步进电机的设计

基于红外遥控步进电机的设计
基于红外遥控步进电机的设计

基于红外遥控步进电机的设计班级:B140415

摘要:随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。

步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。

介绍了一种基于AT89C51单片机的红外遥控步进电机的设计,系统分为红外遥控编解码、LCD显示和驱动步进电机三个模块,设计的系统能通过遥控器来控制步进电机,并且步进电机的状态能通过LCD液晶模块实时显示出来,使人们直观的看出步进电机的运行状态。本报告对该系统的工作原理、硬件电路和软件进行了详细介绍。

关键词:红外遥控、LCD显示、步进电机、单片机

一、引言

本系统是基于单片机控制的综合系统,单片机通过对红外信号的解码来实现步进电机的变速及LCD实时显示步进电机的转速。它综合了电子技术和单片机软硬件技术,本设计采用AT89c51单片机为核心包含红外接收电路、LCD显示电路和步进电机驱动电路。通过红外遥控器发射不同的码值来控制步进电机的正转反转、加速减速以及启动停止并通过LCD显示出步进电机的状态。

二、系统功能分析

根据系统要求设计各个模块。本设计中控制芯片采用AT89c51单片机,各个功能通过不同模块来得以实现,主要有:红外接收模块、步进电机驱动和LCD显示模块。系统基本架构原理如图1所示

图一基本架构原理图

各个模块具体实现方式如下:

1. 红外发射模块:

本设计采用的是通过遥控器发射不同的码值,红外接收电路将接收到得信号送给单片机的外部中断0,单片机接收到信号后通过解码程序对接收到得信号进行处理,使得这些信号成为相应的码值。经过处理后这些信号就可以去控制步进电机的正转反转、加速减速以及启动停止并在LCD上显示出来。遥控发射器采用士兰半导体的TC9012编码芯片进行红外遥控发射电路的搭建。TC9012是一块用于红外遥控系统中的专用发射集成电路,采用CMOS工艺制造。它可外接32个按键,其中有三组双重按键。工作电压在2。其编码方式采用一帧码中含有一个引导码,16位的用户码和8位的键数据码。键数据码的反码也同时被传送,数据反码的传送可以大大减小系统的误码率。引导码由一个9ms的载波波形和4.5ms的关断时间构成,编码采用脉冲位置调制方式(PPM)。利用脉冲之间的时间间隔来区分“0”和“1”。具体的遥控发射应用电路图如图2-1.图2-2所示

图2-1TC9012结构框图

图2-2发射器结构原理图

2. 红外接收模块:

本系统采用的接收模块其核心是与TC9012相对应的1308红外接收头。1308是一颗集接收电路、调制解调电路、低通滤波、放大电路和控制电路为一体的集成接收头,一共有三个引脚输出其中一个是电源一个是接地另一个则是输出,这样就大大方便了我们的使用。1308内部结构如图3所示

图3

由于1308内部集成了强大的信号处理功能,所以在本系统中使用这个1308的接收头的时候我们只需要在外部加上一个滤波电路就可以了,这个RC滤波电路是为了滤除电源端的干扰信号。具体应用电路图如图4所示

图4

3. 液晶显示模块

在本系统中我们采用1602字符型液晶显示模块来显示步进电机的转速、起停以及正反转等步进电机的状态。字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵型液晶显示模块。分4位和8位数据传输方式。提供5*7点阵+光标和5*10点阵+光标的显示模式。可以显示两行每行8个字符。提供内部自动上电复位电路,+5V工作电压。一共有16个引脚,其中一对电源引脚、一对LED背光电源引脚、LCD驱动电压引脚、一个模式选择引脚、一个读写操作引脚、一个使能引脚以及7个数据引脚。其中LCD 驱动电压V0可通过滑动变阻器进行调节,一般V0为零伏。具体应用电路图如图5所示

图5

4. 步进电机驱动模块

本系统采用额定电压为5VDC,相数为4相的步进电机,驱动方式为4相8拍。一共有5跟线连接,其中红色的为电源线。采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。由于单片机P口输出的电流比较弱不能驱动步进电机,所以要加一个

ULN2003芯片来放大电流使之能驱动步进电机工作。ULN2003是高耐压、大

电流达林顿陈列,由七个硅NPN 达林顿管组成。ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。步进电机驱动电路如图6所示

图6

三、硬件电路设计本系统采用的核心器件是AT89C51单片机,有4个P 口,其中P1 P2 P3内部含有上拉电阻,P0口内部不含上拉电阻。在本系统中用P0口来控制LCD液晶显示模块,p1口来控制步进电机的驱动,外部中断0(P3.2)来接3收红外控制信号。AT89C51单片机引脚图如图7所示

图7

单片机复位电路的设计。当AT89C51单片机的复位引脚RST(全称RESET)

出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。89C51单片机提供了上电复位和按键复位两种方式,本系统中采用按键复位电路。具体复位电路如图8所示,其中C4是104陶瓷电容,C3是22uf/25V的电解电容,R1的阻值为10K欧。单片机时钟电路的设计。89C51提供了外部时钟电路和内部时钟电路两种方式,本系统采用11.0592MHz晶振的外部时钟电路方式,在晶振两端接2个30pf的陶瓷电容。这两个电容成为晶振的负载电容,它会影响晶振的谐振频率和输出幅度。具体晶振电路如图9所示

图8

图9

四、系统软件设计本系统的软件设计分LCD显示子程序、红外解码判断子程序、步进电机控制程序和主程序组成。整个系统采用C语言进行编写。

1. 主程序

主程序包括系统的初始化、LCD子程序的调用以及定时器中断函数和步进电机控制函数组成。系统初始化包括对LCD显示模块数据位、命令位,红外解码标志位以及步进电机停止转动的等级的定义与初始化,定时器中断函数主要设定定时器中断间隔和步进电机转动的等级,步进电机控制函数由步进电机索引函数和对索引值的加减函数组成。系统的主程序流程图如图10所示

图10

2. LCD子程序

LCD子程序主要实现的功能是显示步进电机的状态。LCD第一行显示静态的“B140415 08 09 23”,这个是我组三同学的学号,第二行动态的显示静态的“RANK:”和不同速度步进电机转动的等级以及正反转的标志,正反转的标志为正转为“+”,反转为“-”。系统LCD显示子程序流程图如图11所示

图11

3. 红外解码判断子程序

红外解码判断子程序包括对码值的判断程序和外部中断0程序,红外接收电路将接收到的信号送到外部中断0,然后红外解码程序对收到的信号进行解码,若解码失败则重新进行解码,若解码成功则判断器码值,然后调用步进电机控制和LCD显示程序实现步进电机的运转和显示。从而实现红外遥控对步进电机的控制及显示。系统红外解码判断子程序流程图如图12所示

图12

五:总结

该红外遥控步进电机的制作让我学会了怎样去设计一个系统,对一个系统的基本架构有了一定的认识,在通过对红外编解码电路的设计也让我对红外遥控的基本知识有了新的认识,知道了红外发码的原理掌握了红外解码程序的编写,对LCD现实模块的使用也让我对LCD有了新的认识,交接了要调节LCD的驱动电压使其达到0V左右才能让字符显示出来,通过对步进电机驱动电路的设计也让我认识到要在步进电机的P口加上拉电阻才能驱动步进电机。总之,这次实训让我收获了很多也为我以后的工作奠定了一定的基础。

源代码:

#include

#include

#define DataPort P0 //定义数据端口程序中遇到DataPort 则用P0 替换

sbit IR=P3^2; //红外接口标志

unsigned char TempData[8]; //存储显示值的全局变量

char code Tab[16]="0123456789ABCDEF",zf[2]="-+";

unsigned char irtime;//红外用全局变量

bit irpro_ok,irok,f;

unsigned char IRcord[4];

unsigned char irdata[33];

sbit A1=P1^0; //定义步进电机连接端口

sbit B1=P1^1;

sbit C1=P1^2;

sbit D1=P1^3;

#define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通电,其他相断电#define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通电,其他相断电#define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通电,其他相断电#define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;}//D相通电,其他相断电#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电

#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 CHECK_BUSY

#define DataPort P0

unsigned char Speed=1;

bit StartFlag,zfFlag;

sbit RS = P2^4; //定义端口

sbit RW = P2^5;

sbit EN = P2^6;

void DelayUs2x(unsigned char t);

void DelayMs(unsigned char t);

void Ir_work(void);

void Ircordpro(void);

void TIM0init(void);

void Init_Timer1(void);

void EX0init(void);

/*------------------------------------------------

判忙函数

------------------------------------------------*/ bit LCD_Check_Busy(void)

{

#ifdef CHECK_BUSY

DataPort= 0xFF;

RS_CLR;

RW_SET;

EN_CLR;

_nop_();

EN_SET;

return (bit)(DataPort & 0x80);

#else

return 0;

#endif

}

/*------------------------------------------------

写入命令函数

------------------------------------------------*/ void LCD_Write_Com(unsigned char com)

{

// while(LCD_Check_Busy()); //忙则等待

DelayMs(5);

RS_CLR;

RW_CLR;

EN_SET;

DataPort= com;

_nop_();

EN_CLR;

/*------------------------------------------------

写入数据函数

------------------------------------------------*/

void LCD_Write_Data(unsigned char Data)

{

//while(LCD_Check_Busy()); //忙则等待

DelayMs(5);

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 *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)

{

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 speed1(void)

{

if(Speed<14)

Speed++;

TempData[0]=zf[f];

TempData[1]=Tab[Speed/10];

TempData[2]=Tab[Speed%10];

}

void speed2(void)

{

if(Speed>1)

Speed--;

TempData[0]=zf[f];

TempData[1]=Tab[Speed/10];

TempData[2]=Tab[Speed%10];

}*/

/*------------------------------------------------

主函数

------------------------------------------------*/

main()

{

unsigned int i=512;//旋转一周时间

EX0init(); //初始化外部中断

TIM0init();

Init_Timer1();

LCD_Init(); //初始化液晶

DelayMs(20); //延时有助于稳定

LCD_Clear(); //清屏

LCD_Write_String(0,0,"B140415 08 09 23");

LCD_Write_String(0,1,"RANK:");

Coil_OFF;

while(1)//主循环

{

if(irok) //如果接收好了进行红外处理 {

Ircordpro();

irok=0;

}

if(irpro_ok) //如果处理好后进行工作处理,如按对应的按键后显示对应的数字等

{

Ir_work();

}

}

}

/*------------------------------------------------

定时器0初始化

------------------------------------------------*/

void TIM0init(void)//定时器0初始化

{

TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值

TH0=0x00; //重载值

TL0=0x00; //初始化值 256微秒

ET0=1; //开中断

TR0=1;

}

/*------------------------------------------------

定时器初始化子程序

------------------------------------------------*/

void Init_Timer1(void)

{

TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响

//TH1=0x00; //给定初值

//TL1=0x00;

EA=1; //总中断打开

ET1=1; //定时器中断打开

TR1=1; //定时器开关打开

}

/*------------------------------------------------

外部中断0初始化

------------------------------------------------*/

void EX0init(void)

{

IT0 = 1; //指定外部中断0下降沿触发,INT0 (P3.2)

EX0 = 1; //使能外部中断

EA = 1; //开总中断

}

/*------------------------------------------------

定时器0中断处理

------------------------------------------------*/

void tim0_isr (void) interrupt 1

{

irtime++; //用于计数2个下降沿之间的时间

}

/*------------------------------------------------

定时器中断子程序

------------------------------------------------*/ void Timer1_isr(void) interrupt 3

{

static unsigned char times,i;

TH1=(65536-500)/256; //重新赋值 1ms

TL1=(65536-500)%256;

if(StartFlag)

{if(zfFlag==0)

{

if(times==(20-Speed))

{

times=0;

switch(i)

{

case 0:Coil_A1;i++;break;

case 1:Coil_B1;i++;break;

case 2:Coil_C1;i++;break;

case 3:Coil_D1;i++;break;

case 4:i=0;break;

default:break;

}

}

times++;

}

else

{

if(times==(20-Speed))

{

times=0;

switch(i)

{

case 0:Coil_D1;i++;break;

case 1:Coil_C1;i++;break;

case 2:Coil_B1;i++;break;

case 3:Coil_A1;i++;break;

case 4:i=0;break;

default:break;

}

}

times++;

}

}

// 调用数码管扫描

}

/*------------------------------------------------

外部中断0中断处理

作用:接收信号,并存储到数组中

------------------------------------------------*/

void EX0_ISR (void) interrupt 0 //外部中断0服务函数

{

static unsigned char i; //接收红外信号处理

static bit startflag; //是否开始处理标志位

if(startflag)

{

if(irtime<63&&irtime>=33)//引导码 TC9012的头码,9ms+4.5ms i=0;

irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1

irtime=0;

i++;

if(i==33)//存储33位2个字节的用户码,1个字节数据码,一个字节数据码反码,一位同步位

{

irok=1;//处理完毕标志为1

i=0;

}

}

else

{

irtime=0;

startflag=1;

}

}

/*------------------------------------------------

键值处理

------------------------------------------------*/

void Ir_work(void)//红外键值散转程序

{

switch(IRcord[2])//判断第三个数码值

{

case 0x40: {

if(Speed<14)

Speed++;

TempData[0]=zf[f];

TempData[1]=Tab[Speed/10];

TempData[2]=Tab[Speed%10];

}break;

case 0x44:{

if(Speed>1)

Speed--;

TempData[0]=zf[f];

TempData[1]=Tab[Speed/10];

TempData[2]=Tab[Speed%10];

}break;

case 0x43:

{ Coil_OFF;

TempData[0] = zf[f];

TempData[1] = Tab[0];

TempData[2] = Tab[0];

StartFlag=0;

LCD_Write_String(5,1,TempData);

} break;

case 0x09:

{ TempData[0] = zf[f];

TempData[1] = Tab[Speed/10];

TempData[2] = Tab[Speed%10];

StartFlag=1;

}break;

case 0x07: { if(f==1)

{ DelayMs(200);Coil_OFF;} f=0;

TempData[0]=zf[f];

zfFlag=0;

}break;

case 0x15: { if(f==0)

{ DelayMs(200);Coil_OFF;} f=1;

TempData[0]=zf[f];

zfFlag=1;

}break;

default:break;

}

if(StartFlag)

LCD_Write_String(5,1,TempData);

irpro_ok=0;//处理完成标志

}

/*------------------------------------------------

红外码值处理

------------------------------------------------*/

void Ircordpro(void)//红外码值处理函数

{

unsigned char i, j, k;

unsigned char cord,value;

k=1;

for(i=0;i<4;i++) //处理4个字节

{

for(j=1;j<=8;j++) //处理1个字节8位

{

cord=irdata[k];

if(cord>7)//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差

value|=0x80;

if(j<8)

{

value>>=1;

}

k++;

}

IRcord[i]=value;

value=0;

}

irpro_ok=1;//处理完毕标志位置1

}

void DelayUs2x(unsigned char t)

{

while(--t);

}

/*------------------------------------------------ mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编

------------------------------------------------*/ void DelayMs(unsigned char t)

{

while(t--)

{

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);

}

}

步进电机课程设计

汇编及接口技术课程设计 题目:步进电机控制系统 班 级: 070609 学 号: 070609313 姓 名: 赵明 时 间: 2009年12月 成绩:

目录 (一)设计任务与要求-3- (二)设计方案(包括设计思路、使用到哪些芯片、各个 芯片的作用)-------------------------------------------------3 (三)硬件线路设计(包括线路图及连线说明)----------4 (四)软件设计(包括程序流程图)-------------------------4 (五)源程序(要有注释)-------------------------------------5 (六)调试过程(包括实验过程中的硬件连线,实验步骤、 出现的问题、解决的方法、使用的实验数据等)-----8 (七)总结(在整个设计过程中的心得和体会,150字左 右)----------------------------------------------------8

课程设计题目:步进电机控制系统 一.设计任务与要求 (一)设计目的 1.了解步进电机控制的基本原理,掌握控制步进电机转动的编程方 法。 2.进一步熟练8255的使用。 (二)设计内容 编程控制步进电机,使其能够正常运转,要求: 1.开关K8控制电机的启动与停止:当K8向上拨时,电机启动,否则电机停 止; 2.开关K1~7控制电机的转速:K1向上拨时,得到最低转速,…… K7向上 拨时,得到最高转速。 3.每个开关对应一个发光二极管,要求开关向上拨时,对应的发光二极管亮。二.设计方案 (一)步进电机原理 步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。 本实验使用的步进电机线圈由四相组成,驱动方式为二相激磁方式,如图3.1 所示。 图3.1 步进电机原理图 如表3.1所示,首先使HA线圈和HB线圈有驱动电流,接着使HB和HC、HC和HD、HD和HA,又返回到HA和HB有驱动电流,按这种顺序切换,电机轴按顺时针方向旋转。 表3.1 步进电机激磁方式

步进电机角度控制设计

目录 摘要 (1) 1设计任务与要求 (2) 1.1设计目的 (2) 1.2设计要求和设计指标 (2) 2方案分析 (3) 3系统硬件部分 (4) 3.1主控模块 (4) 3.2键盘输入模块 (7) 3.3电机模块 (8) 3.4显示模块 (11) 4系统软件部分 (13) 4.1整体流程图及主程序 (13) 4.2按键流程图及程序 (14) 4.3显示模块程序 (19) 4.4电动机模块流程图及程序 (20) 4.5中断程序 (22) 5仿真运行 (24) 6心得体会 (25) 参考文献 (26) 附录一:Protues硬件仿真图 (27) 附录二:系统程序 (27)

摘要 步进电机在控制系统中具有很广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器或角位移发生器等。 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 此次设计使用C语言作为编程语言。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图形和动画,具体应用例如单片机以及嵌入式系统开发。 硬件部分使用89C51作为主控芯片,并使用ULN2003A将单片机的信号放大以控制步进电机,同时使用4位数码管显示转动角度及次数。 关键词:步进电机C语言AT89C51 ULN2003A 转动角度

基于单片机的步进电机课程设计报告

设计题目:基于单片机的步进电机控制系统设计 设计目的: 综合运用所学的《单片机原理及应用》的理论知识,通过实践加强对所学知识的理解,具备设计单片机应用设计系统的能力。以单片机为核心设计一个步进电机控制系统,要求能够通过键盘设置步进电机的正转和反转,加速和减速。并在LED 数码管显示器上显示步进电机转速。通过了解系统的软硬件构成及其特点,详细掌握怎样通过单片机控制其输出来控制步进电机的运转,并对应地在数码管上显示出来,更加系统的了解步进电机的组成,工作原理,控制方法。 设计要求: 【1】进行方案论证,说明步进电机控制系统的工作原理 【2】设计控制系统所需的硬件电路,给出电路原理图和元器件清单。 【3】给出软件流程图并编写程序源代码。 【4】完成系统的调试,给出调试结果并分析。 【5】了解单片机的内部结构,组成,学习单片机的工作原理以及内部工作状态,并熟悉在不同时刻,单片机的输入输出情况 【6】了解步进电机的分类和用途,掌握步进电机的内部结构以及工作原理,并学习单片机简单控制步进电机的正转和反转,加速和减速 【7】使用keil和proteus等软件进行系统的仿真,并在开发板硬件上实现。锻炼自己的编程,调试能力。 设计条件: 步进电机的工作原理 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件步进电机。在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度。称为“步距角”。它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 电机的位置和速度与导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定

红外控制步进电机启动

红外遥控步进电机控制器设计 组长:蒋世良组员:赖华生、金潇威 一、主要实现的功能 本设计基于51系列单片机,采用一体化红外接收头,控制器收遥控器信号,控制步进电机的启动、停止、正常正转、正常反转、高速正转、高速反转、低速正转、低速反转,并将接受的数据显示在LCD1602上,转动时,无论正转还是反转,2圈后都停止。 二、电路图 三、主要器件介绍 3.1液晶显示 3.1.1 1602字符型LCD简介

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图3-1: 图3-1 1602字符型液晶显示器实物图 3.1.2 1602LCD的基本参数及引脚功能 1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图3-2所示:

图3-2 1602LCD尺寸图 3.1.3 1602LCD主要技术参数: 显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V 字符尺寸:2.95×4.35(W×H)mm 3.1.4引脚功能说明 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表3-1所示:

表3-1:引脚接口说明表 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

四相步进电机控制系统设计资料讲解

四相步进电机控制系 统设计

课题:四相五线单4拍步进制电动机的正反转控制专业:机械电子工程 班级:2班 学号: 20110259 姓名:周后银 指导教师:李立成 设计日期: 2014.6.9~2014.6.20 成绩:

1概述 本实验旨在通过控制STC89C52芯片,实现对四相步进电机的转动控制。具体功能主要是控制电机正转10s、反转10s,连续运行1分钟,并用1602液晶显示屏显示出来。 具体工作过程是:给系统上电后,按下启动开关,步进电机按照预先 实验具体用到的仪器:STC89C52芯片、开关单元、四项步进电机、等硬件设 备。 实验具体电路单元有:单片机最小系统、步进电机连接电路、开关连接电路、1602液晶显示屏显示电路。 2四相步进电机 2.1步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。 2.2步进电机的控制 1.换相顺序控制:通电换相这一过程称为脉冲分配。 2.控制步进电机的转向控制:如果给定工作方式正序换相通电,步进 电机正转,如果按反序通电换相,则电机就反转。

3.控制步进电机的速度控制:如果给步进电机发一个控制脉冲,它就 转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。 2.3步进电机的驱动模块 ABCD四相工作指示灯指示四相五线步进电机的工作状态 2.4步进电机的工作过程 开关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 0 —2 0 学年第学期指导教师: 2 0 年月 课程设计成绩评定表

目录 一、设计题目………………………………………………………………. 二、设计目的………………………………………………………………. 三、设计原理及方案………………………………………………………. 四、实现方法………………………………………………………………. 五、实施结果………………………………………………………………. 六、改进意见及建议……………………………………………………….

七、设计体会………………………………………………………………. 、 一、设计题目 编程实现步进电机的控制 二、设计目的 1.了解步进电机控制的基本原理 2.掌握控制步进电机转动的编程方法 3.了解8086控制外部设备的常用电路 4.掌握8255的使用方法 三、设计原理及方案 设计原理 步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。 驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。 利用 8255对四相步进电机进行控制。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A…),双(双相绕组通电)四拍(AB-BC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…)等。 通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动。 硬件连接图 四.实现方法 .步进电机控制程序流图

微机原理课程设计 步进电机的正反转及调速控制分解

课程设计报告 题目步进电机正反转及调速 控制系统的设计 课程名称微机原理及应用 院部名称机电工程学院 专业电气工程及其自动化班级10电气1班 学生姓名管志成 学号1004103027 课程设计地点C304 课程设计学时20 指导教师李国利 金陵科技学院教务处制

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。 本设计基于Proteus 7.8设计环境,运用了8086 CPU芯片以及74273芯片、74244芯片和步进电机以及7位小功率驱动芯片ULN2003A、按钮、指示灯等辅助硬件电路,设计了步进电机正反转及调速系统。绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。该步进电机的正反转及调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速,不同的按钮对应不同的速度,并且在没有速度按钮按下的时候,步进电机自动切换到停止状态。 关键词:步进电机;正反转;调速控制;ULN2003A芯片;8086微机系统

一、概述 1.1 课程设计的目的 (4) 1.2课程设计的要求 (4) 二、总体设计方案及说明 2.1 系统总体设计方案 (5) 2.2系统工作框图 (5) 三、系统硬件电路设计 3.1 Intel 8086 微处理器的简介 (6) 3.2 步进电机的原理 (7) 3.3 ULN2003A的简介 (8) 3.4 74154芯片简介 (9) 3.5 74LS273芯片简介 (10) 3.6 8086最小系统的设计 (11) 3.7 步进电机及其驱动电路的设计 (12) 3.8 电机状态显示电路的设计 (12) 3.9 输入采样电路的设计 (13) 3.10系统总电路图 (14) 四、系统软件部分设计 4.1 系统流程图 (15) 4.2 系统软件源程序 (16) 4.2.1电机绕组通电顺序设定 (16) 4.2.2 延时子程序设计 (16) 4.2.3 汇编源程序及说明 (16) 五、总结 5.1 系统软硬件的联合调试 (21) 5.2 问题分析和解决方案 (23) 5.3 心得与体会 (23) 六、参考文献 (23) 附录:总电路图 (25)

步进电机实验报告剖析

北华航天工业学院 课程设计报告(论文) 课程名称:微机控制技术课程设计 设计课题:步进电机的控制系统 专业班级: 学生姓名: 指导教师: 设计时间:2013年06月11日

北华航天工业学院电子工程系 微机控制技术课程设计任务书 姓名:专业:班级: 指导教师:职称:教授时间:2013.6.11 课程设计题目:步进电机的控制系统 设计步进电机单片机控制系统,其功能如下: 1.具有对步进电机的启停、正反转、加减速控制; 2.控制按钮分别为正转、反转、加速、减速、以及停止键; 3.能够通过三位LED数码管(或液晶显示器)显示当前的转动速度,并且由两只不同颜色的发光二极管分别指示正转和反转,因此可以清楚的显示当前转动方向和转速; 4.要求每组选择的步进电机控制字不同; 5.用单片机做控制微机; 应用软件:keil protues 成果验收形式: 1.课程设计的仿真结果 2.课程设计的报告书 参考文献: 【1】张家生. 电机原理与拖动基础【M】. 北京:北京邮电大学出版社,2006. 【2】马淑华,王凤文,张美金. 单片机原理与接口技术【M】.北京:北京邮电大学出版社,2007. 【3】顾德英,张健,马淑华.计算机控制技术【M】. 北京:北京邮电大学出版社,2006. 【4】张靖武,周灵彬. 单片机系统的PROTEUS设计与仿真【M】. 北京:电子工业出版社,2007 第16周 时间 安排 指导教师教研室主任: 2013年06 月11日

内容摘要 步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。 关键词:步进电机单片机数码管显示

基于单片机的红外遥控小车设计

单片机系统设计实例 红外遥控小车 专业:信息对抗技术 姓名:吴志飞 学号:1411050121 指导教师:张东阳

目录 1 绪论 (1) 2 系统分析 (2) 2.1系统框架 (2) 2.2电机驱动模块 (3) 2.3 LCD显示模块 (4) 3 系统硬件设计 (5) 3.1主控模块的电路设计 (6) 3.1.1AT89C51单片机的简介 (8) 3.1.2AT89C51管脚功能 (8) 3.2红外遥控模块的电路设计 (9) 3.2.1红外遥控的实现原理 (10) 3.2.2红外发射器 (11) 3.2.3红外接收器 (12) 3.3电机驱动模块的电路设计 (12) 3.4显示模块的电路设计 (13) 4 系统软件设计 (14) 4.1程序代码 (14) 4.2软件流程图 (17) 5 调试与仿真 (18) 5.1在keil中进行调试 (18) 5.2在Proteus中进行仿真 (19) 6 总结 (21) 参考文献 (22) I

沈阳理工大学课程设计说明书 1 绪论 随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,,智能化程度越来越高,应用范围也越来越广,包括海洋开发、宇宙探测、工农业生产、军事、社会服务、娱乐等各个领域。智能电动小车系统以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科。主要由路径识别、角度控制及车速控制等功能模块组成。同时,当今机器人技术发展的如火如荼,其在国防等众多领域的应用广泛开展。神五、神六升天、无人飞船等等无不得益于机器人技术的迅速发展。一些发达国家已把机器人制作比赛作为创新教育的战略性手段,参加者多数为学生,目的在于通过大赛全面培养学生的动手能力、创造能力、合作能力和进取精神,同时也普及智能机器人的知识。从某种意义上来说,机器人技术反映了一个国家综合技术实力的高低,而智能电动小车是机器人的雏形,它的控制系统的研制将有助于推动智能机器人控制系统的发展,同时为智能机器人的研制提供更有利的手段。 本次课设设计的红外遥控智能小车可以分为四大组成部分:红外遥控部分、显示部分、执行部分、控制部分。智能小车可以实现按遥控指示前行,后退,左转和右转。该设计主要通过对系统硬件电路的设计,软件设计和程序的编写,然后通过后期软硬件调试达到设计初衷。 1

步进电机控制电路设计

黄冈职业技术院 系别:04 机电工程系 专业: 应用电子 班级:二班 设计者:戴久志、邓修海、徐凯 指导老师: 温锦辉 设计课题: 液晶8279步进电机系统 设计时间: 二00七年六月二十号

步进电机控制电路设计 1、系统基本方案 根据设计要求,步进电机控制电路可以分为控制模块、显示模块、电源模块、键盘模块、电机驱动模块、步进电机部分。步进电机控制电路基本模块方框图如图1.1所示。 2、系统硬件设计与实现 2.1、步进电机介绍 随着工业技术的不断进步,在自动化控制、精密机械加工、航空航天技术及所有要求高精度定位等高新技术领域,步进电机的得到了广泛的应用。步进电机是一种将脉冲信号转化为角位移的执行机构。若在其输入端加入有规律的脉冲信号,就能驱动步进电机按设定的方向移动一定的距离或转动一个角度(称为“步距角”)。从结构上步进电机分为单相、双相、三相、四相、五相、六相等多种。本次设计使用步进电机分为A、B、C、D四相绕组,每相通电一次称为一拍。四相步进电机根据不同的通电规律可分为几种工作模式: ⑴、四相单四拍:A-B-C-D; ⑵、四相双四拍:AB-BC-CD-DA; ⑶、四相单八拍:A-AB-B-BC-C-CD-D-DA; ⑷、四相双八拍:AB-ABC-BC-BCD-CD-CDA-DA-DAB。 步进电机的正反转与电机每相的通电顺序有关,可以改变相序来改变电机的正反转。步进电机每步所旋转角度的大小,称为步距角(βB)。它是由电机本身转子的齿数(Z R)。

一个通电循环内通电节拍数(M Q)决定的。即βB=360/ Z R M Q。电机出厂的步距角是固定的。四相步进电机的步距角为0.90/1.80(表示半步工作时为0.90,整步工作时为1.80)。步进电机转速的高低与控制脉冲频率有关。改变控制脉冲频率,可改变电机转速。 2.2、步进电机驱动模块 步进电机的驱动电路采用常用的电动机驱动芯片L298,它能够接受标准的TTL电平控制信号,驱动电机。L298操作时能提供的电压能达到46V,直流电流4A,具有过热保护功能,逻辑“0”的输入电压达到1.5V。L298在控制器的控制下驱动一个步进电动机,控制器产生L298年需的控制信号,以控制步进电机的运动状态。为了防止定子绕组的电感作用,使得电流切换时产生过电压,步进电机每相绕组两端都须并联一个用天在换相时起续流作用的肖基特二极管。步进电机驱动电路原理图如图2.2.1所示。

机器人课程设计报告范例

机器人课程设计报告范例

**学校 机器人课程设计名称 院系电子信息工程系 班级10电气3 姓名谢士强 学号107301336 指导教师宋佳

目录 第一章绪论 (2) 1.1课程设计任务背景 (2) 1.2课程设计的要求 (2) 第二章硬件设计 (3) 2.1 结构设计 (3) 2.2电机驱动 (4) 2.3 传感器 (5) 2.3.1光强传感器 (5) 2.3.2光强传感器原理 (6) 2.4硬件搭建 (7) 第三章软件设计 (8) 3.1 步态设计 (8) 3.1.1步态分析: (8) 3.1.2程序逻辑图: (9) 3.2 用NorthStar设计的程序 (10) 第四章总结 (12) 第五章参考文献 (13)

第一章绪论 1.1课程设计任务背景 机器人由机械部分、传感部分、控制部分三大部分组成.这三大部分可分成驱动系统、机械结构系统、感受系统、机器人一环境交互系统、人机交互系统、控制系统六个子系统现在机器人普遍用于工业自动化领域,如汽车制造,医疗领域,如远程协助机器人,微纳米机器人,军事领域,如单兵机器人,拆弹机器人,小型侦查机器人(也属于无人机吧),美国大狗这样的多用途负重机器人,科研勘探领域,如水下勘探机器人,地震废墟等的用于搜查的机器人,煤矿利用的机器人。如今机器人发展的特点可概括为:横向上,应用面越来越宽。由95%的工业应用扩展到更多领域的非工业应用。像做手术、采摘水果、剪枝、巷道掘进、侦查、排雷,还有空间机器人、潜海机器人。机器人应用无限制,只要能想到的,就可以去创造实现;纵向上,机器人的种类会越来越多,像进入人体的微型机器人,已成为一个新方向,可以小到像一个米粒般大小;机器人智能化得到加强,机器人会更加聪明 1.2课程设计的要求 设计一个机器人系统,该机器人可以是轮式、足式、车型、人型,也可 以是仿其他生物的,但该机器人应具备的基本功能为:能够灵活行进,能感知光源、转向光源并跟踪光源;另外还应具备一项其他功能,该功能可自选(如亮灯、按钮启动、红外接近停止等)。 具体要求如下: 1、根据功能要求进行机械构型设计,并用实训套件搭建实物。 2、基于实训套件选定满足功能要求的传感器; 3、设计追光策略及运动步态; 4、用NorthStar设计完整的机器人追光程序;

基于红外遥控的门禁系统

电子设计大赛之“duang片机,给生活加特技” 题目:红外遥控开门

红外遥控开门 一、选题背景 华工北校宿舍的们是没有外置门把的,每次同学来敲门都要走到门口开房门,非常麻烦,如果出门忘记带钥匙就没办法从外面打开门。因此,使用红外遥控开门就能很方便实现门的自动开启。本课题要求使用红外遥控器控制来控制步进电机的转动,从而达到开门效果。通过51单片机设定密码锁,并对红外遥控器的信号进行解码,输入正确密码时可以开锁。主要是需要实现单片机最小电路的设计,红外接收电路的设计,步进电机驱动电路的设计以及液晶显示模块的电路设计等。 二、方案论证 2.1设计题目要求 制作红外遥控开门装置,使得开关门可以通过红外遥控器控制步进电机转动来控制。 (1)当用上遥控器上锁后,需输入相应的开门密码,单片机判断后,若正确,蜂鸣器发出“滴滴”,代表开门,若错误,蜂鸣器发出较快的“滴滴滴滴”。 (2)在下次用遥控器上锁之前,直接按开门键即可开门。 (3)单片机断电之后,所设密码不会丢失。 (4)实现修改密码功能:以原密码修改旧密码,或者有更高层的密码可直接修改旧密码(类似于安全码)。 (5)平时不用时,单片机处于休眠模式(降低功耗),但接收到遥控器的消息后,单片机进入工作模式。 2.2方案设计与论证 2.2.1设计思路 单片机最小系统部分:设计使单片机运行起来的最小系统,控制外围电路; 红外信号解码部分:设计红外接收电路,与单片机连接,并编写解码程序利用单片机对红外信号进行解码; 显示部分:设计液晶与单片机连接的接口电路,编写控制液晶显示的程序,将开门过程的信息实时显示在液晶屏上; 报警部分:由单片机控制外围的蜂鸣器,当密码输入正确是,输出方波使其发出“滴滴”声,输入错误时,则发出较快“滴滴滴滴”; 电机驱动部分:设计步进电机驱动电路,当按下开门键时,由单片机控制其转; 信息保存部分:利用单片机内部自带的EEPROM,将密码实时写入EEPROM中,重新执行程序时从EEPROM中读取密码数据,实现掉电保存。 2.2.2设计方案论证与比较

基于单片机的步进电机控制系统的设计_毕业设计

本科毕业设计 基于单片机的步进电机控制系统的设计

摘要 随着自动控制系统的发展和对高精度控制的要求,步进电机在自动化控制中扮演着越来越重要的角色,区别于普通的直流电机和交流电机,步进电机可以对旋转角度和转动速度进行高精度控制。步进电机作为控制执行元件,是机电一体化的关键组成之一,广泛应用在各种自动化控制系统和精密机械等领域。 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。 本系统介绍了一种基于单片机的步进电机控制系统的设计,包括了硬件设计和软件设计两部分。其中,硬件设计包括单片机最小系统、键盘控制模块、LCD显示模块、步进电机驱动模块、位置检测模块共5个功能模块的设计。系统软件设计采用C语言编写,包括主程序、数字键处理程序、功能键处理程序、电机驱动处理程序、显示模块、位置采集模块。 本设计采用STC89C52单片机作为主控制器,4*4矩阵键盘作为输入,LCD1602液晶作为显示,ULN2003A芯片驱动步进电机。系统具有良好的操作界面,键盘输入步进电机的运行距离;步进电机能以不同的速度运行,可以在不超过最大转速内准确运行到任意设定的位置,可调性较强;显示设定的运行距离和实际运行距离;方便操作者使用。关键词:单片机步进电机液晶显示键盘驱动

Design of the Stepping Motor Control System Based on SCM Qiu Haizhao (College of Engineering, South China Agricultural University, Guangzhou 510642,China) Abstract:With the development of automatic control system and the requirements of high-precision control, stepping motor control in automation is playing an increasingly important role, different from the common DC and AC motor, stepper motor rotation angle and rotational speed can be high-precision controlled. Stepper motor as a control actuator is a key component of mechanical and electrical integration, widely used in a variety of automated control systems and precision machinery and other fields. Stepper motor is the open-loop control components changing electric pulse signals into angular displacement or linear displacement .In the case of non-overloaded, the motor speed, stop position depends only on the pulse frequency and pulse number, regardless of load changes, that is, to add a pulse motor, the motor is turned a step angle. This system introduces a design of stepper motor control system based on single chip microcomputer, including hardware design and software design in two parts. Among them, the hardware design, including single chip minimal system, keyboard control module, LCD display module, the stepper motor drive module, position detection module five functional modules. System software design using C language, including the main program, process number keys, the key of function processes, motor driver handler, the display module, position acquisition module. This design uses STC89C52 microcontroller as the main controller, 4 * 4 matrix keyboard as an input, LCD1602 LCD as a display, ULN2003A chip as stepper motor driver. System has a good user interface, keyboard input stepper motor running distance; Stepper motor can run at different speed, and run to any given position accurately in any speed without exceeding the maximum speed, with a strong adjustable ; Display the running distance and the actual running distance, which is more convenient for the operator to use. Key words: SCM stepper LCD keyboard driver

单片机课程设计-单片机控制步进电机

课程设计报告 题目单片机控制步进电机 课程名称单片机原理及接口技术 院部名称 专业自动化 班级M10自动化 学生姓名 学号 课程设计地点 课程设计学时 指导教师高峰 金陵科技学院教务处制 【注:根据课程设计大纲第四项具体要求撰写课程设计报告】

目录 1设计任务和要求 (3) 2设计思路 (4) 3系统硬件设计 (5) 3.1 硬件电路的工作原理 (5) 3.2步进电机模块 (5) 3.3控制模块 (6) 3.4主要元件介绍: (6) 4软件编程 (11) 5 调试过程与结果 (20) 5.1正转结果显示: (20) 5.1.1正转加速: (21) 5.1.2正转减速: (21) 6 总结与体会 (24) 7 参考资料 (26) 8 附录 (26)

1设计任务和要求 单片机课程设计是考察学生利用所学过的专业知识,进行综合的电机控制系统设计并最终完成实际系统连接,能够使学生对电气与自动化的专业知识进行综合应用,培养学生的创新能力和团队协作能力,提高学生的动手实践能力。最终形成一篇符合规范的设计说明书,并参加综合实践答辩,为后期的毕业设计做好准备。 本次设计考核的能力主要有: 1)专业知识应用能力,包括电路分析、电子技术、单片机、检测技术、电 气控制、电机与拖动、微特电机及其驱动、计算机高级语言、计算机辅 助设计、计算机办公软件等课程,还包括本专业的拓展性课程如变频器、组态技术、现场总线技术、伺服电机等课程。 2)项目设计与运作能力,团队协作能力,技术文档撰写能力,PPT汇报与 口头表达能力。 3)电气与自动化系统的设计与实际应用能力。 要求完成的工作量包括: 1)现场仿真演示效果。 2)学生结合课题进行PPT演讲与答辩。 3)学生上交课题要求的各类设计技术文档。

步进电机实验报告

单片机实验 课程名称:步进电机表实验 授课班级:2010级自动化三班 任课教师:文远熔 计划学时:32学时 实验组员:张藤耀赵福亮王聪慧 秦菱蔚梁钦郑欢

目录 摘要………………………………………………………………………… 第一章概述…………………………………………………………………………………………. 1.1实验目的………………………………………………………………………… 1.2实验要求………………………………………………………………………… 1.3步进电机的介绍…………………………………………………………………… 1.4 研究思路………………………………………………………………………… 第二章硬件设计………………………………………………………….. 2.1 51单片机介绍…………………………………………………………………… 2.2 UIN2003A…………………………………………………………………………… 2.3 ZLG7290…………………………………………………………………………… 2.3.1 7290工作原理………………………………………………………………… 2.3.2 7290引脚图…………………………………………………………………… 第三章相关图像………………………………………………………………. 3.1 总电路图……………………………………………………………………… 3.2 7290控制数码管……………………………………………………………………… 3.3 程序流程图………………………………………………………………………… 3.3.1 控制框图………………………………………………………………………… 3.3.2 流程图………………………………………………………………………… 第四章调试………………………………………………………………………第五章心得体会…………………………………………………………………附录【一】系统程序……………………………………………………………附录【二】参考文献…………………………………………………………….

步进电机的控制电路和程序

步进电机的控制电路和程序 先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。 上图是我们将要使用的51单片机综合学习系统硬件平台,本期实验我们用到了综合系统主机、步进电机,综合系统其它功能模块原理与使用详见前几期《电子制作》杂志及后期连载教程介绍。 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。 步进电机分类与结构 现在比较常用的步进电机分为三种:反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)。本章节以反应式步进电机为例,介绍其基本原理与应用方法。反应式步进电机可实现大转矩输出,步进角一般为1.5度。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。常用小型步进电机的实物如图1 所示。 图1步进电机实物图 图 2 步进电机内部图 步进电机现场应用驱动电路 综合系统使用的是小型步进电机,对电压和电流 要求不是很高,为了说明应用原理,故采用最简单 的驱动电路,目的在于验证步进电机的使用,在正 式工业控制中还需在此基础上改进。一般的驱动电 路可以用图3的形式。 图3 一般驱动电路 在实际应用中一般驱动路数不止一路,用上图的分立电路体积大,很多 场合用现成的集成电路作为多路驱动。常用的小型步进电机驱动电路可以用 ULN2003或ULN2803。本书配套实验板上用的是ULN2003。ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。ULN2003内部结构及等效电路图如图4:

步进电机控制系统设计.

毕业设计论文 论文题目:基于单片机的步进电机控制电路板设计 摘要 随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。 本设计是采用AT89C51单片机对步进电机的控制,通过IO口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机;同时,用 4个按键来对电机的状态进行控制,并用数码管动态显示电机的转速。 系统由硬件设计和软件设计两部分组成。其中,硬件设计包括AT89C51单片机的最小系统、电源模块、键盘控制模块、步进电机驱动(集成达林顿ULN2003)模块、数码显示(SM420361K数码管)模块、测速模块(含霍尔片UGN3020)6个功能模块的设计,以及各模块在电路板上的有机结合而实现。软件设计包括键盘控制、步进电机脉冲、数码管动态显示以及转速信号采集模块的控制程序,最终实现对步进电机转动方向及转动速度的控制,并将步进电机的转动速度动态显示在LED数码管上,对速度进行实时监控显示。软件采用在Keil软件环境下编辑

************* 第1章绪论 1.1 课题背景 当今社会,电动机在工农业生产、人们日常生活中起着十分重要的作用。步进电机是最常见的一种控制电机,在各领域中得到广泛应用。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。 随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,其优点是结构简单、运行可靠、控制方便。尤其是步距值不受电压、温度的变化的影响、误差不会长期积累的特点,给实际的应用带来了很大的方便。它广泛用于消费类产品(打印机、照相机、雕刻机)、工业控制(数控机床、工业机器人)、医疗器械等机电产品中。研究步进电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。控制核心采用C51芯片,它以其独特的低成本,小体积广受欢迎,当然其易编程也是不可多得的优点为此,本文设计了一个单片机控制步进电机的控制系统,可以实现对步进电机转动速度和转动方向的高效控制。 1.2 设计目的及系统功能 本设计的目的是以单片机为核心设计出一个单片机控制步进电机的控制系统。本系统采用AT89C51作为控制单元,通过键盘实现对步进电机转动方向及转动速度的控制,并且将步进电机的转动速度动态显示在LED数码管上。 1

步进电机控制系统设计

文理学院芙蓉学院课程设计报告 课程名称:专业综合课程设计 专业班级:自动化1001班学号:40 学生:志航 指导教师:建英 完成时间: 2013年 6月13 日 报告成绩: 芙蓉学院教学工作部制

摘要 本文先介绍了混合式步进电机的结构和工作原理,分析了细分驱动对于改善步进电机运行性能的作用,论述了正弦波细分驱动可以实现等步距角、等力矩均匀细分驱动的原理,提出了一种基于H桥和其他分立元件分配脉冲的驱动技术,该方案可实现步进电机的单拍、半拍、双拍三种工作方式。本文采用控制电路主要由AT89C51单片机、晶振电路、地址锁存器、译码器、液晶显示电路组成,单片机是控制系统的核心。文中对整个系统的架构及硬件电路和驱动软件的实现都做了详细的介绍。 关键词:单片机;正弦脉宽调制;混合式步进电机;细分驱动

Abstract In this paper, the working principle and configuration of three-phase hybrid Stepper are introduced, then based on technologies such as stepper motor controller, PWM inverter and microcontroller. In the thesis, we develop a single chip computer -based digital controlling system for a three-phase hybrid stepper motor that is mainly constructed from a AT89C51 single chip computer and ST7920IC which is used as the core of control parts. The system's whole architecture, the design of hardware and software are introduced in detail. KEY WORDS: Microcontroller,SPWM,Hybrid stepper motor,Micro-stepping driver

相关文档
相关文档 最新文档