1、本科毕业设计(论文)(20 届)基于 Arduino 的步进电机控制设计所在学院专业班级 电子信息科学与技术学生姓名指导教师完成日期目录摘要 .Abstract.第一章 绪论 .11.1 题目说明 .11.2 Arduino 的基本情况及步进电机发展情况 .21.2.1 Arduino 的基本情况 .21.2.2 步进电机发展情况 .31.3 课题的意义与目标 .31.4 论文的整体结构安排 .4第二章 系统架构及说明 .52.1 步进电机工作原理及特点 .52.1.1 步进电机种类及工作原理 .52.1.2 步进电机的频率特性 .112.2 Arduino 开发板的工作特性及软件特点 .14
2、2.2.1 Arduino 开发板的工作特性 .142.2.2 Arduino 软件特点 .142.3 系统架构 .142.3.1 步进电机控制原理 .142.3.2 控制系统程序流程图 .15第三章 系统设计实现 .163.1 L298 的原理图及接口细节 .163.2 连接实物图 .17第四章 总结与展望分析 .18参考文献 .19附录:实现程序 .20致谢 .25基于 Arduino 的步进电机的控制设计摘要介绍了步进电机的发展史及国内的现状和 Arduino 开发板的基本情况,并且阐述步进电机的工作原理。步进电机是将电脉冲信号转换成相应的角位移或直线位移的开环控制元件。在非超载的情况下
3、,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步进角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差,使得在诸如数控机床、某些光学仪器、计算机的打印机、磁盘驱动器等,用步进电机来控制变的非常的简单。步进电机的调速一般是改变输入步进电机的脉冲的转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来控制步进角来改变电机的转速,从而实现步进电机的调速。本设计阐述了一种步进电机控制的设计方案,并绘制了原理图,撰写了程序源代码。实现对步进电机转速的控制,并完成实物制作
4、。这期间主要使用 Protel99 软件绘制原理图,最后通过计算机调试程序代码的实际功能,完成此设计。关键词:步进电机;Arduino 开发板;控制、Based on Arduino Stepping Motor Control DesignAbstractThis paper introduces the history of stepper motor and domestic situation and Arduino development board, and sets forth the basic working principle of stepping motor. Step
5、ping motor is converted into electrical impulses signal of the angular displacement or linear displacement open loop control components. In the overload of the cases, motor speed, stop position only depend on the pulse signal frequency and pulse count, and not under the influence of load changes, i.
6、e. give motor add a pulse signal, motor is turned a stepping horns. The existence of a sexual relationship, plus the stepping motor only cyclical error and no accumulative error, such as CNC machines, make some optical instrument, computer printers, disk drives, etc, with the stepping motor to contr
7、ol becomes very simple. The step motor speed control is generally change input pulse stepper motor rotate a fixed Angle, which can through controlling the step motor a pulse to the next pulse interval to change pulse frequency, delay length to control stepping Angle to change the motor speed, so as
8、to realize the stepper motor speed. This design expounds a kind of stepping motor control design scheme and mapped the principle diagram, compose the source code. Realize the stepping motor speed control, and complete the making of objects. During this period the main use Protel99 software rendering
9、 principle diagram, finally through computer debugging code, the actual function complete this design. Keyword:Stepping motor,Arduino development board,Control 第一章 绪论1.1 题目说明步进电机最早是在1920年由英国人开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日的步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、高信赖性等灵活控制性高的机械系统中。在生产过
10、程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性的场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用 1。步进电机是一种将电脉冲信号转变成相应的角位移或直线位移的开环控制元件。控制步进电机的输入脉冲数量、频率及电机各相绕组的接通顺序,就能得到各种需要的运行特性。步进电机在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个
11、脉冲信号,电机则转过一个步进角 2。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差,使得在诸如数控机床、某些光学仪器、计算机的打印机、磁盘驱动器等,用步进电机来控制变的非常的简单。而采用步进电机组成的控制系统还具有价格低廉、控制简单、维护方便等优点。现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机( PM)、混合式步进电机(HB)和单相式步进电机等。永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕
12、组,利用磁导的变化产生转矩。混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。鉴于传统的脉冲系统移植性不好,本设计提出微机控制系统代替脉冲发生器和脉冲分配器,用软件的方法产生控制脉冲,通过软件编程可以任意设定步进电机的转速、旋转角度、转动次数和控制步进电机的运行状态。以简化控制电路,降低生产成本,提高系统的运行效率和灵活性。本文讨论一种基于Arduino设计的步进电机控制系统,利用Arduino的通用的输入输出接口,可以自由编程支配。不仅操作简单方便,而且容易实现。鉴于Arduino的特点,系统具有良好的通用性。1.2 A
13、rduino的基本情况及步进电机发展情况1.2.1 Arduino的基本情况Arduino是一个开放的硬件平台,包括一个简单易用的I/O电路板,以及一个基于Eclipse的软件开发环境。Arduino 是一块基于开放源代码的 USB接口Simple i/o接口板(包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC输入通道),并且具有使用类似Java,C语言的IDE 集成开发环境。 Arduino可以被用来开发能够独立运行,并具备一定互动性的电子作品,也可以被用来开发与PC相连接的外围装置,这些装置甚至还能够与运行在PC 上的软件(如Flash, Max/Msp,Direc
14、tor,Processing等)进行沟通。Arduino还具有以下优点3。 低成本 和其它单片机平台相比,Arduino开发板相当便宜。 跨平台 Arduino软件可以运行在 Windows, Macintosh OSX,和Linux操作系统。大部分其它的单片机系统都只能运行在Windows上。 简易的编程环境 初学者很容易就能学会使用 Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。 软件开源并可扩展 Arduino软件是开源的,对于程序员可以对其进行扩展。Arduino编程语言可以通过C+库进行扩展。 硬件开源并可扩展 Arduino板基于 Atmel 的ATMEGA8
15、和ATMEGA168 单片机。Arduino基CreativeCommons许可协议。 USB接口方面 不需外接电源,另外有9V DC输入。 应用广泛 利用Arduino ,突破以往只能使用鼠标,键盘,CCD 等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。Arduino 的核心开发团队成员包括: Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis 和 Nicholas Zambetti。据说 Massimo Banzi 之前是意大利 Ivrea 一家高科技设计学校的老师。他的学生们经
16、常抱怨找不到便宜好用的微控制器。2005 年冬天, Massimo Banzi 跟 David Cuartielles 讨论了这个问题。David Cuartielles 是一个西班牙籍芯片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了 Banzi 的学生 David Mellis 为电路板设计编程语言。两天以后,David Mellis 就写出了程式码。又过了三天,电路板就完工了。这块电路板被命名为 Arduino。几乎任何人,即使不懂电脑编程,也能用 Arduino 做出很酷的东西,比如对传感器作出回应,闪烁灯光,还能控制马达。随后 Banzi,Cuartielles
17、,和 Mellis 把设计图放到了网上。保持设计的开放源码理念,因为版权法可以监管开源软件,却很难用在硬件上,他们决定采用共享创意许可。共享创意是为保护开放版权行为而出现的类似 GPL 的一种许可(license)。在共享创意许可下,任何人都被允许生产电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得 Arduino 团队的许可。1.2.2 步进电机发展情况我国步进电机的研究与制造起始于上世纪 50 年代后期。从 50 年代后期到60 年代后期,主要是高等院校和科研机构为研究一些装置二使用或开发少量产品。这些产品以多段机构三相反应式步进电机为主。70 年代初期,
18、步进电机的生产和研究有所突破。除反映在驱动器设计方面的长足进步外,队反应式步进电机本身的设计研究发展到一个较高水平。70 年代中期至 80 年代中期为成品发展阶段,新品种高性能电机不断被开发。自 80 年代中期以来,由于对步进电机精确模型做了大量研究工作,各种混合式步进电机及驱动器作为产品广泛应用。1.3 课题的意义与目标 了解步进电机的结构和工作原理。掌握步进电机控制系统的设计方法及其调试技术。 本课题是以 Arduino 开发板为控制核心,实现对步进电机的正反转控制,为进一步研究和优化步进电机控制方法提供基础。 基于 Arduino 的步进电机控制可以用 Arduino 来为步进电机产生相
19、应的脉冲信号,来精确地控制电机转动的角度和速度。通过本课题的设计与制作,掌握 Arduino 编程方法,巩固所学的相关知识,增强实际操作能力,学习已有的先进设计理念,另外希望通过这一系列的研究,寻找出一些与众不同的设计思路,试着设计出一些具有自己思路的电子产品。培养综合运用所学知识,独立地分析问题和解决问题的能力。 步进电机控制系统设计与实际应用联系紧密,并且是跨学科的电子系统应用,对培养我以后的工程设计工作具有很强的参考意义。我希望通过此次设计能使我的工程设计水平迈向新的台阶,在实践设计中复习好专业知识,并对电子相关的其他领域有一定的了解。 随着现代化工业进程的发展,控制系统与数据通信在各领
20、域的运用也日益增加,其主导作用也逐渐体现,因此通过本次设计与学习一方面可以锻炼自己的动手能力与学习能力,另一方面可以让我们把握住现代信息社会脉搏,为以后工作和学习确立正确方向与目标。1.4. 论文的整体结构安排第一章绪论首先阐述步进电机和 Arduino 开发板的基本情况,然后介绍了它们各自的发展情况,最后给出了课题研究的目标和意义。第二章系统架构及说明首先介绍了步进电机的工作原理,并对其特点进行描述,然后对 Arduino的开发板的工作特性及其使用软件的特点进行说明,最后阐述系统整体架构。第三章各个模块的实现首先阐述程序设计实现驱动控制,然后着重说明各个接口的详细特点和 L298 芯片,最后
21、介绍实施细节和调试工作。第四章总结与展望分析首先对整个论文进行总结说明,然后给出实物连接图,最后对课题进行深入分析与展望。第二章 系统架构及说明2.1 步进电机工作原理及特点2.1.1 步进电机种类及工作原理现在常用的步进电机包括永磁(PM)式步进电机、可变磁阻(VR)式步进电机、混合(HB)式步进电机和单相式步进电机等。步进电机由三部分组成定子、转子和机座,横向剖面示意图如图2.1示,外圈上的A、A 、B 、B、C、C为定子,上有多相励磁绕组,中间带齿状结构的部分为转子,主要工作的部分为定子和转子 4。图 2.1 步进电机的组成永磁(Permanent Magnet,简称 PM)式步进电机的
22、转子和定子二者中必有一者为永磁铁,可能定子是线圈转子是永磁铁,或者可能转子是线圈定子是永磁铁,一般为两相,转矩和体积较小,步矩角一般为 7.5 度或 15 度;步进电机的操作原理是基于同极相斥异极相吸的磁场理论。图 2.2(a)中所示的是永磁(PM)式步进电机的简化视图,电机包含四个电磁体,磁场分别由通过它们各自线圈的电流激励产生。鼓形的转子位于四个线圈中间,上面带有两个磁齿。假设线圈 A 和 A受到激励,由于线圈缠绕的方向相反,使它们具有不同的极性,其中线圈 A 成为 S 极而线圈 A成为 N 极。如图中所示,此时的转子处在垂直线上。如果继续给这两个线圈输入电流,则转子会由于磁场的吸引作用而
23、一直停在这个位置上。使转轴从它停留的位置离开所需的力矩称为保持转矩。图 2.2(b)是另外一种情况。线圈 B 和 B受到激励,而 A 和 A则继续保持受励状态。假设线圈 B 成为 S 极,而线圈 B成为 N 极,则转子将逆时针旋转 45,并停留在两级之间与位置 2 对齐成一线。如果所有四个线圈中的电流都是反向的,则转子也会翻转 180。(a)永磁式步进电机 简化视图 (b) 永磁式步进电机另外一种情况图 2.2 永磁式步进电机股齿形转子的物理尺寸和重量都比较大,所以难于移动,这将使步进电机的反映很慢。为了克服惯性的问题,某些永磁式步进电机实用扁平盘状转子,重量大约只有鼓形转子的40%。盘形转子如图 2.3 所示,它以一个无磁轴作为支撑,被放置在两个C 形电磁铁心内。盘体的一周由很小的独立磁体组成,这些磁体均匀地排列,N 极和S 极顺次交替。尽管C 形电磁体看上去是相互正对,实际它们彼此偏离半个转子极。各电磁体由不同相位的电流激励。当一个电磁体受到激励时,转子就会和索产生的磁场对齐。接下来,第一相的电流关闭,第二个电磁体受到激励。盘体会旋转半个转子极的一半,以使自己跟第二相电流产生的磁场对齐。当一个线圈受到激励时,另一个就不受激励,转子就在这种交替的过程中不断转动。