基于单片机的步进电机运动控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2 设计实现
2.1 主要元器件介绍
2.1.1 三相六线步进电机的介绍
设 A 相首先通电,转子齿与定子 A、A′对齐(图 3.a)。然后在 A 相继续通电的情 况下接通 B 相。这时定子 B、B′极对转子齿 2、4 产生磁拉力,使转子顺时针方向转动, 但是 A、A′极继续拉住齿 1、3,因此,转子将转到两个磁拉力平衡为止。这时转子的 位置如图(3.b)所示,即转子从图(a)位置顺时针转过了 15°。接着 A 相断电,B 相继续 通电。这时转子齿 2、4 和定子 B、B′极对齐(图 3.c),转子从图(3.b)的位置又转过
3
了 15°。其位置如图 3d 所示。这样,如果按 A→A、B→B→B、C→C→C、A→A„的顺序 轮流通电,则转子便顺时针方向一步一步地转动,步距角 15°。电流换接六次,磁场旋 转一周,转子前进了一个齿距角。如果按 A→A、C→C→C、B→B→B、A→A„的顺序通电, 则电机转子逆时针方向转动。
2.1.1 三相六拍步进电机的介绍 ...................................... 3 2.1.2 AT89C51 单片机芯片介绍 ....................................... 4 2.1.3 ULN2003 芯片介绍 ............................................. 5 2.1.4 LED 七段数码管介绍 ........................................... 6
(3)显示模块采用 LED 七段共阴数码管进行动态显示。AT89C51 单片机输出的脉冲 序列经过上拉电阻驱动数码管显示。采用数码管动态显示方式,硬件电路简单、编程简 便、显示信息清晰、器件价格低廉,但占用单片机 I/O 口较多。
(4)按键控制采用独立式按键。总共设置了 15 个按键,其中四个按键分别执行对 步进电机的启动/停止、正转/反转、加速、减速四种控制功能。四个按键不可同时按下, 当其中一个按下时控制电机的某一种状态。按键 0~9 完成预置步进电机所转圈数的功 能,剩余一个按键实现清零的功能。采用独立式按键,中断工作方式。该方案原理易懂, 程序简单,但占用I/O口线较多,软件较容易,硬件电路较繁琐。
2.2 步进电机控制及驱动系统电路设计实现 ...................... 6
2.2.1 硬件设计 .................................................... 6 2.2.2 软件设计 .................................................... 9
(1)控制模块采用 AT89C51 单片机作为系统控制的核心。利用单片机编程产生步 进电机所需脉冲序列和方向控制信号。单片机算术运算功能强、软件编程灵活、自由度
2
大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本 低,且可对其进行扩展,附带显示设备,键盘输入等设备,使用方便。还可通过软件编 程实现对步进电机的位置、速度预设及显示。步进电机位置和速度实际上跟单片机产生 脉冲的个数和脉冲频率是一一对应关系,而方向由导电顺序决定。并且,由于单片机芯 片引脚少,软硬件连接简便灵活,硬件容易实现。
7
图 9 显示模块硬件电路图 (4)按键控制采用独立式按键,中断工作方式。总共设置了 15 个按键,如图 10 所 示,其中四个控制按键分别执行对步进电机的启动/停止、正转/反转、加速、减速四种 控制功能,由单片机的 P3.4~P3.7 口输入。四个按键不可同时按下,当其中一个按下 时控制电机的某一种状态。按键 0~9 完成预置步进电机所转圈数的功能,剩余一个按 键实现清零的功能,由单片机的 P1 口输入。采用独立式按键,原理易懂,软件编序简 单。
目录 1 设计原理及方案..................................................... 1
1.1 设计原理............................................ 1 1.2 设计方案............................................ 1
图 4 MCS-51 系列单片机管脚图 2.1.3 ULN2003 芯片介绍
ULN2003 是高耐压、大电流、内部由七个硅 NPN 达林顿管组成的驱动芯片,如图 3.5 所示。经常在以下电路中使用,作为:显示驱动、继电器驱动、照明灯驱动、电磁 阀驱动、伺服电机、步进电机驱动等电路中。
图 5 ULN2003 芯片图
3 电路调试 ........................................................... 10 3.1 软件的仿真 ................................................... 10
4 总结 ................................................................ 11 参考文献 .............................................................. 12
(2)驱动模块直接采用 ULN2003 芯片进行功率放大。它的内部结构是达林顿的, 专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。 ULN2003 的输出端允许通过 IC 电流 200mA,饱和压降 VCE 约 1V 左右,耐压 BVCEO 约 为 36V。输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大, 故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动步进电机。 ULN2003 芯片自身功耗小、 驱动能力强、可靠稳定、体积小、使用方便、价格不高、 50V/0.5A 以下的电路均可使用。
(2)驱动模块直接采用 ULN2003 芯片,如图 8 所示。由单片机产生的脉冲序列和 方向控制信号从 P3.0~P3.3 口输出,直接送入 ULN2003 芯片进行功率放大,达到步进 电机所需的驱动电流和电压,以此驱动步进电机工作。
图 8 驱动模块硬件电路图 (3)显示模块采用六位 LED 七段共阴数码管进行动态显示,如图 9 所示。由 AT89C51 单片机产生的段选信号从 P0 输出,经过 1K 左右的上拉排阻驱动数码管显示,位选信号 从 P2 口输出直接送数码管显示。采用数码管动态显示方式,硬件电路简单、编程简便、 显示信息清晰。
(1)控制步进电机实现正转和反转; (2)控制步进电机转速; (3)设计步进电机的脉冲放大电路,能驱动相电压位 12V、相电流位为 0.4A 的步 进电机工作; (4)实现对步进电机圈数的预置; (5)同步显示步进电机所转圈数及速度。
1
电源
Байду номын сангаас
按键控制
1.2.1 方案设计
控制模块
驱动模块 显示模块
步进电机
1
1 设计原理及方案
1.1 设计原理 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况
下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影 响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步 进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电 机来控制变的非常的简单。
图 1 步进电机控制驱动系统图
按键输入
预置数 控制 清零
电源电路
AT89C51 单片机系 统控制器
脉冲序列 方向控制信号
驱动电路
功率 放大 信号
步进电机
同步显示圈数及转速
数码管显示
图 2 基于 AT89C51 单片机的步进电机控制及驱动系统图
基于 AT89C51 单片机的步进电机控制及驱动电路设计。整个系统可分为:AT89C51 单片机系统控制器、驱动电路、数码管显示、按键输入模块及电源电路五大部分,如图 2 所示。本设计方案采用 AT89C51 单片机作为控制模块的核心,利用软件编程使单片机 输出脉冲序列和方向控制信号,以此实现对步进电机启动停止、正反转、加减速的控制。 驱动电路部分由芯片 ULN2003A 和必要的外围电路组成,单片机产生的信号经驱动电路 使其功率放大,达到电机所需的驱动电压和电流由此驱动步进电机工作。由七段 LED 共 阴数码管实现步进电机预置圈数和所转圈数的同步显示。用相应的按键实现预置圈数设 置和清零的功能。
虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机、交流电机在 常规下使用。步进电机必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。 因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 1.2 设计方案
设计要求:设计步进电机控制器硬件电路图,并使用相应的软件实现硬件和软件的 仿真、调试。实现功能如下:
(1)控制模块采用 ATMEL 公司的 AT89C51 单片机作为系统控制的核心,如图 7 所示。
图 7 控制模块硬件电路图
6
脉冲信号由单片机产生,一般脉冲信号的占空比为 0.3-0.4 左右,电机转速越高, 占空比则越大。信号分配实际上就是按照某一种控制方式(根据需要进行选定)所规定 的顺序发送脉冲序列,达到控制步进电机方向的目的。
图 3 步进电机通电方式及原理图
2.1.2 AT89C51 单片机芯片介绍 本设计采用 AT89C51 单片机作为控制系统的核心。AT89C51 单片机组成结构中包含
运算器、控制器、片内存储器、4 个 I/O 口、串行口、定时器/计数器、中断系统、振荡 器等功能部件。
4
采用 HMOS 制造工艺的 MCS-51 单片机都采用 40 管脚双列直插式封装,除采用 40 脚 双列式直插式封装外,还有用方形的封装方式。40 管脚双列直插式封装管脚图如 4 图所 示。
5
2.1.4 LED 七段数码管介绍 本设计采用六位 LED 共阴数码显示管作为显示部分,即将每个数码管的 a~g 及 dp
端串联在一起,公共端作为位选信号输入端。如图 3.8 所示。
图 6 六位 LED 共阴数码显示管图 2.2 步进电机控制及驱动系统电路设计实现 2.2.1 硬件设计
根据之前确定方案及各元器件的功能原理步进电机控制及驱动系统的详细电路设 计如下:
图 13 系统仿真软件图
4. 总结
本系统主要研究了一种基于单片机的步进电机控制及驱动的电路设计。设计采用 AT89C51 单片机作为控制模块的核心,利用单片机编程实现了对步进电机的控制。由单 片机产生的信号经 ULN2003A 芯片进行功率放大,驱动步进电机工作,同时由数码管同
11
步显示预置数和所转圈数,由相应的按键实现预置圈数、控制、清零功能。 系统能够实现: (1) 预设步进电机所转圈数; (2) 启动停止、正转反转、加速减速等功能的基本控制; (3) 同步显示圈数; (4) 电机转至预置圈数自动停机; (5) 步进电机处于停止状态时可以对预置数进行清零操作。 在系统设计过程中,力求硬件电路简单,充分发挥软件部分的优势,编程灵活方便
图 10 按键控制硬件电路图
8
(5)步进电机部分,该设计中所用到的步进电机为三相六拍步进电机,
图 11 步进电机部分硬件电路图 2.2.2 软件设计
综合以上选取的方案,总的流程如图 12 所示。 整个程序采用 C 语言编程,使程序简单易读,在整个过程中采用模块化调试,可靠 性好。
9
图 12 系统程序流程图
1.2.1 方案设计 .................................................... 2
2 设计实现 ............................................................ 3 2.1 主要元器件介绍 ............................................... 3
3 电路调试
3.1 软件的仿真 系统电路软件仿真的步骤如下: (1)打开 protuse 仿真软件; (2)在软件的元器件库中选择所需的器件; (3)按照硬件电路设计方案连线; (4)加载编译好的 HEX 文件;
10
(5)运行、调试; (6)如有错误或与设计预期不相符,则继续进行步骤 3~5,进行调试,至到调试 成功。 系统仿真如图 13 所示。
2.1 主要元器件介绍
2.1.1 三相六线步进电机的介绍
设 A 相首先通电,转子齿与定子 A、A′对齐(图 3.a)。然后在 A 相继续通电的情 况下接通 B 相。这时定子 B、B′极对转子齿 2、4 产生磁拉力,使转子顺时针方向转动, 但是 A、A′极继续拉住齿 1、3,因此,转子将转到两个磁拉力平衡为止。这时转子的 位置如图(3.b)所示,即转子从图(a)位置顺时针转过了 15°。接着 A 相断电,B 相继续 通电。这时转子齿 2、4 和定子 B、B′极对齐(图 3.c),转子从图(3.b)的位置又转过
3
了 15°。其位置如图 3d 所示。这样,如果按 A→A、B→B→B、C→C→C、A→A„的顺序 轮流通电,则转子便顺时针方向一步一步地转动,步距角 15°。电流换接六次,磁场旋 转一周,转子前进了一个齿距角。如果按 A→A、C→C→C、B→B→B、A→A„的顺序通电, 则电机转子逆时针方向转动。
2.1.1 三相六拍步进电机的介绍 ...................................... 3 2.1.2 AT89C51 单片机芯片介绍 ....................................... 4 2.1.3 ULN2003 芯片介绍 ............................................. 5 2.1.4 LED 七段数码管介绍 ........................................... 6
(3)显示模块采用 LED 七段共阴数码管进行动态显示。AT89C51 单片机输出的脉冲 序列经过上拉电阻驱动数码管显示。采用数码管动态显示方式,硬件电路简单、编程简 便、显示信息清晰、器件价格低廉,但占用单片机 I/O 口较多。
(4)按键控制采用独立式按键。总共设置了 15 个按键,其中四个按键分别执行对 步进电机的启动/停止、正转/反转、加速、减速四种控制功能。四个按键不可同时按下, 当其中一个按下时控制电机的某一种状态。按键 0~9 完成预置步进电机所转圈数的功 能,剩余一个按键实现清零的功能。采用独立式按键,中断工作方式。该方案原理易懂, 程序简单,但占用I/O口线较多,软件较容易,硬件电路较繁琐。
2.2 步进电机控制及驱动系统电路设计实现 ...................... 6
2.2.1 硬件设计 .................................................... 6 2.2.2 软件设计 .................................................... 9
(1)控制模块采用 AT89C51 单片机作为系统控制的核心。利用单片机编程产生步 进电机所需脉冲序列和方向控制信号。单片机算术运算功能强、软件编程灵活、自由度
2
大,可用软件编程实现各种算法和逻辑控制。由于其功耗低、体积小、技术成熟和成本 低,且可对其进行扩展,附带显示设备,键盘输入等设备,使用方便。还可通过软件编 程实现对步进电机的位置、速度预设及显示。步进电机位置和速度实际上跟单片机产生 脉冲的个数和脉冲频率是一一对应关系,而方向由导电顺序决定。并且,由于单片机芯 片引脚少,软硬件连接简便灵活,硬件容易实现。
7
图 9 显示模块硬件电路图 (4)按键控制采用独立式按键,中断工作方式。总共设置了 15 个按键,如图 10 所 示,其中四个控制按键分别执行对步进电机的启动/停止、正转/反转、加速、减速四种 控制功能,由单片机的 P3.4~P3.7 口输入。四个按键不可同时按下,当其中一个按下 时控制电机的某一种状态。按键 0~9 完成预置步进电机所转圈数的功能,剩余一个按 键实现清零的功能,由单片机的 P1 口输入。采用独立式按键,原理易懂,软件编序简 单。
目录 1 设计原理及方案..................................................... 1
1.1 设计原理............................................ 1 1.2 设计方案............................................ 1
图 4 MCS-51 系列单片机管脚图 2.1.3 ULN2003 芯片介绍
ULN2003 是高耐压、大电流、内部由七个硅 NPN 达林顿管组成的驱动芯片,如图 3.5 所示。经常在以下电路中使用,作为:显示驱动、继电器驱动、照明灯驱动、电磁 阀驱动、伺服电机、步进电机驱动等电路中。
图 5 ULN2003 芯片图
3 电路调试 ........................................................... 10 3.1 软件的仿真 ................................................... 10
4 总结 ................................................................ 11 参考文献 .............................................................. 12
(2)驱动模块直接采用 ULN2003 芯片进行功率放大。它的内部结构是达林顿的, 专门用来驱动继电器的芯片,甚至在芯片内部做了一个消线圈反电动势的二极管。 ULN2003 的输出端允许通过 IC 电流 200mA,饱和压降 VCE 约 1V 左右,耐压 BVCEO 约 为 36V。输出口的外接负载可根据以上参数估算。采用集电极开路输出,输出电流大, 故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动步进电机。 ULN2003 芯片自身功耗小、 驱动能力强、可靠稳定、体积小、使用方便、价格不高、 50V/0.5A 以下的电路均可使用。
(2)驱动模块直接采用 ULN2003 芯片,如图 8 所示。由单片机产生的脉冲序列和 方向控制信号从 P3.0~P3.3 口输出,直接送入 ULN2003 芯片进行功率放大,达到步进 电机所需的驱动电流和电压,以此驱动步进电机工作。
图 8 驱动模块硬件电路图 (3)显示模块采用六位 LED 七段共阴数码管进行动态显示,如图 9 所示。由 AT89C51 单片机产生的段选信号从 P0 输出,经过 1K 左右的上拉排阻驱动数码管显示,位选信号 从 P2 口输出直接送数码管显示。采用数码管动态显示方式,硬件电路简单、编程简便、 显示信息清晰。
(1)控制步进电机实现正转和反转; (2)控制步进电机转速; (3)设计步进电机的脉冲放大电路,能驱动相电压位 12V、相电流位为 0.4A 的步 进电机工作; (4)实现对步进电机圈数的预置; (5)同步显示步进电机所转圈数及速度。
1
电源
Байду номын сангаас
按键控制
1.2.1 方案设计
控制模块
驱动模块 显示模块
步进电机
1
1 设计原理及方案
1.1 设计原理 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况
下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影 响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步 进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电 机来控制变的非常的简单。
图 1 步进电机控制驱动系统图
按键输入
预置数 控制 清零
电源电路
AT89C51 单片机系 统控制器
脉冲序列 方向控制信号
驱动电路
功率 放大 信号
步进电机
同步显示圈数及转速
数码管显示
图 2 基于 AT89C51 单片机的步进电机控制及驱动系统图
基于 AT89C51 单片机的步进电机控制及驱动电路设计。整个系统可分为:AT89C51 单片机系统控制器、驱动电路、数码管显示、按键输入模块及电源电路五大部分,如图 2 所示。本设计方案采用 AT89C51 单片机作为控制模块的核心,利用软件编程使单片机 输出脉冲序列和方向控制信号,以此实现对步进电机启动停止、正反转、加减速的控制。 驱动电路部分由芯片 ULN2003A 和必要的外围电路组成,单片机产生的信号经驱动电路 使其功率放大,达到电机所需的驱动电压和电流由此驱动步进电机工作。由七段 LED 共 阴数码管实现步进电机预置圈数和所转圈数的同步显示。用相应的按键实现预置圈数设 置和清零的功能。
虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机、交流电机在 常规下使用。步进电机必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。 因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 1.2 设计方案
设计要求:设计步进电机控制器硬件电路图,并使用相应的软件实现硬件和软件的 仿真、调试。实现功能如下:
(1)控制模块采用 ATMEL 公司的 AT89C51 单片机作为系统控制的核心,如图 7 所示。
图 7 控制模块硬件电路图
6
脉冲信号由单片机产生,一般脉冲信号的占空比为 0.3-0.4 左右,电机转速越高, 占空比则越大。信号分配实际上就是按照某一种控制方式(根据需要进行选定)所规定 的顺序发送脉冲序列,达到控制步进电机方向的目的。
图 3 步进电机通电方式及原理图
2.1.2 AT89C51 单片机芯片介绍 本设计采用 AT89C51 单片机作为控制系统的核心。AT89C51 单片机组成结构中包含
运算器、控制器、片内存储器、4 个 I/O 口、串行口、定时器/计数器、中断系统、振荡 器等功能部件。
4
采用 HMOS 制造工艺的 MCS-51 单片机都采用 40 管脚双列直插式封装,除采用 40 脚 双列式直插式封装外,还有用方形的封装方式。40 管脚双列直插式封装管脚图如 4 图所 示。
5
2.1.4 LED 七段数码管介绍 本设计采用六位 LED 共阴数码显示管作为显示部分,即将每个数码管的 a~g 及 dp
端串联在一起,公共端作为位选信号输入端。如图 3.8 所示。
图 6 六位 LED 共阴数码显示管图 2.2 步进电机控制及驱动系统电路设计实现 2.2.1 硬件设计
根据之前确定方案及各元器件的功能原理步进电机控制及驱动系统的详细电路设 计如下:
图 13 系统仿真软件图
4. 总结
本系统主要研究了一种基于单片机的步进电机控制及驱动的电路设计。设计采用 AT89C51 单片机作为控制模块的核心,利用单片机编程实现了对步进电机的控制。由单 片机产生的信号经 ULN2003A 芯片进行功率放大,驱动步进电机工作,同时由数码管同
11
步显示预置数和所转圈数,由相应的按键实现预置圈数、控制、清零功能。 系统能够实现: (1) 预设步进电机所转圈数; (2) 启动停止、正转反转、加速减速等功能的基本控制; (3) 同步显示圈数; (4) 电机转至预置圈数自动停机; (5) 步进电机处于停止状态时可以对预置数进行清零操作。 在系统设计过程中,力求硬件电路简单,充分发挥软件部分的优势,编程灵活方便
图 10 按键控制硬件电路图
8
(5)步进电机部分,该设计中所用到的步进电机为三相六拍步进电机,
图 11 步进电机部分硬件电路图 2.2.2 软件设计
综合以上选取的方案,总的流程如图 12 所示。 整个程序采用 C 语言编程,使程序简单易读,在整个过程中采用模块化调试,可靠 性好。
9
图 12 系统程序流程图
1.2.1 方案设计 .................................................... 2
2 设计实现 ............................................................ 3 2.1 主要元器件介绍 ............................................... 3
3 电路调试
3.1 软件的仿真 系统电路软件仿真的步骤如下: (1)打开 protuse 仿真软件; (2)在软件的元器件库中选择所需的器件; (3)按照硬件电路设计方案连线; (4)加载编译好的 HEX 文件;
10
(5)运行、调试; (6)如有错误或与设计预期不相符,则继续进行步骤 3~5,进行调试,至到调试 成功。 系统仿真如图 13 所示。