步进电机调速系统硬件
- 格式:doc
- 大小:533.20 KB
- 文档页数:13
根据下述资料完成对硬件仿真的实现
要求1:必须用proteus和keil联机实现仿真
要求2:必须按照protel电路图用proteus做出电路图
要求3:交给我的三样东西
a.系统原理电路图1份。
b.电路仿真运行数据1份 C.汇编语言一份
步进电机调速系统硬件设计
4.1 四相步进电机工作原理
本设计所采用的是国产20BY-0型步进电机,它使用+5V直流电源,步距角为18度。电机线圈由四相组成,即A、B、C、D四相,驱动方式为二相激磁方式,电机示意图和各线圈通电顺序如图4.1和表4.1所示:
图4.1 步进电机原理图
表4.1
相顺序 A B C D
0 1 1 0 0
1 0 1 1 0
2 0 0 1 1
3 1 0 0 1
相顺序从0到1称为一步,电机轴将转过18度,0→1→2→3→4则称为通电一周,转轴将转过72度,若循环进行这种通电一周的操作,电机便连续的转动起来,而进行相反的通电顺序如4→3→2→1将使电机同速反转。通电一周的周期越短,即驱动频率越高,则电机转速越快,但步进电机的转速也不可能太快,因为它每走一步需要一定的时间,若信号频率过高,可能导致电机失步,甚至只在原步颤动。
4.2 硬件设计方案
本设计采用51单片机AT89C51(晶振频率为12MHZ)对该四相六线制步进电机(内阻33欧,步进1.8度,额定电压12V)进行控制。通过I/O口输出的具有时序的方波作为步进电机的控制信号,信号经过特定芯片驱动步进电机。本文选用ULN2003构成步进电机的驱动电路,下面但见介绍下ULN2003的结构和特点:
ULN2003 是高耐压、大电流达林顿陈列,由七个硅NPN 达林顿管组成。
该电路的特点如下:
ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。
ULN2003 采用DIP—16 或SOP—16 塑料封装。
ULN2003方框图如图4.2所示。
4.2 ULN2003内部方框图
利用ULN2003以及AT89C51设计的步进电机驱动电路如图4.3所示。
图4.3 ULN2003和AT89C51构成的驱动电路
51的25-28口接ULN2003的1-4输入端。另外,用键盘来对电机的状态进行控制。
在上述设计的基础上 ,可以用数码管显示电机的转速,采用AT89C51的P1口和P2口作为2位单个数码管的显示驱动。其电路图如图4.4所示。通过图4.2所示的AT89C51
的内部变成发送数据。
图4.4 显示电路图
其中两个数码管是共阴的。R3和R4是用来保护数码管,以免烧坏数码管。
将图4.3和图4.4连接起来,使之实现:按下启动键S1,电机旋转,按一下加1键S2,速度增加1转/分,按一下减1键S3,速度降低1转/分。本设计设置了速度范围,其速度最低和最高分别为:9转/分,75转/分,按下停止键S4,电机停转。速度值在数码管上显示出来。
综合以上设计的控制电路方案,总设计方案框图如4.5所示。
图4.5 步进电机控制电路设计框图
单
片 机
ULN2003
键盘
步进电机
数码管
5 步进电机调速系统的软件设计
5.1 软件设计思路
控制系统分2个功能模块,分别是转速设置、数码管显示速度。 5.1.1 转速设置
根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。
本设计中采用了12Mhz 的晶振,一个机器周期是1us 。其计算方法:
s s μ110110
12126
6
=⨯=⨯ (5.1)
上式计算出了一个机器周期。分子上的12是12个节拍,分母是晶振频率。所以单片机内部时钟频率为f=106hz ,设计数初值为n ,要求转速为15转/分(0.25转/秒),对四相步进电机而言即为5步/秒,则有:
5=n
f
(5.2)
5
6
1025
105⨯===f n
(5.3)
反过来,当计数器初值确定时,决定了电机的转速,如计数初值为0时,有电机转速为3步每秒(本设计中最慢速度);当计数初值为40000时,电机转速为1.25步每秒(本设计中最快速度)。具体设置初值及转速见表5.2。
表5.2 转速设置表
步速 转速(转/秒) 计数初值 3 0.15 333333 5 0.25 200000 15
0.75
66667
25 1.25 40000
5.1.2 数码管显示
因为本设计中采用的数码管是共阴的,所以当AT89C51的对应管脚发送的是高电平信号,数码管中对应的LED就亮起来。
本设计中的相应速度档次不涉及小数点,故数码管的dp位无论在何时均为低电平。数码管的各个数字显示二进制代码如表5.3所示:
表5.3 数码管的显示原理
数字要亮的LED 相应P0/P1输出的二进制及16进制
0 abcdef 11111100、FCH
1 bc 01100000、60H
2 abdeg 11011010、DAH
3 abcdg 11110010、F2H
4 bcfg 01100110、66H
5 acdfg 10110110、B6H
6 acdefg 10111110、BEH
7 abc 11100000、E0H
8 abcdefg 11111110、FEH
9 abcdfg 11110110、F6H
只要将当前的转速在对应的时刻送到P0及P1即可,其中P1存储的是个位的数字,而P0存储十位的数字。