欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    08通信何琛毕业论文.doc

    • 资源ID:3899378       资源大小:1.47MB        全文页数:26页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    08通信何琛毕业论文.doc

    贵州大学科技学院本科毕业论文(设计)第II页科技学院2011届本科毕业论文基于Arduino的步进电机的控制设计专 业: 通 信 工 程 指导教师: 周 骅 学生姓名: 何 琛 学生学号: 082004110499 中国贵州贵阳2012年5月贵州大学科技学院本科毕业论文(设计)第21页目录摘要IIIAbstractIV第一章 绪论11.1设计背景及意义11.2 现状和发展趋势21.3 设计内容及目标2第二章 采用技术简介32.1 Arduino概述32.1.1 Arduino的特色32.1.2 Arduino语言基本结构42.1.3 开发一个项目的基本流程42.2 Arduino Duemilanove简介52.3 EasyDriver简介62.4 步进电机简介72.5 步进电机的工作原理82.5.1.电机固有步距角82.5.2步进电机的相数82.5.3 保持转矩(HOLDING TORQUE)82.5.4 DETENT TORQUE:9第三章 控制步进电机设计103.1 方案论证103.2 系统总体结构103.3 系统设计使用芯片123.4 系统工作原理133.5 步进电机控制程序133.6 系统设计实体图163.7 实验问题及解决16第四章 总结与展望184.1 总结184.2 展望18参考文献19致谢20基于Arduino的步进电机控制系统摘要近年来随着科学技术的不断提高,arduino的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。随着国民经济的快速发展,有很多平台可以控制步进电机,目前的步进电机控系统大多采用PLC控制器或8051单片机来控制。PLC控制器是一款可编程逻辑控制器,它工作环境要求低,操作简单,稳定性也比较好,但是它的成本很高。而8051单片机虽然成本较低,灵活性很好,但是8051单片机的工作环境要求较高,操作起来也复杂得多。在本设计介绍了Arduino控制步进电机的系统。在科技高速发展的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。步进电机是机电控制中常用的一种执行机构,其原理是通过对它的每相线圈中的电流和顺序切换来使步进电机转动。本系统的硬件组成主要有:Arduino Duemilanove微控制器板、EasyDriver驱动、12V直流电源和电脑。本设计用EasyDriver驱动与Arduino Duemilanove微控制器板、12V直流外接电源连接,并用Arduino Duemilanove微控制器板与电脑连接,用程序控制步进电机实现转向、转速等控制。本设计具有结构简单、可靠性强、操作简单、程序设计简便和实用性强等特点,具有较高的通用性和应用推广价值。关键词:Arduino; EasyDriver;步进电机Based on the Arduino stepping motor control systemAbstractIn recent years, with the science and technology unceasing enhancement, the application of the arduino is continuously to the deepening, and push the traditional control test rapidly updated. Along with the rapid economic development, there are many platform can control the stepping motor, the current step electric system equipped most PLC controller is used to control or the single chip microcomputer 8051. PLC controller is a programmable logic controller, it working environment low demand, simple operation, and stability are relatively good, but it's very expensive. And the single chip microcomputer 8051 although cost is low, flexibility is good, but the single chip microcomputer 8051 work environment of the demand is higher, operate up also is much more complicated.In this design introduced the Arduino control the step motor system. The high speed of development in science and technology today, motor has been the modernization of production and life plays a very important role. Stepping motor is mechanical and electrical control of a common actuators, its principle is to it through of each phase is the current coil switch and order to make stepping motor rotation. This system hardware mainly has: Arduino Duemilanove micro controller board, EasyDriver drive, 12 V dc power and computer. This design with EasyDriver drive and Arduino Duemilanove micro controller board, 12 V dc external power supply connection, and Arduino Duemilanove micro controller board connected with the computer, with process control stepping motor rotation speed control to realize,. This design is simple in structure, reliability, simple operation, convenient and practical program design characteristics, it is of high popularization value universality and application.Keywords: Arduino; EasyDriver; Stepping motor第一章 绪论1.1设计背景及意义在科技飞速发展的今天,出现了各种嵌入式硬件平台,而Arduino 是一款相对价格不高、易于使用的嵌入式硬件平台。Arduino是一块基于开放源代码的USB接口Simple i/o接口板,包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC输入通道,并且具有使用类似Java,C语言的IDE集成开发环境。包括硬件和软件在内的整个平台是完全开源的,并且使用的是松散地基于C/C+的语言。Arduino是为希望尝试创建交互式物理对象的实践者、喜欢创造发明的人构建的。Arduino可以作为一块Atmegaxx8系列单片机开发板使用,可以连接多种电子元件外设,其中就有步进电机。步进电机是一种将电脉冲信号转换成相应的角位移或线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件,具有快速启动和停止的能力。当负荷不超过步进电机所提供的动态转矩值时,它就可能在一瞬间实现启动和停止。它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件(如温度、气压、冲击和振动等)的影响,仅与脉冲频率有关。它每转1 周步数都事固定的,在不丢步的情况下运行,它的步距误差不会长期积累。正是因为步进电机具备上述优点,它已经被广泛地用于自动控制系统中作为执行元件。随着科学技术的不断提高,有很多平台可以控制步进电机,目前的步进电机控系统大多采用PLC控制器或8051单片机来控制。PLC控制器是一款可编程逻辑控制器,它工作环境要求低,操作简单,稳定性也比较好,但是它的成本很高。而8051单片机虽然成本较低,灵活性很好,但是8051单片机的工作环境要求较高,操作起来也复杂得多。而Arduino的开发板不仅成本较低,而且灵活性很好,同时它操作也很简单,因为它有一个简单的开发环境,底层的函数不用自己写,已经有集成的函数可以直接调用。因此开发和研制利用arduino的开发板来控制步进电机的控制系统是十分必要的。本文是以Arduino作为主系统控制步进电机转的圈数以及控制电机的启动和停止、正反转。 1.2 现状和发展趋势在科技飞速发展的今天,出现了各种嵌入式硬件平台,而Arduino 是一款相对价格不高、易于使用的嵌入式硬件平台。Arduino是一块基于开放源代码的USB接口Simple i/o接口板,包括12通道数字GPIO,4通道PWM输出,6-8通道10bit ADC输入通道,并且具有使用类似Java,C语言的IDE集成开发环境。包括硬件和软件在内的整个平台是完全开源的,并且使用的是松散地基于C/C+的语言。Arduino是为希望尝试创建交互式物理对象的实践者、喜欢创造发明的人构建的。Arduino可以作为一块Atmegaxx8系列单片机开发板使用,可以连接多种电子元件外设,其中就有步进电机。步进电机是一种将电脉冲信号转换成相应的角位移或线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件,具有快速启动和停止的能力。当负荷不超过步进电机所提供的动态转矩值时,它就可能在一瞬间实现启动和停止。它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件(如温度、气压、冲击和振动等)的影响,仅与脉冲频率有关。它每转1 周步数都事固定的,在不丢步的情况下运行,它的步距误差不会长期积累。正是因为步进电机具备上述优点,它已经被广泛地用于自动控制系统中作为执行元件。1.3 设计内容及目标本设计是以Arduino作为主系统控制步进电机转的圈数以及控制电机的启动和停止、正反转。使得系统达到对步进电机的启动、停止、正转、反转和运行距离的控制。随着科学技术的不断提高,目前有很多平台可以作为驱动控制步进电机,目前的步进电机控制系统大多采用PLC控制器或8051单片机来控制。PLC控制器是一款可编程逻辑控制器,它工作环境要求低,操作简单,稳定性也比较好,但是它的成本很高。而8051单片机虽然成本较低,灵活性很好,但是8051单片机的工作环境要求较高,操作起来也复杂得多。而Arduino的开发板不仅成本较低,而且灵活性很好,同时它操作也很简单,可以说它是集8051单片机和plc控制器的优点于一身的开发平台。它有一个简单的开发环境,底层的函数不用自己写,已经有集成的函数可以直接调用。因此开发和研制利用arduino的开发板来控制步进电机的控制系统是十分必要的。第二章 采用技术简介2.1 Arduino概述“Arduino”源自11世纪北意大利国王的名字。这个开发项目最早是由Massimo Banzi、Daviod Cuartielles、David Mellis和 Nichoals Zambetti等人发起,目前已经有许多不同版本。Arduino是一块基与开放原始代码的Simple i/o 平台,它具有使用类似java,C 语言的语言开发环境。可以使用Arduino语言与Flash或Processing等软件,作出互动作品。Arduino 能够使用开发完成的电子元件例如Switch或Sensors 或其他控制器、步进电机、LED、红外传感器或其他输出裝置。不仅如此,Arduino还能够独立运作成为一个可以跟软件沟通的平台,例如说:flash、processing、Max/MSP、VVVV 或其他互动软件Arduino所有的软件与硬件资源都可以在网络上找到,而且它基于开放源码的概念,让我们可以以Arduino为基础,扩展各种硬件。Arduino的结构如图2.1所示。图2.1 Arduino结构图2.1.1 Arduino的特色1、开放源代码的电路图设计,程序开发接口和编程软件免费下载,也可依照自己的需求进行修改。2、使用低价格的微处理控制器(ATmega128或ATMEGA8)。不需使用外接电源,可以直接采用USB接口供电。当然也可以使用外部9VDC输入。3、Arduino支持ISP在线烧板,可以将新的“bootloader”烧入ATmega8或ATmega128芯片。有了bootloader之后,可以通过USB线更新固件。4、可依据官方网站提供的Eagle格式PCB和SCH电路图,简化Arduino模组,完成独立运作的微处理控制。可简单地与传感器或各式各样的电子元件连接(例如:红外线、蓝牙、超音波、光敏电阻、热敏电阻、步进电机、伺服马达等)。5、支持多种互动程序,如:Flash、PD、Max/Msp、Processing、VVVV、C/C+等。6、应用方面,利用Arduino可以突破以往只能使用键盘、鼠标、CCD等输入的装置的互动内容,能够更简单地达成单人或多人游戏互动。2.1.2 Arduino语言基本结构Arduino语言是建立在C/C+基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些寄存器参数设置等都函数化了,不用我们去了解它的底层,可以直接调用。 Arduino中最基本的两个结构:void setup()和void loop()。void setup()用以初始化变量,引脚模式,调用库函数等。在运行过程中仅调用一次,即在最开始的开启阶段或者在重启阶段被调用。void loop()用于在setup被创建之后,连续执行该函数内的语句。即写在loop函数中的元素会被重复性的执行,以实现程序的状态改变与回应,从而动态的控制Arduino板。2.1.3 Arduino的基本参数1.微控制器核心:AVRmega168-20PU(处理速度可20MIPS)2.外部输入电压:7V12V(建议)3.工作电压:+5V4.外部输入电压(极值):+6VVin20V5.数字信号 I/O 接口:14个(其中有6个PWM输出口)6.模拟信号输入接口:6个7.DC I/O 接口电流:40 mA8.Flash 容量:16 KB (其他 2K 用bootloader)9.SRAM 静态存储容量:1KB10.EEPROM 存储容量:512 bytes11.时钟频率:16MHz2.1.4 Arduino开发环境的安装于使用1.准备 Arduion 板和 USB 线2.下载软件环境下载完毕后,解压缩.3. USB 线将电脑和 Arduino 板连接起来.可以发现绿灯闪烁4. 安装驱动程序(1)进入新的硬件向导;(2)选择“是”,点击下一步;(3)选择“从列表或指定位置安装”,点击下一步;(4)选择“在这些位置上搜索最佳驱动程序”“在搜索中包括这个位置”指定目录:刚解压缩软件目录下的driversFTDI USB Drivers(比如:D:arduinoarduino-0021 driversFTDI USB Drivers),点击下一步;(5)点击“完成”;5.直接双击编译软件Arduino;6.选择“FileExamples任意一个”7.选择“ToolsBoard对应的Arduino板”8.选择“ToolsSerial Port对应的端口”9.选择“Verify”,软件自动查错10.对程序中的错误进行修改11.循环执行910,直到显示无错误12.选择“Upioad”,软件将程序烧入Arduino板中自动运行2.2 Arduino Duemilanove简介Arduino Duemilanove是基于ATmega168 ( datasheet ) 或 ATmega328 ( datasheet )上的一个微控制器板。它有14个数字输入/输出引脚(其中有6个引脚用于PWM输出),6个模拟输入、1个16MHz的晶体振荡器、1个电源插孔、1个USB接头、1个ICSP插头和1个复位按钮。它包含支持微控制器运行所需的一切,只需要用USB线连接到电脑或电源A AC-DC适配器就可以使用了。它的工作电压为5V,每个I/O引脚需要40mA的直流电流。图2.2 Arduino Duemilanove微控制器2.3 EasyDriver简介 一个EasyDriver 能够为两级步进电机提供大约每相750mA的驱动。它被设置为固定的8步细分模式。即本设计中选用的是每圈200步的步进电机,使用EasyDriver时每圈为1600步。这是一种基于Allegro A3967驱动芯片的细分断路器。EasyDriver的最大电流从150mA到750mA,它可以采用最大驱动电压大约为30V,其中包括板载5V的调压器,所以只需要一个电源。EasyDriver的实物图如图2.3图2.3 EasyDriver实物图EasyDriver中主要的芯片是A3967slb。A3967slb是一个完整的微步内置式电动机的驱动器。它的设计可操作双极步进电机在全,半,季,和第八步模式下运行。它的输出驱动电压为30V,电流为±750mA。A3967slb包括一个固定的监控系统,可以通过对电流脉冲间隔调节步进电机转动速度的快慢。A3967slb具有电流衰减控制,电流衰减控制能减少发声马达噪音,增加步进电机的步进精度,并降低功耗。A3967SLB易于实现语言的转换。在STEP输入,只需输入一个脉冲,电机走一步(全,半,季,或第八取决于两个逻辑输入)。它有没有相位顺序表、高频率控制行或复杂的程序接口。A3967SLB运用较简单的芯片,是对初学者和不喜欢复杂编程的人们的理想选择。A3967SLB有24个铜制的引脚,不需要在固定温度下运行,A3967SLB的实物图如图2.3.1所示。图2.3.1 A3967SLB实物图2.4 步进电机简介步进电机步进电机也叫步进器,是一种将电脉冲信号转换成相应的角位移或线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件,具有快速启动和停止的能力。当负荷不超过步进电机所提供的动态转矩值时,它就可能在一瞬间实现启动和停止。它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件(如温度、气压、冲击和振动等)的影响,仅与脉冲频率有关。它每转1 周步数都事固定的,在不丢步的情况下运行,它的步距误差不会长期积累。正是因为步进电机具备上述优点,它已经被广泛地用于自动控制系统中作为执行元件。人们早在90年前就开始使用这种电机。随着嵌入式系统(例如打印机、磁盘驱动器、玩具、雨刷、震动寻呼机和录像机等)的日益流行,步进电机的使用也开始越来越频繁的出现在我们的生活中。不论在工业、军事、医疗、汽车还是娱乐业中,只要是需要把某件物体从一个位置移动到另一个位置的时候,步进电机就一定能派上用场。步进电机有许多种形状和尺寸,但不论形状和尺寸如何,步进电机都可分为三类:永磁式(PM) ,反应式(VR)和混合式(HB):1. 永磁式步进电机一般为两相步进电机,转矩和体积都较小,步进角一般为7.5度或15度;2. 反应式步进电机一般为三相步进电机,可实现大转矩输出,步进角一般为1.5度。它的噪声和振动都很大。它的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。3. 混合式步进电动机综合了反应式、永磁式步进电动机两者的优点,它的动态性能好、步距角小、出力大,是目前性能最高的步进电动机。它有时也称作永磁感应子式步进电动机。混合式步进电机又分为两相步进电机和五相步进电机:混合式两相步进电机的步进角一般为1.8度,而混合式五相步进电机的步进角一般为 0.72度。这种步进电机的应用最为广泛。本设计中使用的是混合式步进电机。2.5 步进电机的工作原理工作原理是利用电子电路,将直流电变成分时供电的多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作。驱动器就是为步进电机分时供电的多相时序控制器。2.5.1电机固有步距角当步进电机的驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转方式是以固定的角度一步一步运行的。可以通过控制脉冲的个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率(即每个脉冲的间隔时间)来控制步进电机转动的速度和加速度,从而达到调整步进电机转动速度的目的。电机出厂时给出了一个步距角的值,如86BYG250A型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这个步距角可以称之为电机固有步距角,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。通常步进电机步距角的一般计算按下式计算。=360°/(Z·m·K)式中 步进电机的步距角;Z转子齿数;m步进电动机的相数;K控制系数,是拍数与相数的比例系数2.5.2步进电机的相数步进电机的相数是指电机内部的线圈组数,目前常见的有二相、三相、四相、五相步进电机。步进电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72°。在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角的要求。如果使用细分驱动器,则相数将变得没有意义,用户只需在驱动器上改变细分数,就可以改变步距角。2.5.3 保持转矩(HOLDING TORQUE)保持转矩(HOLDING TORQUE)是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要的参数之一。步进电机在低速时的力矩接近保持转矩。由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。比如,当人们说2N.m的步进电机,在没有特殊说明的情况下是指保持转矩为2N.m的步进电机。2.5.4 DETENT TORQUE:DETENT TORQUE是指步进电机没有通电的情况下,定子锁住转子的力矩。由于反应式步进电机的转子不是永磁材料,所以它没有DETENT TORQUE。第三章 控制步进电机设计3.1 方案论证可控制步进电机的平台有很多种,其中常见的有51单片机和PLC。51单片机具有内部结构简单、体积小、成本低、扩展性强等优点,但是它的稳定性差,抗干扰能力也较差,需要自己设计电路图和编程,而且电路图和编程都相当的复杂,比如:很多的八位单片机都不具备乘法功能,作乘法时还得编上一段子程序调用,十分不便。而51单片机控制起来也相当的不方便,由于电路很复杂,往往给检修也带来很大的不便,所以51单片机一般运用在家用电器和商业上。PLC是可编程逻辑控制器Programmable Logic Controller的简称,它具有抗干扰能力强、可靠性强、编程简单的优点,但是它的价格昂贵,而扩展性差,结构相对复杂,比较不容易学习,所以plc往往只适用于大型工业设备。而arduino是一种目前比较先进的技术,它具有体积小、扩展性强、结构简单、编程简单、价格较低、可靠性高等优势,而且它不用自己设计电路图,因此很容易学习。可以说arduino是集51单片机和plc的优点与一身的平台,因此在本设计中我选用了arduino作为控制步进电机的平台。在本设计中的控制器选择了EasyDriver, 虽然L289N也可以实现步进电机的控制,但是L298N接线与编程都比EasyDriver复杂很多。所以本设计选用了接线和编程都较简单的EasyDriver控制器。3.2 系统总体结构本设计对于步进电机控制系统硬件部分按功能大致可以分为以下几个部分:Arduino Duemilanove模块、EasyDriver控制器、步进电机和电源。首先将这几样器材通过焊接与导线连接起来,在将连接好的Arduino Duemilanove板通过USB数据线与电脑连接,在电脑上打开相对应的Arduino软件,在Arduino软件中打开相对应的C语音程序进行查错和修改。完成程序修改后进行程序运行,并将C语音程序通过Arduino软件考入Arduino Duemilanove板中,这时可以看到步进电机按照程序命令转动起来。根据步进电机的转动快慢和正/反转与圈数对程序进行反复修改和考入,最终得到满意的转动效果。硬件总体结构如图3.2.1所示。结构框图如图3.2.2所示。图3.2.1 硬件总体结构Arduino程序Arduino Duemil-anoven模板EasyD-river控制器12V直流电源步进电机图3.2.2 结构框图3.3 系统设计使用芯片在对于基于Arduino系统设计实体中,使用的微控制器是Arduino Duemilanove,其Arduino Duemilanove微控制器实体图如下图3.3.1所示图3.3.1 Arduino Duemilanove实物图在本次设计中,使用的驱动是EasyDriver驱动器,其EasyDriver驱动器的实体图如下图3.3.2图3.3.2 EasyDriver实物图3.4 系统工作原理(1)利用USB接口将Arduino Duemilanove板和电脑连接,在电脑上利用Arduino软件将程序拷入Arduino Duemilanove板中,系统自动启动,进行检查步进电机是否正常转动;(2) Arduino扩展板通过EasyDriver将信号传输到步进电机中;(3)通过Arduino板中的程序控制步进电机的转速和正/反转的圈数,并将信号再次通过Arduino扩展板传输到步进电机中。这时就可以看到步进电机按照程序设定的结果正转5圈,然后反转5圈最后停止。3.5 步进电机控制程序C语言参考程序:int dirPin = 6;int stepperPin = 5;int switch1 = 14;int switch2 = 15;int value;void setup() pinMode(dirPin, OUTPUT); pinMode(stepperPin, OUTPUT); pinMode(switch1, INPUT); pinMode(switch2, INPUT);void step(boolean dir,int steps) digitalWrite(dirPin,dir); for(int i=0; i < steps; i +) digitalWrite(stepperPin, HIGH); delayMicroseconds(500); digitalWrite(stepperPin, LOW); delayMicroseconds(500); / speed control delayMicroseconds(100); void loop() value = digitalRead(switch1); if (HIGH = value) step(true,1600 * 5); value = digitalRead(switch2); if (HIGH = value) step(false,1600 * 5); 按照连线,控制电机转动的脉冲信号是通过Arduino上的数字I/O引脚5来提供的,而电机转动方向的控制则是通过数字I/O引脚6来实现的。两个按钮开关分别接在A0和A1号引脚上,对于数字I/O引脚14和15:int dirPin = 6;int stepperPin = 5;int switch1 = 14;int switch2 = 15;步进电机的转动主要是通过step()函数来实现,该函数有两个参数:第一个是转动的方向,分别代表正转和反转;第二个是步进数目,即给的控制脉冲的数目。通过修改每个脉冲间隔之间的时间长度,可以非常容易地调整电机转动的速度:/ speed controldelayMicroseconds(100);两个对step()函数的调用,分别控制电机正转/反转相应的圈数,由于每种电机步进的角度数不同,旋转一圈所需要的脉冲数也是不一样的,本设计中选用的是每圈200步的步进电机,使用EasyDriver时每圈为1600步,要使步进电机正转5圈,然后反转5圈,控制其这样转动的程序应为:step(true,1600 * 5);step(false,1600 * 5);在将代码下载到Arduino中并运行起来如图 3.5 程序运行图图3.5 程序运行图3.6 系统设计实体图在毕业论文的编辑其间,完成了对于相关步进电机的控制设计与实现,其主要目的是通过对步进数目的调节和函数调用,完成步进电机转速快慢、圈数和正/反转的调节,其具体连线方式如文中所示,其具体实体图如下图(3.6设计实体图)所示图3.6 设计实体图3.7 实验问题及解决1.线路连接问题,出现错误提示,如图3.7.1 运行错误1图3.7.1 运行错误1解决方法:重新连接线路后,设备正常。2.端口和板子没选对,出现错误提示,如图3.7.2 运行错误2图3.7.2 运行错误2解决办法:在设备管理器里面查看当前Arduino使用端口号,确认使用Arduino板型号,在设置里面将端口号和板子型号更换正确。3.步进电机不能正常转动,而是在原地抖动。解决方法:经研究步进电机抖动而不能转动是因为脉冲频率过高,所以将原程序:digitalWrite(stepperPin, HIGH);delayMicroseconds(50);digitalWrite(stepperPin, LOW);delayMicroseconds(50);改为:digitalWrite(stepperPin, HIGH);delayMicroseconds(500);digitalWrite(stepperPin, LOW);delayMicroseconds(500);从而增大每个脉冲间隔之间的时间长度,使步进电机转速降低,这样步进电机就能够正常转动了。第四章 总结与展望4.1 总结刚开始导师给我选定这个题目时,我根本就不知道Arduino和步进电机是什么东西,更别说步进电机的工作原理了。我上网查阅了许多关于Arduino和步进电机的资料,以及查看导师帮我找的相关资料后,才知道Arduino和步进电机是什么以及步进电机的工作原理。从而才写出了这篇设计。 本设计采用的是目前比较先进的技术Arduino来控制步进电机的转动。简易的过程描述:连接好线路后利用Arduino软件编译器进行程序编译,把编译好的程序烧入Arduino Duemilanove板中,Arduino Duemilanove微控制器通过控制EasyDriver驱动器来控制步进电机的转动。将设计程序烧入Arduino Duemilanove上调试运行后,最终结果与预期结果基本一致,即步进电机实现正转5圈,然后反转5圈,最后停止。本次的毕业设计虽然系统相对比较简单,但也比较实用。在此次的步进电机控制设计过程中,更进一步地熟悉有关步进电机控制电路的知识和具体应用。学会了利用Arduino软件进行程序的编译和调试,C语言程序的编写,程序的修改与运行等工作。并能根据步进电机转动的结果分析接线与程序的存在的问题和缺陷,从而进行线路的调整和程序的调试与完善。通过这次毕业设计使我明白了无论做什么事情想要成功,都必需要尽力去做,并且需要坚持下去。如果当时没有坚持去查找和学习步进电机和Arduino的相关知识,我也不可能写出这篇论文了。4.2 展望本设计利用硬件描述语音、Arduino Duemilanove微控制器板和EasyDriver驱动器结合进行步进电机控制的研究。从中取得了一些研究成果,提出了一些问题并且都解决了。而且从研究中可以看到Arduino技术的发展在一定程度上实现了硬件设计软件化。设计的过程变的相对简单,容易修改。相信随着电子技术的发展,步进电机控制的功能会更加智能化,满足人们的各种需要。参考文献1 李国厚. 步进电机驱动与控制系统的设计J. 煤矿机械,2009(2):115-1162 刘宝廷,程树康. 步进电机及其驱动控制系统M.哈尔滨:哈尔滨工业大学出版社,1997.11.3 陈隆昌,刘新正,阎治安.控制电机M.西安:西安电子科技大学出版社,2000.232-234.4 刘宝廷.步进电动机及其驱动控制系统M.哈尔滨:哈尔滨工业大学出版社,1999.99-100.5 王鸿钰.步进电机控制技术入门M.上海:同济大学出版社,1990.101-157.6 孙建辉,薛安克.步进电机升速过程的微机控制J.机电工程,1998(1):29-31.7 清华大学电子学教研组.数字电子技术基础简明教程M.北京:高等教育出版社,1996.286-289.8 童诗白.模拟电子技术基础M.北京:清华大学电子学教研组,1999.65-68.9 彭华林等. WORKBENCH50 电子线路仿真M,电子工业出版社,2000.16-20.10 刘振栋. 一种设计独特的步进电机接口电路J. 电工技术,2000(1):1.11 张小华,徐炳吉. 基于单片机和串口通信的步进电机控制研究

    注意事项

    本文(08通信何琛毕业论文.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开