搜档网
当前位置:搜档网 › 单片机驱动步进电机程序代码

单片机驱动步进电机程序代码

单片机驱动步进电机程序代码
单片机驱动步进电机程序代码

单片机驱动步进电机程

序代码

Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

/********************************************************

实现功能:正转程序

使用芯片:AT89S52

晶振:11.0592MHZ

编译环境:Keil

作者:

【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!********************************************************/ #include //库文件

#define uchar unsigned char //字符型宏定义

#define uint unsigned int //整型宏定义

uchar tcnt; //定时器计数初值定义

uint sec; //速度值定义

uchar buf[11];

uchar bai,shi,ge;

/********************控制位定义*************************/

sbit shi_neng=P1^0; // 使能控制位

sbit fang_shi=P1^1; // 工作方式控制位

sbit fang_xiang=P1^2;// 旋转方向控制位

sbit mai_chong=P1^3; // 脉冲控制位

/********************延时函数***************************/

void delay1ms(uchar z)

{

uchar x,y;

for(x=0;x

for(y=0;y<110;y++);

}

/***************************定时中断服务函数*************/

void t0(void) interrupt 1 using 0 //定时中断服务函数

{

tcnt++; //每过250ust tcnt 加一

if(tcnt==1) //当tcnt满足条件时

{

tcnt=0; //计满重新再计

sec++;

if(sec==6) //括号内数值越小,电机转动速度越快

{

sec=0; //计满重新再计

mai_chong=~mai_chong; //脉冲输出

}

}

}

/***********************定时器0/1初始化****************************/

void T0_Init()

{

ET0 = 1;

TMOD = 0x22;

TH0=0x06; //对TH0 TL0 赋值

TL0=0x06;

TR0=1; //开始定时

sec=0;

mai_chong=1; // 脉冲控制位

}

/***********************串口初始化****************************/

void Uart_Init()

{

TMOD = 0x22;

TH1 = 0xFD;

TL1 = 0xFD;

SCON = 0x50;

PCON &= 0xef;

TR1 = 1;

}

/***********************数据接收函数****************************/

void ReceiveBuf()

{

int i;

for(i=0;i<11;i++)

{

buf[i] = SBUF;

while(RI == 0);

RI=0;

}

}

/***********************角度控制函数****************************/ void Control()

{

if((bai==buf[5])&(shi==buf[6])&(ge==buf[7]))

{

shi_neng=0;

};

if(bai

{

shi_neng=1;

fang_xiang=0;

}

else if(bai>buf[5])

{

shi_neng=1;

fang_xiang=1;

};

if((bai==buf[5])&shi

{

shi_neng=1;

fang_xiang=0;

}

else if((bai==buf[5]&shi>buf[6]))

{

shi_neng=1;

fang_xiang=1;

};

if((bai==buf[5])&(shi==buf[6]&(ge

{

shi_neng=1;

fang_xiang=0;

}

else if((bai==buf[5])&(shi==buf[6])&(ge>buf[7]))

{

shi_neng=1;

fang_xiang=1;

};

if((bai==buf[5])&(shi==buf[6])&(ge==buf[7]))

{

shi_neng=0;

};

delay1ms(3);

bai=buf[5];

shi=buf[6];

ge=buf[7];

}

/************************主函数****************************/

main()

{

EA=1;

T0_Init();

Uart_Init();

while(1)

{

// shi_neng=1; // 使能控制位

fang_shi=1; // 工作方式控制

ReceiveBuf();

delay1ms(1);

Control();

delay1ms(10);

}

}

/*************************结束******************************/

单片机基于80C51单片机的步进电机控制系统

中国地质大学长城学院 本科课程设计题目:基于80C51单片机的步进电机控制系统 系别信息工程系 学生姓名 专业电气工程及其自动化 学号 指导教师 职称讲师 2014 年6 月11 日

摘要 本文研究基于51系列单片机的步进电机控制系统设计,该系统包括以下几个部分:数据采集、数据处理、终端接收,该系统以汇编语言为单片机的驱动程序语言,单片机控制步进电机,主要任务是把二进制数变成脉冲序列,按相序输入脉冲以实现电机转动方向控制,利用单片机实现对步进电机的远距离实时监控,从而达到高效、节能的控制步进电机工作的目的,该系统具有成本低、控制方便的特点。使用单片机驱动四相步进电机,控制步进电机以四相八拍的方式运行,来实现步进电机正向/反向旋转,P1.0~P1.3分别控制步进电机;P1.5~P1.7分别控制步进电机的停止、正转、反转。 关键词:51单片机;步进电机;数据采集;汇编语言;

目录 摘要 0 1 设计目的 (1) 2设计内容与要求 (1) 3 总体设计方案 (1) 3.1整体方案 (1) 3.2具体方案实现 (1) 4系统硬件设计 (2) 4.1复位电路 (2) 4.2晶振电路 (2) 4.3按键电路 (3) 4.4指示灯电路 (3) 4.5驱动电路 (4) 4.6步进电机 (4) 5程序软件设计 (5) 5.1程序流程图 (5) 5.2源程序 (6) 6系统调试与仿真 (7) 7总结 (8)

1设计目的 1.掌握单片机控制步进电机的硬件接口电路。 2.掌握步进电机驱动程序的设计和调试方法。 3.熟悉步进电动机的工作特性。 2设计内容与要求 1.查阅资料,了解步进电机的工作原理。 2.通过单片机给定参数控制电机转动。 3.通过按钮控制正转、反转和停止。 3总体设计方案 3.1整体方案 本系统主要是由AT89C51,步进电机控制器ULN2004,步进电机,通过单片机编程,实现步进电机控制的脉冲分配,使电机实现正转,反转以及停止等功能 3.2具体实现方案 根据系统要求画出单片机控制步进电机的控制框图,见下图。系统包括单片机、按键、驱动电路和步进电机。 键盘80c51单片机 步进电机 驱动电路

单片机驱动步进电机程序代码

单片机驱动步进电机程 序代码 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

/******************************************************** 实现功能:正转程序 使用芯片:AT89S52 晶振: 编译环境:Keil 作者: 【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!********************************************************/ #include<> //库文件 #define uchar unsigned char //字符型宏定义 #define uint unsigned int //整型宏定义 uchar tcnt; //定时器计数初值定义 uint sec; //速度值定义 uchar buf[11]; uchar bai,shi,ge; /********************控制位定义*************************/ sbit shi_neng=P1^0; // 使能控制位 sbit fang_shi=P1^1; // 工作方式控制位 sbit fang_xiang=P1^2;// 旋转方向控制位 sbit mai_chong=P1^3; // 脉冲控制位 /********************延时函数***************************/ void delay1ms(uchar z) { uchar x,y; for(x=0;x

51单片机控制的步进电机C语言程序

我上周刚做的这个实验成功拉,给你参考一下吧这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的和ULN2003一样,你把它换成2003就行拉 #include unsigned char code table[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf 9,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; void delay(int i) { for(m=i;m>0;m--) for(j=250;j>0;j--) for(k=10;k>0;k--); } void saomiao() { P3=0xff; P3_4=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--)

for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; 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=P3;

temp=temp&0x0f; while(temp!=0x0f) { temp=P3; temp=temp&0x0f; } } } P3=0xff; P3_5=0; temp=P3; temp=temp&0x0f; if(temp!=0x0f) { for(i=50;i>0;i--) for(j=200;j>0;j--); temp=P3; temp=temp&0x0f; if(temp!=0x0f) { temp=P3; temp=temp&0x0f; switch(temp)

步进电机驱动及控制专业技术解答

步进电机驱动及控制技术解答 1.步进电机为什么要配步进电机驱动器才能工作? 步进电机作为一种控制精密位移及大范围调速专用的电机, 它的旋转是以自身固有的步距角角(转子与定子的机械结构所决定)一步一步运行的, 其特点是每旋转一步,步距角始终不变,能够保持精密准确的位置。所以无论旋转多少次,始终没有积累误差。由于控制方法简单,成本低廉,广泛应用于各种开环控制。步进电机的运行需要有脉冲分配的功率型电子装置进行驱动, 这就是步进电机驱动器。它接收控制系统发出的脉冲信号,按照步进电机的结构特点,顺序分配脉冲,实现控制角位移、旋转速度、旋转方向、制动加载状态、自由状态。控制系统每发一个脉冲信号, 通过驱动器就能够驱动步进电机旋转一个步距角。步进电机的转速与脉冲信号的频率成正比。角位移量与脉冲个数相关。步进电机停止旋转时,能够产生两种状态:制动加载能够产生最大或部分保持转矩(通常称为刹车保持,无需电磁制动或机械制动)及转子处于自由状态(能够被外部推力带动轻松旋转)。步进电机驱动器必须与步进电机的型号相匹配。否则将会损坏步进电机及驱动器。 2.什么是驱动器的细分?运行拍数与步距角是什么关系? “细分”是针对“步距角”而言的。没有细分状态,控制系统每发一个步进脉冲信号,步进电机就按照整步旋转一个特定的角度。步进电机的参数,都会给出一个步距角的值。如110BYG250A型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这是步进电机固有步距角。通过步进电机驱动器设置的细分状态,步进电机将会按照细分的步距角旋转位移角度,从而实现更为精密的定位。以110BYG250A电机为例,列表说明: 可以看出,细分数就是指电机运行时的真正步距角是固有步距角(整步)的几分指一。例如,驱动器工作在10细分状态时,其步距角只有步进电机固有步距角的十分之一。当驱动器工作在不细分的整步状态时,控制系统每发一个步进脉冲,步进电机旋转1.8°;而用细分驱动器工作在10细分状态时,电机只转动了0.18°。其实,细分就是步进电机按照微小的步距角旋转,也就是常说的微步距控制。当然,不同的场合,有不同的控制要求。并不是说,驱动步进电机必须要求细分。有些步进电机的步距角设计为3.6°、7.5°、15°、36°、180°,就是为了加大步距角,以适应特殊的工况条件。细分功能,只由驱动器采用精确控制步进电机的相电流方法,与步进电机的步距角无关,而与步进电机实际工作状态相关。 运行拍数与驱动器细分的关系是:运行拍数指步进电机运行时每转一个齿距所需的脉冲数。例如:110BYG250A电机有50个齿,如果运行拍数设置为160,那么步进电机旋转

基于51单片机的步进电机控制-设计报告(说明书)及源程序

南京XX大学 指导老师:张X 课程设计基于51单片机的步进电机控制 机械电子工程学院 测控技术与仪器 XXXXX Xxx 2012年1年4日

步进电机控制系统 [摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启 动、停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 关键字:步进电机、数码管、51单片机、ULN2803 一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算

单片机控制步进电机和数码管显示

一、设计任务书 设计内容:用80C51单片机设计一个步进电机控制器 设计要求: 1.用8015设计一个四相步进电机。 2.可控制步进电机的启动与停止,正转与反转。 3.10档速度调节。 4.点动控制。 5.可显示电机运行参数。 二、设计总体方案 (一)控制方式的选择 控制主要用于电机速度和方向的转换。控制方式有按键控制和开关控制两种。按键较开关而言,操作更加简便,故选按键控制。 方案一:独立按键。独立按键可自由连接,线路简单。 方案二:编码式键盘。编码式键盘的按键接触点接于74LS148芯片。当键盘上没有闭合时,所有按键都断开,当某一键闭合时,该键对应的编码由74LS148输出。 本次设计所需按键不多,不需要采用复杂编码,考虑硬件条件、线路连接和经济性等方面,选择方案一。 (二)电机电路设计方案的选择 由于条件的限制,对于电机的选择只能是实验台上最小步距角18°的电机,其中已包含了驱动电路。 (三)单片机的选择 方案一:AT89C51高性能8位单片机,内部集成CPU、存储器、寄存器、I/O接口,从而构成较为完整的计算机,价格便宜。 方案二:C8051F005单片机,该单片机是完全集成的混合信号系统及芯片,具有8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还继承了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,执行速度快,但价格较贵。 本次课程设计是在仿真环境下进行,没有太过考虑单片机选择的问题,但就设计本身来讲,从物美价廉的角度考虑,选择方案一较合适。 (四)显示方案的选择 方案一:采用LED数码管。LED数码管是轮流现实的,其利用人烟的视觉暂留特性,使人感觉不到数码管闪动,看到每只数码管都常亮。利用其显示必须不停给数码管数据输入口循环赋值,显示内容较多,编程和接线较为复杂。 方案二:采用LCD1602液晶显示器。LCD1602具有功率小,效果明显,变成容易等优点,且它最多能显示2×16个字符,可以轻松满足设计要求。 由上可知,LCD1602液晶显示器的优点突出,故选择方案二。 (五)软件部分的选择 软件部分的选择主要是指编程语言的选择,编译调试工具根据设计平台选择伟福软件。编程语言主要有以下两种方案。

步进电机驱动控制系统设计(有程序)

目录 一前言 (1) 二总体方案设计 (1) 1工作原理 (1) 2方案选择 (1) 2.1时钟脉冲 (1) 2.2脉冲分配器 (1) 2.3驱动器 (1) 3 总的框架 (2) 三单元模块设计 (2) 1单片机模块 (2) 1.1复位控制 (3) 1.2单片机频率 (3) 2接口 (3) 3驱动器ULN2003 (4) 4按键模块 (5) 5步进电机 (5) 5.1工作原理 (5) 5.2 28BYJ48型四相八拍 (7) 四整机调试与技术指标测量 (8) 五设计总结 (8) 参考文献 (9) 附录1电路原理图 (10) 附录2 源程序 (11)

一、前言 步进电动机是一种将电脉冲信号转换成机械位移的机电执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。 二、总体方案设计 1、工作原理 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 2、方案选择 (1)时钟脉冲 通常有两种方法实现: 方案一直接有硬件组成如:多谐振荡器 LC 等。 方案二用软件的方式形成优点便于随时更改,调整。 为了方便我们选用软件方式有单片机实现。 (2)脉冲分配器 方案一硬件环形分配器:由计数器等数字电路组成的。有较好的响应速度,且具有直观、维护方便等优点。 方案二软件环分:由计算机接口电路和相应的软件组成的。受到微型计算机运算速度的限制,有时难以满足高速实时控制的要求。由软件完成脉冲分配工作,不仅使线路简化,成本下降,而且可根据应用系统的需要,灵活地改变步进电机的控制方案。 考虑到硬件设备的有限和对步进电机的控制我们选择软件环分可以有单片机实现。 (3)驱动器 方案一使用功率场效应管的单电压功放电路。

步进电机驱动器控制信号接口说明

. .. 步进电机驱动器控制信号接口说明 驱动器是把计算机控制系统提供的弱电信号放大为步进电机能够接受的强电流信号,控制系统提供给驱动器的信号主要有以下三路: 1.步进脉冲信号CP:这是最重要的一路信号,因为步进电机驱动器的原理就是要把控制系统发出的脉冲信号转化为步进电机的角位移, 或者说:驱动器每接受一个脉冲信号CP,就驱动步进电机旋转一步距角, CP的频率和步进电机的转速成正比, CP的脉冲个数决定了步进电机旋转的角度。这样,控制系统通过脉冲信号CP就可以达到电机调速和定位的目的。 2.方向电平信号 DIR:此信号决定电机的旋转方向。比如说,此信号为高电平时电机为顺时针旋转,此信号为低电平时电机则为反方 向逆时针旋转。此种换向方式,我们称之为单脉冲方式。另外,还有一种双脉冲换向方式:驱动器接受两路脉冲信号(标注为CW和CCW),当其中一路(如CW)有脉冲信号时,电机正向运行,当另一路(如CCW)有脉冲信号时,电机反向运行。用户使用何种方式,由拨位开关设定。 3.使能信号EN:此信号在不连接时默认为有效状态,这时驱动器正常工作。当此信号回路导通时,驱动器停止工作,这时电机处于无力矩状态(等同于本公司SH系列驱动器的FREE信号),此信号为选用信号。 为了使控制系统和驱动器能够正常的通信,避免相互干扰,我们在驱动器内部采用光耦器件对输入信号进行隔离,三路信号的内部接口电路相同,常用的连接方式为①共阳方式:把CP+、DIR+和EN+接在一起作为共阳端接外部系统的+5V,脉冲信号接入CP-端,方向信号接入DIR-端,使能信号接入EN-端;②共阴方式:把CP-、DIR-和EN-接在一起作为共阴端接外部系统的GND,脉冲信号接入CP+端,方向信号接入DIR+端,使能信号接入EN+端;③差动方式:直接连接。 驱动器输入信号内部接口示意图 如果驱动器输入信号为电压信号,要求:3.6V≤高电平≤5.5V; -5.5V≤低电平≤0.3V,最常用的为TTL电平。 如果驱动器输入信号为电流信号,要求:7mA≤高电流≤18mA; -18mA≤低电流≤0.2mA。 不管是电压信号还是电流信号,最终转化为光耦器件的输入电流以达到信号传输的目的(参考上图),如果电压信号的幅值超出以上要求的范围须在外部另加限流电阻R,保证给驱动器内部光耦提供7-18mA的驱动电流,参见下图和下表。 步进电机的运行是由脉冲信号控制的,步进电机在脉冲信号的有效沿到来的时刻移动一个步距角,本系列驱动器的有效沿是指:脉冲信号电流“由小到大”的时刻,或者说脉冲电平“由低到高”的时刻,或者说是驱动器内部光耦“由截止到打开”的时刻。 脉冲信号的频率要求不大于200KHz; 脉冲信号的宽度要求不小于2μS。 脉冲信号的驱动电流要求为7-18mA 电机换向时,一定要在电机降速停止后再换向。换向信号要求在前一个方向的最后一个脉冲有效沿结束至少5μS以上才能改变换向信号,且不滞后下一个脉冲信号的有效沿。 如果使用双脉冲CW/CCW方式,则要求下一个方向的第一个脉冲(如CCW)在前一个方向的最后一个脉冲(CW)有效沿后至少5μs才能有效。

步进电机程序编写及说明

步进电机 学习交流群——126500542(验证信息:千寻琥珀心) 在这里介绍一下如何用51单片机驱动步进电机。 本例所使用的步进电机为四项驱动,驱动电压为12V,锯齿角(为什么叫锯齿叫而不叫步进角,我也不知道这样解释是否正确,但是根据步进角计算公式所得的结果将7.5理解为锯齿叫会更好些,也在网上搜了不少资料,说是步进角的较多,但都是直接给出的,而未作出计算,不过也有是将其作为锯齿角的,并且结合书上的内容,在此就将此作为锯齿角理解,那何谓步进角,下面公式将给出)为7.5度。(也就是说锯齿之间的单位角度),不进一圈总共需要360度,故有48个锯齿。 在此对电路图部分不再给出,具体引脚连接接下来给出。本例所使用的电机驱动芯片为达林顿驱动器(ULN2003),通过P1.0~P1.3分别接通步进电机的驱动线圈来控制步进电机的运转。注意如果直接使用单片机通过驱动芯片驱动电机,力矩可能不够大,效果不是很好,因为ULN2003的驱动电压为12V,而单片机系统电压为5V,故请读者注意此点,在设计电路时,另施电压。 步进电机要想正常工作,必须有驱动信号,转动的速度与驱动信号的频率是成正比的。(实例中将会给出并予以说明)接下来我们看看对于电机驱动中的信号的产生。 本例中采用的步进电机为四项,三项驱动和四项驱动原理上

是一样的。假设步进电机的四个项为:A、B、C、D。它的拍数可由读者任意设定(即步进节奏)。再继续下面的内容时,我们现在此给出一个计算步进电机的公式:Qs=360/NZr,其中N=McC 为运行的拍数,McC为控制绕组项数,C为状态系数,当采用单双本项拍数时,C=1,当采用单双本项一倍拍数时,C=2。(此处说的本项拍数,如三项为单三拍,双三拍。本项一倍拍数为单六拍,简言之,三拍为1.六拍为2对于四项则四拍为1,8拍为2(说的有些玄乎,手中板砖还望留情)),Zr为转子齿数,先来看看单四拍,即A→B→C→D→A.因为上述已经给出了锯齿数,此例C=1,所以Qs=360/(4*1*48)=1.875°。故此电机的步进角为1.875°(既步与步之间的角度),因为行进是和脉冲有关的,一个脉冲行进一步,那么行进一圈,所需脉冲数为:360/1.875=192个脉冲。同时我们如果控制这些脉冲的频率就可以直接控制步进电机的运转速度了。继续我们的单四拍,运行方向A→B→C→D →A。(假设为正转)则在程序中对应的操作执行码为:(硬件连接时P1口的高四位不用全置1,此处只需用到低四位) P1.3 P1.2 P1.1 P1.0 D C B A (对应4个线圈) 1 1 1 0 0xfe (根据外部链接电路定,也可以是0001,此处采用低电平导通,导通A项线圈) 1 1 0 1 0xfd (导通B项线圈) 1 0 1 1 0xfb (导通C项线圈)

基于51单片机控制步进电机

单片机原理及系统课程设计 1 引言 步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应作用,将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,卫星天线定位系统等等。 随着经济的发展,技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。 步进电机的原始模型起源于1830年至1860年,1870年前后开始以控制为目的的尝试,应用于氩弧灯的电极输送机构中,这被认为最早的步进电机。 1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。到20世纪60年代后期,在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。 在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。

2 设计方案与原理 4.1 设计方案 设计一个51单片机四相步进电机控制系统要求系统具有如下功能: (1)由I/O口产生的时序方波作为电机控制信号; (2)信号经过驱动芯片驱动电机的运转; (3)电机的状态通过键盘控制,包括正转,反转,加速,减速,停止和单步运行。 4.2 设计原理 步进电机实际上是一个数字\角度转换器,也是一个串行的数\模转换器。步进电机的基本控制包括启停控制、转向控制、速度控制、换向控制4个方面。从结构上看,步进电机分为三相、四相、五相等类型,本次设计的是四相电机。四相步进电机的工作方式有单四拍、双四拍和单双八拍三种。 在本次设计中,我们使用的是四相单八拍的工作方式。通过P1口给A,B,C,D四相依次输出高电平即可实现步进电机的旋转,通过控制两次输出的间隔,即可实现对步进电机的速度控制。 图 2.1 步进电机内部结构截图 根据步进电机的相关相序表我们可以正常的控制电机的步进运行。

步进电机工作原理、驱动控制系统与选型

步进电机工作原理、驱动控制系统与选型 一、感应子式步进电机工作原理 (一)反应式步进电机原理 由于反应式步进电机工作原理比较简单。下面先叙述三相反应式步进电机原理。 1、结构: 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图: 2、旋转: 如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。 如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。 如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐。 如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3て。 这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A 相,电机转子向右转过一个齿距,如果不断地按A,B,C,A……通电,

电机就每步(每脉冲)1/3て,向右旋转。如按A,C,B,A……通电,电机就反转。 由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定。 不过,出于对力矩、平稳、噪音及减少角度等方面考虑。往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3て改变为1/6て。甚至于通过二相电流不同的组合,使其1/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。 不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制——这是步进电机旋转的物理条件。只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。 3、力矩: 电机一旦通电,在定转子间将产生磁场(磁通量Ф)当转子与定子错开一定角度产生力 F与(dФ/dθ)成正比 其磁通量Ф=Br*S ;Br为磁密;S为导磁面积; F与L*D*Br成正比;L为铁芯有效长度;D为转子直径;Br=N·I/RN·I为励磁绕阻安匝数(电流乘匝数)R为磁阻。 力矩=力*半径力矩与电机有效体积*安匝数*磁密成正比(只考虑线性状态) 因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。 (二)感应子式步进电机

基于AT89C51单片机的步进电动机控制系统设计

重庆科技大学 本科毕业论文 基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXX X 准考证号: XXXXXXXXXXXX 专业层次:本科院(系):XXXXXXXXXXXXXXXXXXX 指导教师: XXXXXX 职称:讲师 重庆科技大学 二O一二年月日

基于AT89C51单片机的步进电动机控制系统 设计 考生姓名: XXXXXX 准考证号: XXXXXXXXXXXX 专业层次:本科 指导教师: XXXXXXX 院(系):机械与动力工程学院 重庆科技大学 二O一二年九月二十日

摘要 随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。 本设计是采用AT89C51单片机对步进电机的控制,通过I/O口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。 实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能,更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中最常用的执行器件——步进电机。 关键词:步进电机,单片机,正反转控制,键盘控制,LCD液晶显示

基于单片机的步进电机驱动控制

基于单片机的步进电机驱动控制 一、步进电机概述 1.步进电机的定义 步进电机指的是以数字脉冲信号作为电机线或教位移的控制信号,并以数字脉冲频率对电机的转速进行控制的动力控制系统。 在负载正常范围的情况下,步进电机的运行状态只和数字脉冲发生器提供的信号的频率和脉冲占空比有关,一般情况下,电机的状态不受负载的影响。电机的运行角度只和每次所给予的脉冲信号强度有关,而电机的运行速度也只和脉冲信号的频率有直接关 系。这种采用弱点控制强电的控制方式使得步进电机在速度、位移等控制领域有着普通电机不能比拟的优势。 2.驱动控制系统框图 步进电机控制系统有着精确控制、运行稳定的特性,这一其他电机不能比拟的优势使得步进电机得到了广泛的应用。而一般对步进电机控制系统的驱动必须要包含脉冲信 号发生部分,功放部分和驱动控制部分等几个模块电路,我们根据这些通过的模块电路,可将步进电机控制系统的通用框图绘制如下: 在上图的步进电机驱动控制系统方框图中,控制步进电机运行状态的脉冲信号一 般由集成芯片产生,可以是单片机、等智能芯片,也可以是一般的数字电路集成芯片。信号分配环节则要根据步进电机的型号来选择,如四相步进电机有四相四拍和四相 八拍种信号分配的方式;两相步进电机有两相四拍和八拍等脉冲加载形式。功放部分 在驱动环节上显得尤为重要。动态平均电流是步进电机转矩大小的决定因素,前提条件 是电机的速度。电机力矩与平均电流成正比,驱动系统对电机的反电势消弱越多,则平 均电流就越大。 我们一般可以用恒压和恒压串电阻的方法来驱动,或者在条件允许的情况下我们可以用高低压驱动、恒流和细分数等方法来驱动实际的应用过程种,多采用数字集成驱 动芯片作为步进电机的驱动手段。 二、现阶段国内外步进电机驱动的常用方式 1.变频器控制方式 使用变频器对步进电机进行驱动控制时,可以很好的解决步进电机在启动和停止时 容易失步的问题,提高了系统的控制精度。但是变频器的应用成本较高,结构和操作也 比较复杂,无形中提高步进电机的控制难度。 2.PLC控制方式 使用ABB、西门子、欧姆龙等国际知名生产制造商研发的系列产品可以 实现对步进电机的理想化控制,但是基于核心的步进电机控制系统成本高昂,且 难以实现精确控制,在本系统中不太适合。 3.单片机控制方式 随着嵌入式系统在工业控制领域中的广泛应用,以单片机特别是系列单片机 作为控制核心的步进电机控制电路在生产生活领域得到了普及,单片机有着大规模数字

步进电机控制驱动电路设计.

实习名称:电子设计制作与工艺实习 学生姓名:周文生 学号:201216020134 专业班级:T-1201 指导教师:李文圣 完成时间: 2014年6月13日 报告成绩:

步进电机控制驱动电路设计 摘要: 本设计在根据已有模电、物电知识的基础上,用具有置位,清零功能的JK 触发器74LS76作为主要器件来设计环行分配器,来对555定时器产生的脉冲进行分配,通过功率放大电路来对步进电机进行驱动,并且产生的脉冲的频率可以控制,从而来控制步进电机的速度,环形分配器中具有复位的功能,在对于异常情况可以按复位键来重新工作。 关键字:555定时器脉冲源环行分配器功率放大电路 一、方案论证与比较: (一)脉冲源的方案论证及选择: 方案一:采用555定时器产生脉冲,它工作频率易于改变从而可以控制步进电机的速度并且工作可靠,简单易行。 C2 10uF 图一 555定时器产生的方法 方案二:采用晶振电路来实现,晶振的频率较大,不利于电机的工作,易失步,我们可以利用分频的方法使晶振的频率变小,可以使电机工作稳定,但分频电路较复杂,并且晶振起振需要一定的条件,不好实现。

X1 1kohm 1kohm 图二晶振产生脉冲源电路 综上所述,我们采用方案一来设计脉冲源。 (二)环形分配器的设计: 方案一:采用74ls194通过送入不同的初值来进行移位依此产生正确的值使步进电机进行转动。但此方案的操作较复杂,需要每次工作时都要进行置位,正反转的操作较复杂,这里很早的将此方案放弃。 方案二:使用单独的JK 触发器来分别实现单独的功能。 图三双三拍正转 图四单三拍正转

图五三相六拍正转 利用单独的做,电路图较简单,单具体操作时不方便,并且不利于工程设计。块分的较零散,无法统一。 方案三:利用JK触发器的自己运动时序特性设计,利用卡诺图来进行画简。 图六单,双三拍的电路图 单,双三拍的正,反转主要由键s1,s2的四种状态来决定四种情况的选择。

四相步进电机驱动电路及驱动程序设计

四相步进电机驱动电路及驱动程序设计 我们用一个单片机控制多个步进电机指挥跳舞机器人的双肩、双肘和双脚伴着音乐做出各种协调舒缓充满感情的动作,荣获一等奖。电路采用74373锁存,74LS244和ULN2003作电压和电流驱动,单片机(Atc52)作脉冲序列信号发生器。程序设计基于中断服务和总线分时利用方式,实时更新各个电机的速度、方向。整个舞蹈由运动数据所决定的一截截动作无缝连接而成。本文主要介绍一下这个机器人的四相五线制步进电机驱动电路及程序设计. 1、步进电机简介 步进电机根据内部线圈个数不同分为二相制、三相制、四相制等。本文以四相制为例介绍其内部结构。图1为四相五线制步进电机内部结构示意图。

2、四相五线制步进电机的驱动电路 电路主要由单片机工作外围电路、信号锁存和放大电路组成。我们利用了单片机的I/O端口,通过74373锁存,由74LS244驱动,ULN2003对信号进行放大。8个电机共用4bit I/O端口作为数据总线,向电机传送步进脉冲。每个电机分配1bit的I/O端口用作74373锁存信号,锁存步进电机四相脉冲,经ULN2003放大到12V驱动电机运转。 电路原理图(部分)如图2所示。 (1)Intel 8051系列单片机是一种8位的嵌入式控制器,可寻址64K字节,共有32个可编程双向I/O口,分别称为P0~P3。该系列单片机上集成8K的ROM,128字节RAM可供使用。 (2)74LS244为三态控制芯片,目的是使单片机足以驱动ULN2003。

ULN2003是常用的达林顿管阵列,工作电压是12V,可以提供足够的电流以驱动步进电机。关于这些芯片的详细介绍可参见它们各自的数据手册。 (3)74373是电平控制锁存器,它可使多个步进电机共用一组数据总线。我们用P1.0~P1.7作为8个电机的锁存信号输出端,见表1。 这是一种基于总线分时复用的方式,以动态扫描的方式来发送控制信号,这和高级操作系统里的多任务进程调度的思想一致。这种方法明显的好处是节省I/O口,使系统可以控制更多的步进电机。本电路设计为控制8个。 3 、程序设计 传统的步进电机驱动程序利用简单的条件循环来发送脉冲序列,但当电机数目发生变化时,编程繁杂,冗余代码较多,难以做到信号占空比一致,进而产生“抖动” 现象。下面提出一种基于中断服务方式,面向舞蹈动作,可实时改变各个电机速度和方向(每200ms可改变一次)的程序设计方法。 3.1 速度归一化和线性关系 我们将速度量化成一个-128~127内可变的数,正号代表正转,负号代表返转,称之归一化速度(-128~127为一个字节)。给每个电机分

基于51系列单片机控制步进电机调速实验 (自动保存的)

基于51系列单片机控制步进电机调速实验 实验指导书 仇国庆编写 重庆邮电大学自动化学院 自动化专业实验中心 2009年2月

基于51系列单片机控制步进电机调速实验 实验目的及要求: 1、熟悉步进电机的工作原理 2、熟悉51系列单片机的工作原理及调试方法 3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量) 4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。速度设定由键盘设定,步进电机的反馈速度由LED 数码管显示。 实验原理: 步进电机控制原理 一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。由于输入的是脉冲信号,输出的角位移是断续的,所 以又称为脉冲电动机。随着数字控制系统的发展,步进电动机的应用将 逐渐扩大。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来 进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由 脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号 可以由单片机产生。 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几 何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,(相邻 两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐, B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)

51单片机控制四相步进电机解析

51单片机控制四相步进电机 2009年07月21日星期二 12:44 51单片机控制四相步进电机 2009-03-01 18:53 接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下 图所示: 详细内容: https://www.sodocs.net/doc/f08672145.html,/31907887_d.h tml

拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为360/(4×5)=18度。地线与四线接触的顺序相反,电机的转向也相反。 如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四

线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图: C51程序代码为: 代码一 #include static unsigned int count; static unsigned int endcount; void delay(); void main(void)

步进电机 驱动器 控制器三者的关系

电机行业专业求职平台 1.步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况 下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机、交流电机在常规下使用。步进电机必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。它涉及到机械、电机、电子及计算机等许多专业知识。 提及此知识,希望能给予正在对电机选型的客户有所帮助。 2.力矩: 电机一旦通电,在定转子间将产生磁场(磁通量Ф)当转子与定子错开一定角度,则产生力 F与(dФ/dθ)成正比 S 其磁通量Ф=Br*S Br为磁密,S为导磁面积 F与L*D*Br成正比 L为铁芯有效长度,D为转子直径 Br=N·I/R N·I为励磁绕阻安匝数(电流乘匝数)R为磁阻。 力矩=力*半径 力矩与电机有效体积*安匝数*磁密成正比(只考虑线性状态) 因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。 一、混合式步进电机

电机行业专业求职平台1、特点: 混合式(又称感应子式步进电机)与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。 混合式步进电机某种程度上可以看作是低速同步电机。一个四相电机可以作四相运行,也可以作二相运行。(必须采用双极电压驱动),而反应式电机则不能如此。例如:四相,八相运 行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍运行方式.不难发现其条件为C= A ,D=B . 一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相, 而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,更可以作二相电机绕组串联或并联使用。 2、分类 混合式步进电机可分二相、三相、四相、五相等,我公司混合式步进电机以相数可分为:二相电机、三相电机: TEB20H,TEB28H,TEB35H,TEB39H,TEB42H,TEB57H,TEB86H,TEB110 H,TEC57H,TEC86H,TEC110H,TEC130H. 3、步进电机的静态指标术语 相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。 拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A. 步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半 步)。 定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)

步进电机驱动程序(汇编)

附件: ORG 0000H LJMP MAIN ORG 0003H LJMP Speed_Up ORG 0013H LJMP Speed_Down ORG 0100H MAIN: ;打开外部中断IT0/IT1 SETB EA SETB EX0 SETB EX1 SETB IT0 SETB IT1 ;扫描键盘,无键按下显示0,并继续扫描 MAKEY: MOV DPTR,#TAB MOV A,#0 MOVC A,@A+DPTR MOV P0,A MOV P3,#0FFH MOV A,P3 CPL A JZ MAKEY LCALL D10MS JZ MAKEY ;当有键按下时,启动步行电机转动 Speed EQU 20H Num EQU 21H MOV Speed,#60 ;Speed初始化,Speed控制延时的时间,即脉冲的频率 MOV Num,#1 ;Num初始化,Num存放数码管显示的转速数值 JNB ACC.4,TO_TWO ;默认设置为正向转动,转速为1,当有反向键按下,按反向转动 ;------------------------ 1号程序:控制步行电机正转-------------------------------- TO_ONE:

MOV R7,#4 MOV A,#01H MOV P3,#0FFH LP1: MOV P1,A LCALL DELAY LCALL DISPLAY RL A ; 正向输入脉冲信号 DJNZ R7,LP1 JNB P3.4,TO_TWO ; 有反向键按下,跳转到2号程序 LJMP TO_ONE ;------------------------2号程序:控制步行电机反转---------------------------------- TO_TWO: MOV R7,#4 MOV A,#08H MOV P3,#0FFH LP2: MOV P1,A LCALL DELAY LCALL DISPLAY RR A ; 反向输入脉冲信号 DJNZ R7,LP2 JNB P3.5,TO_ONE ;有正向键按下,跳转到1号程序 LJMP TO_TWO ;----------------------------中断服务程序----------------------------------------------- Speed_Up: ; 外部中断IT0,控制加速 PUSH ACC LCALL D10MS MOV A,Speed CJNE A,#12,L1 ; 最大速度时,速度不再增加 LJMP L2 L1: ; 速度加1(减小脉冲周期) SUBB A,#12 MOV Speed,A INC Num L2: POP ACC RETI Speed_Down: ;外部中断IT1,控制减速 PUSH ACC

相关主题