1. 用单片机对步进电机进行控制
呵呵 兄弟可以参考某些部分 呵呵
自己做的课程设计 还没有做完 完了发给你参考参考
题 目:单片机控制步进电机系统
摘 要
很多工业控制设备对位移和角度的控制精度要求较高, 一般电机很难实现, 而步进电机可精确实现所设定的角度和转数。本设计主要是运用51 单片机控制六线4 相步进电机系统, 由单片机产生驱动脉冲信号, 控制步进电机以一定的转速向某一方向产生一定的转动角度。同时能够利用单片机实现电机的正、反转及速度控制,并能在数码管上显示出相应的速度。
本文中给出了该系统设计的硬件电路,软件设计,人机交互等。并对各个功能模块进行了详细的说明。主要内容包括以下几个方面:
单片机控制步进电机的一般原理。
电机驱动及控制的实现。
控制系统整体设计以及模块划分说明。
原理图。
代码。
关键词:单片机;步进电机;系统;驱动
Abstract
Many Instrial control equipment have a highly requirement in displacement and angle with control accuracy, the most motor can't carry out .but the step motor can carry out the displacement and angle that you enactmented in accuracy. This design mainly used SCM to control step motor system.The step motor is formed six lines and four phasic.Through SCM generate the drive pulse signal.Control stepper motor through a certain speed in a direction to get a certain degree of rotation angle.
At the same time, It can use SCM to realization of the motor is , reverse and speed control. and showed the speed in the digital tube.
In this paper, given the design of the system hardware circuit,software design, human-computer interaction and so on.and it given the details description of each functional mole.the main contents include the following:
(1) The general principles of signal_chip controlling step motor.
(2) The realization of motor driving and controlling
(3) Control system overall design and description mole division
(4) Schematic Diagram
(5) Code
Key Words:SCM; stepper motor; system; drive
目录
引言 4
1 单片机控制步进电机的一般原理 4
1.1 步进电机 4
1.1.1 步进电机介绍 4
1.1.2 步进电机分类 5
1.1.3 技术指标 5
1.1.4 步进电机工作原理 5
1.2 单片机 7
2 步进电机驱动实现 8
2.1简介 8
2.2驱动选择 8
3 系统硬件设计 9
3. 1 单片机控制电机 9
3.2 键盘 9
3.3 显示部分 10
程序流程图 11
总结 12
致 谢 13
参考文献 13
附录 13
C代码 13
引言
目前,在工业控制生产以及仪器上应用十分广泛。通常都要对一些机械部件平移和转动,对移动的位移和角度控制要求较高,一般的电机很难实现对位置和角度的精确控制,在一些智能化要求较高的场合,用模拟芯片控制器及信号发生器来控制有一定局限性。而用单片机控制步进电机可以改善性能,步进电机能实现精确的角度和转数,具有良好的步进特性,最适合数字控制。在工控设备中得到了广泛的应用。而单片机具有芯片体积小,兼容性强,低电压地,低功耗等特点,使单片机成为驱动步进电机的最佳空盒子单元。所以单片机控制步进电机系统控制精度高,运行稳定,得以广泛运用。
1 单片机控制步进电机的一般原理
1.1 步进电机
1.1.1 步进电机介绍
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机、交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
1.1.2 步进电机分类
永磁式(PM)。一般为二相,转矩和体积都很小,步距角一般为7.5或15°
反应式(VR)。一般为三相,实现大转矩输出,步距角为1.5°。
混合式(HB)。兼具永磁式和反应式的优点,分二相和五相,二相步距角为1.8°五相步距角为0.72°。
1.1.3 技术指标
静态指标
相数
步距角
拍数
定位转矩
保持转矩
步进电机动态指标
步距角精度
失步
失调角
最大空载启动频率
最大空载运行频率
运行频距特性
电机共振点
1.1.4 步进电机工作原理
分析(步进电机展开图)
以反应式步进电机为例,其典型结构图如图1所示。这是一个四相步进电机,当相控制绕组接通脉冲电流时,在磁拉力作用下使相的定、转子对齐,相邻的B 相和D 相的定、转子小齿错开。若换成B 相通电,则磁拉力使B 相定、转子小齿对齐(转过) ,而与B 相相邻的C 相和A 相的定、转子小齿又错开,即步进电机转过一个步距角。若按A →B →C →D →A ⋯规律循环顺序通电,则步进电机按一定方向转动。若改变通电顺序为A →D →C →B →A ,则电机反向转动。这种控制方式称为四相单四拍。若按AB →BC →CD →DA →AB或A →AB →B →BC →C →CD →D →DA →A 顺序通电则称为四相双拍或四相单、双八拍。无论采用哪种控制方式,在一个通电循环内,步进电机的转角恒为一个齿距角。所以,可以通过改步进电机通电循环次序来改变转动方向,可以通过改变通电频率来改变其角频率。运用单片机的输出功能,通过编程实现输出四个信号分别给步进电机的四相A、B、C、D ,并通过输出时信号的循环次序,来设定步进电机的转动方向及输出信号的频率以便设定步进电机的转动频率。
图1 反应式步进电机结构图
实现原理
采用单片机产生A、B、C、D 的四相信号,当采用单片机进行控制时,需要在单片机和步进电机中间设隔离电路以使强弱电分离。由于步进电机的驱动电流相对较大,可增设放大电路来提供步进电机的工作电流。系统电路由五部分组成,即单片机、隔离、放大、电源及步进电机。
1.2 单片机
功能特性描述
AT89S52是一种低功耗、高性能CMOS8位微控制器,
具有8K 在系统可编程Flash 存储器。使用Atmel 公
司高密度非易失性存储器技术制造,与工业80C51
产品指令和引脚完全兼容。片上Flash允许程序存储
器在系统可编程,亦适于常规编程器。在单芯片上,
拥有灵巧的8 位CPU 和在系统可编程Flash,使得
AT89S52为众多嵌入式控制应用系统提供高灵活、超
有效的解决方案。AT89S52具有以下标准功能:8k字
节Flash,256字节RAM,32 位I/O 口线,看门狗定时
器,2 个数据指针,三个16 位定时器/计数器,一个6
向量2级中断结构,全双工串行口,片内晶振及时钟电
路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持
2种软件可选择节电模式。空闲模式下,CPU停止工作,
允许RAM、定时器/计数器、串口、中断继续工作。掉
电保护方式下,RAM内容被保存,振荡器被冻结,单
片机一切工作停止,直到下一个中断或硬件复位为止。
2 步进电机驱动实现
2.1简介
步进电机在单单仅给予电压时,电机是不会动作的,必须由脉冲产生器提供位置(脉波数)、速度的脉冲信号指令,以及驱动器驱动电流流过电机内部线圈、依顺序切换激磁相序的方式才能够让电机运 转。所以欲使步进电机动作的必要系统组成有:
(1)脉冲产生器:给予角度(位置移动量)、动作速度及运转方向之脉冲信号的电机驱动指令。
(2)步进驱动器:依控制器所投入的脉冲信号指令,提供电流来驱动步进电机动作。
(3)步进电机:提供转矩动力输出来带动负载。所以步进电机系统构成简单,不需要速度感应器、位置传感器, 即能依照脉冲产生器所输入的脉冲来做到速度及位置的控制。
2.2驱动选择
步进电机可以选用专用的电机驱动模块,也可以自己构建驱动电路。一般有以下几种选择:
专用驱动模块,如L298,FT5754等,这类驱动接口简单,这类可以驱动步进电机,直流电机等。
达林顿驱动器ULN2803,这个芯片可以一次驱动八线步进电机。
自己构建,通过三极管,74als04,等系列元件构成。但这样系统可靠性会降低,会另外给系统带来误差。
3 系统硬件设计
1 单片机控制电机
如图3
说明:
这个部分为单片机控制步进电机部分,80s52单片机通过达林顿驱动器ULN2803来驱动步进电机,80s52的P1.0-P1.4发送控制信号给驱动器,然后驱动器的四根线把信号传递给电机,使电机实现正反转等。电机部分接12V直流电源。
3.2 键盘
如图4
说明:
本系统中采用了四个按键,分别与80s52的四个引脚相连,分别为LCDEN,RS,WR,RD;分别实现的功能是电机加速,减速,正反转。键盘一旦按下则表示向单片机发送了有效信号,单片机就相应的进行调节。对于键盘的键按下的时候分为几个步骤,当键盘按下的时候,接通电路,键盘扫描检测低电平,但检测到低电平之后不能够判断键是否被按下,因为抖动可能引起这个变化,所有大概延时5~10ms之后再进行检测。如果再次检测到低电平之后说明键被按下。这个过程就是所说的消除抖动。
3.3 显示部分
如图5
说明:
对于显示部分,因为这个系统只是显示转速,所以采用了LED共阳极数码管。
并且用了74HC573锁存器,74HC573锁存器输出电流大,接口电路简单。本系统采用了两个74HC573锁存器,分别为段选和位选。段选为数码管的显示数字,位选为选中相应的数码管。
程序流程图
总结
通过本次的课程论文,让我真实的感受到一个完整的系统设计过程。这次的的论文从开始的整体布局,排版,到内容中的系统设计直到最后完成。每个流程下来,都带给了我很多的新东西,特别在设计完系统之后做硬件部分中,先是用protel99se画图,好多图在库中找不到,找不到就自己画,然后封装,封装的时候还要用游标卡纸对买来的元件进行精确的测量,然后才能在封装的过程中保证精度。最后做完图之后还要布线,布线完成后再发到厂家去做。事实上这个过程我用买好的空板做的,因为元件不多。所以就买了相应的元件直接再PCB板上焊接好的。在焊接的过程中也会感受到很多东西,因为很多需要注意的。不过这个过程多多尝试就会有进步的。焊接完后就是代码调试阶段。最后就完成了这个小型系统的设计。
致 谢
在此,感谢我的老师以及周围的同学。本次的论文得益于同学们的帮助。最后还要感谢我的父母,是他们一直在背后支持着我。
谨以此文献给他们!
参考文献
[1] 张永枫,王静霞,杨宏利. 单片机应用实训教程. 西安电子科技大学出版社,2005.
[2] 郭天祥. 51单片机C语言教程. 电子工业出版社 2008
附录
C代码
单片机控制步进电机
实现功能:
定时器中断:定时时间设置为30秒,首先给的初值每次中断为5ms,经过20次中断为1秒,半分钟三十秒则要中断600次,所有到达六百次后就把计数n中的值读取到数码管中显示出来。
键盘检测:进行速度控制的时候按下相应的键则会对应的进行速度调节。
数码管显示:
驱动部分:
#include <reg52.h>
#define uchar unsigned char
sbit la=P2^6;
sbit wela=P2^7;
sbit jia_key=P3^6;
sbit jian_key=P3^7;
sbit zf_key=P3^5;
sbit stop_key=P3^4;
bit flag=0;
uchar num1,n;
uchar num=0,show_num=2,maichong=4,table_begin=0;
uchar code table1[]={0x01,0x02,0x04,0x08,0x08,0x02,0x01};
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
// 延时部分
void delay(uchar i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
// 显示部分
void display()
{
la=0;
P0=table[show_num];
la=1;
la=0;
wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);
P0=table[0];
la=1;
la=0;
P0=0xfd;
wela=1;
wela=0;
delay(5);
}
// 键盘检测部分
void key()
{
if(jia_key==0)
{
delay(5);
if(jia_key==0)
{
num++;
if(num==4)
num=3;
while(jia_key==0)
}
}
if(jian_key==0)
{
delay(5);
if(jian_key==0)
{
if(num!=0)
num--;
else
num==0;
while(jian_key==0);
}
}
if(zf_key==0)
{
delay(5);
if(zf_key==0)
{
flag=~flag;
while(zf_key==0);
}
}
if(stop_key==0)
{
delay(4);
if(stop_key==0)
{
show_num=0;
maichong=0;
}
while(stop_key==0)
}
}
// 键盘检测结果
void dispose()
{
switch(num)
{
case 0:
maichong=5;
break;
case 1:
maichong=4;
break;
case 2:
maichong=3;
break;
case 3:
maichong=2;
break;
}
if(flag==0)
{
table_begin=0;
}
else
table_begin=4;
}
// 数码管驱动部分
void qudong()
{
uchar i,j;
for(j=0+table_begin;j<4+table_begin;j++)
{
P1=table[j];
for(i=0;i<maichong;i++)
{
dispaly();
}
}
}
// 主函数部分
void main()
{
while(1)
{ init();
key();
dispose();
qudong();
n++;
}
}
// 定时器中断初始化
void init()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1; // 开总中断
ET0=1;// 开定时器0中断
TR0=1;// 启动定时器0
}
// 定时器中断调用
void T0_time() intterrupt 1 // T0中断
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
num1++;
if(num1==600)
{
show_num=n;
num1=0;
n=0;
}
}
2. 单片机步进电机控制器
步进电机采用二相四拍步进电机,采用89s51 或STc 系列作为控制芯片
系统具有下列功能:A采用闭环控制B可进行位移设定,前进至终点后延时1s返回值原点停止C可进行实际位移值设定D可手动控制正反转。
步进电机控制器是一种能够发出均匀脉冲信号的电子产品,它发出的信号进入步进电机驱动器后,会由驱动器转换成步进电机所需要的强电流信号,带动步进电机运转。步进电机控制器能够准确的控制步进电机转过每一个角度。
驱动器所接收的是脉冲信号,每收到一个脉冲,制动器会给电机一个脉冲使电机转过一个固定的角度,就因为这个特点,步进电机才会被广泛的应用到现在的各个行业里。
驱动电路
在步进电机的应用中,最需要考虑的重要事项之一就是设计匹配的驱动电路。步进电机的动态性能非常地依赖驱动电路。图1显示了步进电机驱动系统的结构图。驱动步进电机需要开关电流从一个定子绕组到另一个。这种开关功能被驱动电路提供,驱动电路排列,分配和放大来自信号电路的脉冲序列。步进电机的绕组以指定的次序被激励。
集成电路的实用性已经使得对于额定电流小于3安培的小型步进电机使用分立元件构造驱动电路是不必要的。例如,SGS L7180与L7182对于单极性驱动,和L293与L298对于双极性驱动,能够很容易地使用在紧密的控制器里。
应用设置
1.设置步进驱动器的细分数,通常细分数越高,控制分辨率越高。但细分数太高则影响到最大进给速度。一般来说,对于模具机用户可考虑脉冲当量为0.001mm/P(此时最大进给速度为9600mm/min)或者0.0005mm/P(此时最大进给速度为4800mm/min);对于精度要求不高的用户,脉冲当量可设置的大一些,如0.002mm/P(此时最大进给速度为19200mm/min)或0.005mm/P(此时最大进给速度为48000mm/min)。对于两相步进电机,脉冲当量计算方法如下:脉冲当量=丝杠螺距÷细分数÷200。
2.起跳速度:该参数对应步进电机的起跳频率。所谓起跳频率是步进电机不经过加速,能够直接启动工作的最高频率。合理地选取该参数能够提高加工效率,并且能避开步进电机运动特性不好的低速段;但是如果该参数选取大了,就会造成闷车,所以一定要留有余量。在电机的出厂参数中,一般包含起跳频率参数。但是在机床装配好后,该值可能发生变化,一般要下降,特别是在做带负载运动时。所以,该设定参数最好是在参考电机出厂参数后,再实际测量决定。
3.单轴加速度:用以描述单个进给轴的加减速能力,单位是毫米/秒平方。这个指标由机床的物理特性决定,如运动部分的质量、进给电机的扭矩、阻力、切削负载等。这个值越大,在运动过程中花在加减速过程中的时间越小,效率越高。通常,对于步进电机,该值在100 ~ 500之间,对于伺服电机系统,可以设置在400 ~ 1200之间。在设置过程中,开始设置小一点,运行一段时间,重复做各种典型运动,注意观察,如果没有异常情况,然后逐步增加。如果发现异常情况,则降低该值,并留50%~100%的保险余量。
4.弯道加速度:用以描述多个进给轴联动时的加减速能力,单位是毫米/秒平方。它决定了机床在做圆弧运动时的最高速度。这个值越大,机床在做圆弧运动时的最大允许速度越大。通常,对于步进电机系统组成的机床,该值在400~1000之间,对于伺服电机系统,可以设置在1000 ~ 5000之间。如果是重型机床,该值要小一些。在设置过程中,开始设置小一点,运行一段时间,重复做各种典型联动运动,注意观察,如果没有异常情况,然后逐步增加。如果发现异常情况,则降低该值,并留50%~100%的保险余量。
通常考虑到步进电机的驱动能力、机械装配的摩擦、机械部件的承受能力,可以在厂商参数中修改各个轴的最大速度,对机床用户实际使用时的三个轴最大速度予以限制,。
5.根据三个轴零点传感器的安装位置,设置厂商参数中的回机械原点参数。当设置正确后,可运行“操作”菜单中的“回机械原点”。先单轴回,如果运动方向正确则继续回,否则需停止,重新设置设置厂商参数中的回机械原点方向,直至所有轴都可回机械原点。
6.设置自动加油参数(设置得小一些,如5秒加一次油),观察自动加油是否正确,如果正确,则将自动加油参数设置到实际需要的参数。
7.校验电子齿轮和脉冲当量的设定值是否匹配。可以在机床的任意一根轴上做个标记,在软件中把该点坐标设为工作零点,用直接输入指令、点动或手轮等工作方式使该轴走固定距离,用游标卡尺测量实际距离与软件中坐标显示距离是否相附。
8.测定有无丢脉冲。您可以用直观的方法:用一把尖刀在工件毛坯上点一个点,把该点设为工作原点,抬高Z轴,然后把Z轴坐标设为0;反复使机床运动,比如空刀跑一个典型的加工程序(最好包含三轴联动),可在加工中暂停或停止,然后回工件原点,缓慢下降Z轴,看刀尖与毛坯上的点是否吻合。如有偏差,请检查步进驱动器接收脉冲信号的类型,检查端子板与驱动器间接线是否有误。如果还出现闷车或丢步,按10、11、12步调整加速度等参数。
3. 51单片机控制步进电机正反转原理
单片机控制步进电机正反转原理,五一单片机的控制步进电机的正反转是是根据你的需要空控制
4. 步进电机的单片机控制
步进电机的单片机控制
通过IO口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片L298N驱动步进电机;同时,用 4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为4位单个数码管的显示驱动,从单片机输入信号;
采通过IO口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片L298N驱动步进电机;同时,用 4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为4位单个数码管的显示驱动
1、对步进电机的控制和驱动,设计中受控电机为四相六线制的步进电机(内阻33欧,步进1.8度,额定电压12V)
使用L298N芯片驱动电机
L298N芯片可以驱动两个二相电机(如图1-1),也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。 而使用L298N时,可以用L297来提供时序信号,可以节省单片机IO口的使用;也可以直接用单片机模拟出时序信号,由于控制并不复杂,故选用后者。
2、 数码管显示电路的设计
串行接法
设计中要显示4位数字,用74LS164作为显示驱动,其中带锁存,使用串行接法可以节约IO口资源,但要使用SIO,发送数据时容易控制。
二、步进电机控制原理
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。
步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:
(1)控制换相顺序
通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。
(2)控制步进电机的转向
如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。
(3)控制步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。
三、理论设计
1、步进电机驱动电路
通过L298N构成步进电机的驱动电路,电路图如图3-2所示。
通过单片机的IOB8~IOB13对L298N的IN1~IN4口和ENA、ENB口发送方波脉冲信号,2、数码管显示电路的设计
数码管的显示驱动使用74LS164,通过的IOB0和IOB1口对DATA和CLK发送数据。
3、4x4键盘电路
使用了标准的4x4键盘,单片机的A口低8位为键盘的接口。尽管设计要求中只需要4个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,我们使用了4x4的键盘。
5. 单片机控制步进电动机的运动的原理及单片机程序
51单片步进电机控制原理与控制设计程序
51单片步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称vr)、永磁式步进电机(简称pm)和混合式步进电机(简称hb)。
51单片步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。
51单片步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:
(1)控制换相顺序
通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为a-b-c-d,通电控制脉冲必须严格按照这一顺序分别控制a,b,c,d相的通断。
(2)控制步51单片进电机的转向
如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。
(3)控制51单片步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
6. 用8051单片机设计步进电机控制器的原理和实现方法
本设计采用ATMEL公司DIP-40封装的AT89S52单片机实现对四相步进电机的手动和遥控控制。由单片机产生的脉冲信号经过脉冲分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。转速的调节和状态的改变由按键进行选择。通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。电机转动的不同状态由LED数码管显示。红外信号的发射由另一块单片机和红外线LED完成,用红外万能接收头接收红外信号,可以实现对电机的控制进行红外遥控。 关键字:四相步进电机 单片机 功率放大 红外遥控 目 录 前言 3 1.系统设计 3 1.1 功能介绍 3 1.2总体设计方案 3 1.2.1总体设计思路 3 1.2.2方案论证与比较 3 1.3电机的参数 7 1.4系统组成 7 2.单元电路设计 8 2.1功率放大驱动电路方案设计 8 2.2显示电路方案设计 9 2.3单片机电源电路设计 9 2.4红外发射电路设计 10 3.软件设计 10 3.1编程语言 10 3.2软件实现方法 10 3.2.1 双四拍正转 11 3.2.2 双四拍反转 11 3.2.3 单双八拍正转 11 3.2.4 单双B八拍反转 11 3.3 程序流程图 如下所示: 12 3.4 三相步进电机程序清单 16 4.结束语 16 http://www.wendang.com/soft/16025.htm 转: http://..com/question/58821794.html?fr=qrl 很有参考价值
7. 基于单片机的步进电机控制,有高手懂吗本人的毕业论文.学哥学姐.懂的都说几句..谢谢啦..
为1,TH1的预设值为0CH,TL1的预设值为00H。
③ PC机与AT89C51单片机均采用串行口方式3。
④ 帧格式为:1位起始位,8位数据位,1位偶效验位,1位停
止位。
⑤ PC机发送的数据帧为:
表1 PC机发送数据帧表
帧起始标志为 02H,假设电动机的运行标号为5号,对应的
ASCII码值为30H,35H两个字节表示。若命令为传送命令MOV
则用0表示,其对应的ASCII码值为30H,用一个字节表示。D
表示步进电动机运行的方向标志,若为0则表示电动机正转,其
对应的ASCII码值为30H;若为1,则表示电动机反转,其对应的
ASCII码值为31H。P表示PC机传送给单片机的总的走的脉冲
数。若传送的命令为设置命令SET则用1表示,其对应的ASCII
码值为31H,用一个字节表示。需要单片机设置的参数有:a, V
和 L;为了便于PC机与AT89C51的通信编程,数据的长度取6
个字节。传送的数据只有5个字节,剩余的1个字节均用ASCII
码值30H补足,对应的为0。这样做不影响效验和。若为传送命
令帧,则效验和定义为方向信号D与总的脉冲数P的十六进制之
和再转换为相对应的ASCII码值。若为设置命令帧,则效验和定
义为a、V与L的十六进制之和再转换为D对应的ASCII码值。
帧结束标志为03H。
⑥ PC机采用查询的方式发送和接收数据,AT89C51单片机
采用串行口中断的方式接收和发送数据。
3.3 控制软件的设计
控制步进电动机匀加速、恒速、匀减速运行的程序流
程图如图2。
图2 控制步进电机的程序流程图
4 结束语
参考文献:
[1] 韩全立。单片机控制技术及应用[M]。北京:电子工业出
采用本方案可以很好的实现对步进电动机的控制。目前此
版社,2004
方案已经成功应用于电机控制的工厂等并取得了良好的效益,并
[2] 求是科技。单片机典型模块设计实例导航[M]。北京:人
正试图将其进一步完善以应用于压缩机、洗衣机等日常设备中。
民邮电出版社,2004
[3] 胡汉才,单片机原理及系统设计[M]。北京:清华大学出
当然,随着控制产品与控制技术的发展,步进电机的控制也会得到
版社,2002
进一步完善。
[4] 王晓明。电动机的单片机控制[M]。北京:北京航天航空
大学出版社,2002
[5] 杨金岩,郑应强,张振仁。8051单片机数据传输接口扩展
技术与应用实例[M]。北京:人民邮电出版社,2005
8. 如何使用单片机精确控制步进电机
如何用单片机控制步进电机
步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
一、步进电机常识
常见的步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度。这种步进电机的应用最为广泛。
二、永磁式步进电机的控制
下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。要使用步进电机转动,只要轮流给各引出端通电即可。将COM端标识为C,只要AC、C、BC、C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、B、轮流接地。列出了该电机的一些典型参数:表135BY48S03型步机电机参数型号步距角相数电压电流电阻最大静转距定位转距转动惯量35BY48S03 7.5 4 12 0.26 47 180 65 2.5 有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,因此用一块开路输出达林顿驱动器(ULN2003)来作为驱动,通过P1.4~P1.7来控制各线圈的接通与切断。开机时,P1.4~P1.7均为高电平,依次将P1.4~P1.7切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。如果要改变电机的转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接通的顺序。