基于单片机的步进电机转速控制全解

合集下载

基于单片机步进电机速度控制研究

基于单片机步进电机速度控制研究

基于单片机步进电机速度控制研究基于单片机步进电机速度控制研究步进电机是一种非常常见的电机类型,它在很多领域都有广泛的应用。

与传统的直流电机比较,步进电机具有很多优势,比如精度高、摩擦小、噪音小等。

但是为了更好地发挥步进电机的优势,需要对其进行精细的控制,包括速度的控制。

因此,基于单片机的步进电机速度控制研究非常重要,本文将对此进行深入探讨。

一、步进电机的原理和特点步进电机是一种能够将电脉冲转换成机械旋转的电动机。

它的核心是转子和定子之间的电磁相互作用,通过不同的脉冲信号控制电机的转动速度和方向。

步进电机的特点主要有以下几个方面:1. 精度高:步进电机的步进角度可以达到很小,因此可以实现精细的运动控制。

2. 摩擦小:步进电机与传统的直流电机相比,其内部的摩擦力要小很多,因此可以实现更加平稳的运动。

3. 噪音小:步进电机的电机转子比较轻,摩擦力较小,因此转动时噪音较小。

二、步进电机的速度控制步进电机的速度控制是一种基于脉冲信号的控制方式,根据输入的脉冲信号来控制电机的转动速度。

这种控制方式可以实现精确的速度控制,并且可以改变电机的运动方向。

步进电机的速度控制可以分为定速控制和变速控制。

定速控制是通过固定的脉冲频率来控制电机的速度,而变速控制则是通过改变脉冲频率来实现速度的变化。

三、基于单片机的步进电机速度控制基于单片机的步进电机速度控制是一种常见的控制方式。

它通过单片机的计算和控制来实现对电机的脉冲信号控制,可以更加灵活地实现对电机的控制。

常见的单片机包括STC89C52、STM32F103等。

步进电机的速度控制是通过控制脉冲信号的频率来实现的。

因此,为了实现步进电机的速度控制,需要设置一个计时器来定时产生脉冲信号。

计时器可以通过单片机内部的外设或者扩展外部芯片来实现,常用的计时器包括定时器0、定时器1等。

单片机的速度控制还可以实现反馈控制,常见的反馈控制方式包括编码器反馈和霍尔传感器反馈。

通过反馈控制,可以实现对电机速度的更加精准的控制,并且可以消除误差。

基于单片机步进电机速度控制研究.doc

基于单片机步进电机速度控制研究.doc

基于单片机步进电机速度控制研究本文对步进机一个全面的介绍,再基于单片机对步进电机的控制。

本文采用硬件控制系统,通过单片机MC9S12XS128与光电编码器对步进电机进行速度的控制。

最后对步进电机的速度曲线进行研究。

步进电机又称为脉冲电动机或者阶跃电动机,作为执行元件,是机电一体化的关键产品之一,广泛应用于各种自动化控制系统之中,比如当今电子钟表、工业机械手、包装机械和汽车制动元件的测试中等。

步进电机在未来应用前景会往更加小型化、从圆形电动机往方形电动机和四相、五相往三相电动机发展。

而这便需要对步进电机的控制提出了更高的要求。

1.步进电机综合介绍1.1.步进电机分类步进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型。

按结构特点电磁式步进电机可分为反应式(VR)、永磁式(PM)和混合式(HB)三大类;按相数分则可分为单相、两相和多相三种。

目前使用最为广泛的为反应式和混合式步进电机。

1.1.1.反应式步进电机反应式步进电机的转子是由软磁材料制成的,转子中没有绕组。

一般为三相,可实现大扭矩的输出,步进角一般为1.5度。

它的结构简单,成本低,但噪音大。

1.1.2.永磁式步进电机永磁式步进电机的转子是用永磁材料制成,转子本身就是一个磁源。

转子的极数和定子的极数相同,所以一般步距角比较大,步进角一般为7.5度或15度。

它输出转矩大,动态性能好,消耗功率小,但启动运行频率较低,还需正负脉冲供电。

1.1.3.混合式步进电机混合式步进电机综合了反应式和永磁式两者的优点。

它分为两相和五相,两相的步进角一般为1.8度,而五相的步进角为0.72度。

混合式与传统的反应式相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。

目前使用最为广泛的为反应式和混合式步进电机。

1.2.步进电机的工作原理步进电机是将电脉冲信号转化为角位移增量,也即是说,当步进驱动器接收到一个脉冲信号时,便驱动电机按照设定的方向转动一定的角位移量。

基于单片机的步进电机控制

基于单片机的步进电机控制

基于单片机的步进电机控制步进电机是一种常用的电动执行元件,在许多领域中都有广泛的应用。

为了实现对步进电机的精确控制,通常使用单片机来实现控制算法。

本文将介绍一个基于单片机的步进电机控制方案,并详细说明其实现过程和步骤。

首先,需要明确步进电机的工作原理。

步进电机通过控制电流的方向和大小来实现精确的旋转控制。

通常,步进电机由若干个驱动器组成,每个驱动器控制一个电机相位。

单片机通过控制驱动器的状态来控制步进电机的旋转。

1.硬件设计和搭建首先,需要根据步进电机的特性选择合适的单片机和驱动器。

单片机的选择应考虑其计算能力、IO口数量和通信接口等因素。

驱动器的选择应考虑其控制精度、最大电流和保护功能等因素。

然后,根据步进电机的型号和参数,设计并搭建电路板。

在电路板上,需要连接单片机、驱动器和步进电机,以及相应的电源和信号线。

2.控制算法设计在单片机中,需要设计控制算法来实现步进电机的精确控制。

常用的控制算法有定位控制、速度控制和加速度控制等。

根据实际需求,选择合适的控制算法,并编程实现。

3.编程实现根据控制算法的设计,使用合适的编程语言(如C语言或汇编语言)编写程序。

程序应包括步进电机的初始化代码、控制算法的实现代码和中断服务程序等。

在程序中,需要通过单片机的IO口控制驱动器,以改变驱动器的状态,从而控制步进电机的旋转方向和速度。

同时,还需要通过测量步进电机的位置和速度来实现闭环控制。

4.调试和优化完成编程后,需要进行调试和优化,以保证步进电机的控制精度和可靠性。

可通过调整控制算法的参数、增加传感器和使用滤波算法等方式来提高步进电机控制的性能。

综上所述,本文介绍了一个基于单片机的步进电机控制方案。

通过硬件设计和搭建、控制算法设计、编程实现和调试优化等步骤,可以实现对步进电机的精确控制。

这种方案在工业自动化、仪器仪表和机器人等领域具有广泛的应用价值。

基于单片机步进电机转速测速控制器

基于单片机步进电机转速测速控制器

摘要在电气时代的今天,电动机在工农业生产与人们日常生活中都起着十分重要的作用。

步进电机作为最常见的一种电机,作为一种数字伺服执行元件,步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,广泛应用在数控机床、机器人、自动化仪表等领域。

为了实现步进电机的简易运动控制,一般以单片机作为控制系统的微处理器,通过步进电机专用驱动芯片实现步进电机的速度和位置定位控制。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

本设计采用89C52单片机为核心设计,L297和L298为驱动芯片,用单片机内部的定时器改变CP脉冲的频率时间对步进电机的转速控制,实现电机调速与正反转功能,并用数字灯和数码管显示当前状态。

【关键词】步进电机单片机L297 L298IABSTRACTIn the electrical era, the motor plays an important role in indus trial and agricultural production and daily life. Stepper motor as th e most common type of motor, a digital servo actuator, stepper motor has a simple structure, reliable operation, easy to control, good con trol performance, widely used in CNC machine tools, robots, automated instrumentation areas. Generally based onsingle chip as the microproc essor control system for easy movement of the stepper motor control, speed and position of the stepper motor positioning control stepper m otor-specific driver chip.The stepper motor is the electrical pulses into angular displacement or linear displacement of the open-loop con trolcomponents.In the case of non-overloading, motor speed, the stop position depends only on the pulse frequency and pulse number, regard less of load changes, to the motor plus a pulse signal, the motor is turned to a step angle. The existence of this linear relationship, co upled with the characteristics of the stepper motor only periodic err or without accumulated error. Makes the speed, position and control t he stepper motor to control very simple. Governorgeneral of the stepp er motor is to change the frequency of the pulse input stepper motor to achieve the speed control of stepper motor, stepper motors each to a pulse rotating a fixed angle, so that you can control the stepper m otor a pulse to the next pulse time interval to change the frequency of the pulse, the delay length to specifically control the stepping a ngle to change the motor speed, in order to achieve the speed control of stepper motor.Stepper motor is a digital motor control, it will pulse signal ch anges in angular displacement, that is, to a pulse signal, the steppeIIr motor to rotate atan angle, so it is suitable for single-chip contr ol.This design uses a 89C52 microcontroller as the core design, the L297 and L298 driver chip, change the time of the CP pulse frequency of the stepper motor speed control, motor speed control with reversin g function using theinternal timer of the microcontroller, and digita l light and The digital tube displays the current status.【Key words】Stepper motor Microcontroller L297 L298III目录前言 (1)第一章绪论 (2)第一节单片机控制步进电机的背景与意义 (2)第二节国内外研究状况 (2)1.2.1 国外研究状况 (2)1.2.2 国内研究状况 (3)第三节本文主要研究内容 (3)第四节本章总结 (4)第二章系统概述 (5)第一节步进电机介绍 (5)2.1.1 步进电机的概述 (5)2.1.2 步进电机的工作原理 (8)2.1.3 步进电机的选择 (9)第二节步进电机驱动介绍 (10)2.2.1 步进电机驱动系统简介 (10)2.2.2 步进电机绕组的电气的特性 (11)第三节单片机介绍 (13)2.3.1 单片机原理概述 (13)2.3.2 单片机的应用系统 (13)2.2.3 AT89C52 (14)第四节核心芯片介绍 (18)2.4.1 L297的工作原理 (18)2.4.2 L297驱动相序的产生 (19)2.4.3 L298简介 (20)2.4.4 驱动方式的确定 (22)第五节本章总结 (22)- 1 -第三章系统的设计与实现 (23)第一节系统整体设计 (23)3.1.1 系统原理图 (23)3.1.2 系统整图 (23)第二节系统硬件电路的设计 (24)3.2.1 电源电路的设计 (24)3.2.2 按键电路的设计 (26)3.2.3 驱动电路的设计 (27)3.2.3 显示部分电路 (27)3.2.4 时钟部分 (28)3.2.5 抗干扰设计 (28)第三节系统软件程序设计 (29)3.3.1 系统主程序设计 (30)3.3.2 键盘控制程序设计 (30)3.3.3 正反转程序设计 (31)3.3.4 加减速程序设计 (32)3.3.5 显示子程序的设计 (33)3.3.6 定时中断流程图 (34)第四节本章总结 (35)第四章系统的测试 (36)第一节测试的步骤 (36)第二节测试的数据 (37)第三节理论与实际的分析 (38)第四节本章总结 (39)第五章总结与展望 (40)第一节总结 (40)第二节展望 (41)致谢 (42)参考文献 (43)- 2 -附录一 (44)英文原文 (44)英文翻译 (47)附录二 (50)源程序清单 (50)- 3 -前言步进电机广泛应用与ATM机、喷绘机、刻字机、写真机、喷图设备、医疗仪器及设备、计算机外设及海量储存设备、精密仪器、工业控制系统、办公自动化、机器人等领域。

基于单片机控制的步进电动机调速系统设计

基于单片机控制的步进电动机调速系统设计

论文题目:基于单片机控制的步进电动机调速系统设计摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。

在本设计方案中采用AT89C51型单片机内部的定时器改变CP脉冲的频率从而实现对步进电机的转速进行控制,实现电机调速与正反转的功能。

关键词:步进电机,单片机,调速系统Abstract:Step-by-step electric motor is the ring opening gating element changing electricity pulse signal into angular displacement or line displacement. Under the situation of must overload, the electric motor rotation rate , discontinuous location depend on pulse signal frequency and pulse number only , make free from being loaded with the effect changing ,but be that being added a pulse signal , the electric motor by electric motor is to have rotated a step spur angle. This gleam of the sexual relationships existence, adds step-by-step electric motor characteristics such as only having the cyclicity error but there being no accumulative error.Feasible simplicity controlling a field using step-by-step electric motor to come to control changeable extraordinary in speed , location etc.Step-by-step electric motor speed regulation general be change import step-by-step electric motor pulse frequency come true step-by-step electric motor speed regulation, because of step-by-step electric motor every be given to a pulse right away rotate one fixed angle, such right away not bad pass under the control of step-by-step electric motor a pulse arrive at next pulse period come to change pulse frequency,Come to control the speed regulation , realizing step-by-step electric motor thereby to come to change the electric motor rotation rate step-by-step angle concretely the deferred length. Frequency adopt the internal timer of AT89C51 type monolithic machine to change CP pulse in the design plan in realizes the speed regulation controlling , realizing an electric motor and the function that the positive and negative rotates being in progress to step-by-step electric motor rotation rate thereby.Key words:Step-by-step electric motor , monolithic machine , speed regulation system摘要 (1)Abstract: (2)第一章步进电机概述 (4)第一节步进电机的特点 (4)第二节步进电机的工作原理 (4)第三节步进电机的分类 (4)一步进电机分为三大类 (4)二步进电机的内外结构 (5)第四节步进电机详细调速原理 (6)第二章本次设计的基本要求 (6)第三章方案的论证 (6)第一节驱动方式的确定 (6)第二节基本方案的确定 (7)第四章硬件电路的设计 (7)第一节单片机的选择 (7)第二节驱动电路的选择 (8)第五章算法的设计 (11)第一节 PID 控制算法 (11)第六章软件的设计 (16)第一节显示子程序的设计 (16)第二节键盘子程序的设计 (16)第三节驱动程序流程的设计: (18)第四节正反转程序流程图 (19)一正反转程序流程图 (19)二转速快慢程序流程图 (20)三定时中断流程图 (21)第七章实验结果与分析 (22)第一节有关参数的计算与分析 (22)第二节理论与实际的分析 (22)结束语 (24)致谢 (24)参考文献 (25){{第一章步进电机概述第一节步进电机的特点1)一般步进电机的精度为步进角的3-5%,且不累积。

基于单片机的步进电机控制系统的设计

基于单片机的步进电机控制系统的设计

基于单片机的步进电机控制系统的设计
步进电机是一种特殊的电机,它的转动是以步进的形式进行的,每一次步进角度由控制电路发出的一个脉冲决定。

因此,基于单片
机的步进电机控制系统需要实现以下功能:
1. 产生脉冲信号:单片机需要通过定时器等模块产生相应的脉
冲信号,以控制步进电机的运动。

2. 识别旋转方向:步进电机需要能够前进和后退,因此单片机
需要实时检测步进电机的转动方向,并控制脉冲信号发生的顺序。

3. 控制转速:控制步进电机转速需要通过控制脉冲信号的频率
来实现,单片机需要动态地调整脉冲信号的频率,从而控制欲速度。

下面是实现步进电机控制的一种基本算法:
1. 设置电机控制端口,初始化各参数。

2. 等待步进电机稳定。

在控制电路上电时,如果步进电机没有
停在起始位置,需要先手动将步进电机转动到起始位置,然后等待
电机稳定。

3. 根据旋转方向和转速控制脉冲信号产生频率。

根据步进电机
的旋转方向,确定脉冲信号产生的顺序,然后通过定时器等模块产
生相应的脉冲信号,从而控制步进电机旋转。

4. 根据指令调整转速。

根据实际需求调整步进电机的转速,即
调整脉冲信号频率。

上述算法是一个最基本的控制算法,具体的实现还需要考虑步
进电机控制的精度、错误处理等方面的问题。

基于单片机的步进电机控制系统设计方案

基于单片机的步进电机控制系统设计方案

D10-基于单片机旳步进电机控制系统一、理解什么是步进电机以及其工作原理步进电机是数字控制电机,步进电机旳运转是由电脉冲信号控制旳,其角位移量或线位移量与脉冲数成正比,每个一种脉冲,步进电机就转动一种角度(不距角)或前进、倒退一步。

步进电机旋转旳角度由输入旳电脉冲数确定,因此,也有人称步进电机为数字/角度转换器。

步进电机旳各相绕组按合适旳时序通电,就能使步进电机转动。

当某一相绕组通电时,对应旳磁极产生磁场,并与转子形成磁路,这时,假如定子和转子旳小齿没有对齐,在磁场旳作用下,由于磁通具有力图走磁阻最小途径旳特点,则转子将转动一定旳角度,使转子与定子旳齿互相对齐,由此可见,错齿是促使电机旋转旳原因。

二、步进电机旳特点(1)步进电机旳角位移与输入脉冲数严格成正比,因此当它转一转后,没有合计误差,具有良好旳跟随性。

(2)由步进电机与驱动电路构成旳开环数控系统,既非常以便、廉价,也非常可靠。

同步,它也可以有角度反馈环节构成高性能旳闭环数控系统。

(3)步进电机旳动态响应快,易于启停、正反转及变速。

(4)速度可在相称宽旳范围内平滑调整,低速下仍能保证获得很大旳转矩,因此一般可以不用减速器而直接驱动负载。

(5)步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电源。

(6)步进电机自身旳噪声和振动比较大,带惯性负载旳能力强。

三、步进电机旳控制步进电机旳控制重要包括换相次序旳控制、速度控制、速度控制、加减速控制等,控制系统就是运用单片机旳功能实现以上控制旳系统,即本次设计旳目旳。

四、示意图五、硬件设计计划本设计旳硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。

最小系统只要是为了使单片机正常工作。

控制电路只要由开关和按键构成,由操作者根据对应旳工作需要进行操作。

显示电路重要是为了显示电机旳工作状态和转速。

驱动电路重要是对单片机输出旳脉冲进行功率放大,从而驱动电机转动。

(1)控制电路根据步进电机旳工作原理可以懂得,步进电机转速旳控制重要是通过控制通入电机旳脉冲频率,从而控制电机旳转速。

基于单片机的步进电机转速控制

基于单片机的步进电机转速控制

电子器件市场调研与系统设计实践专 业: *** 班 级: 姓 名: 学 号: 指导教师: ****大学****学院**** 年 **月**日基于单片机得步进电机调速与正反转控制系统1 系统要求步进电动机就是用电脉冲信号进行控制,将电脉冲信号转换成相应得角位移或线位移得微电动机,它最突出得优点就是可以在宽广得频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且用其组成得开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛得应用。

随着微电子与计算机技术得发展,步进电动机得需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要得意义、本设计基于单片机控制得步进电机设计课题就是以单片机为主控制模块,从而实现电机得启停、正反转与调速得目得得一个设计课题。

在课题设计之前,通过互联网了解到了当前步进电机得发展状况及发展前景。

同时也了解了当今最先进得步进电机所具备得功能,方便为课题设计提供参考与借鉴;最后,通过画原理框图得形式,以最直观得方式为整个课题设计制定了流程及要求。

1.1 设计目得《电子器件市场调研与系统设计实践》就是本专业得重要实践教学环节,强调实际应用技能训练、结合自动化专业系列课程得学习,培养我们对电子器件得认知,锻炼我们得市场调研能力,加深我们对自动化专业系列课程知识得掌握。

通过课程设计环节培养学生与人交往、独立思考与处理问题得能力、1。

2 设计内容及要求本次课程设计所选得步进电机就是四相步进电机,采用得方法就是利用单片机控制步进电机得驱动。

步进电机就是一种将电脉冲转化为角位移得执行机构、当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定得方向转动一个固定得角度(称为“步距角"),它得旋转就是以固定得角度一步一步运行得。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位得目得;同时可以通过控制脉冲频率来控制电机转动得速度与加速度,从而达到调速得目得、本次课程设计就就是通过改变脉冲频率来调节步进电机得速度得,并且通过数码管显示其转速得级别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子器件市场调研与系统设计实践专 业: *** 班 级: 姓 名: 学 号: 指导教师: ****大学****学院**** 年 **月**日基于单片机的步进电机调速与正反转控制系统1 系统要求步进电动机是用电脉冲信号进行控制,将电脉冲信号转换成相应的角位移或线位移的微电动机,它最突出的优点是可以在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,并且用其组成的开环系统既简单、廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。

随着微电子和计算机技术的发展,步进电动机的需求量与日俱增,研制步进电机驱动器及其控制系统具有十分重要的意义。

本设计基于单片机控制的步进电机设计课题是以单片机为主控制模块,从而实现电机的启停、正反转和调速的目的的一个设计课题。

在课题设计之前,通过互联网了解到了当前步进电机的发展状况及发展前景。

同时也了解了当今最先进的步进电机所具备的功能,方便为课题设计提供参考和借鉴;最后,通过画原理框图的形式,以最直观的方式为整个课题设计制定了流程及要求。

1.1 设计目的《电子器件市场调研与系统设计实践》是本专业的重要实践教学环节,强调实际应用技能训练。

结合自动化专业系列课程的学习,培养我们对电子器件的认知,锻炼我们的市场调研能力,加深我们对自动化专业系列课程知识的掌握。

通过课程设计环节培养学生与人交往、独立思考和处理问题的能力。

1.2 设计内容及要求本次课程设计所选的步进电机是四相步进电机,采用的方法是利用单片机控制步进电机的驱动。

步进电机是一种将电脉冲转化为角位移的执行机构。

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

本次课程设计就是通过改变脉冲频率来调节步进电机的速度的,并且通过数码管显示其转速的级别。

另外通过单片机实现它的正反转,步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。

2 系统方案及原理2.1 系统设计方案该步进电机调速系统主要具有电机启停、调速、正反转控制和显示功能,现将该步进电机调速控制系统实现的所有功能的具体步骤整理如下:(1)步进电机启停功能。

单片机预设初值,预设初值脉冲发送给驱动器,驱动步进电机按预设的最低速运行。

(2)步进电机调速功能。

将产生的不同频率和脉宽的脉冲信号输入到驱动器中,驱动电机在单位时间内转动若干个步角距。

(3)步进电机转向控制。

通过改变步进电机绕组的通电相序,改变转子的转向,从而实现步进电机的正反转控制功能。

(4)复位功能。

通过复位单片机,使单片机输出的脉冲复位为预设初值,从而使步进电机复位为预设最低速度运行。

(5)显示功能。

通过在四位一体数码管中显示设定步进电机目前的转速和转向。

2.2 自动浇花系统原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。

系统是单片机控制,整个设计的电压是5v,所以电机的电压也要选择5v可以驱动的,所以本实验选择28BYJ-48步进电机作为设计对象,步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。

当通电状态的改变完成一个循环时,转子转过一个齿距。

原理框图如图1。

图1步进电机控制系统原理框图3 市场调研及硬件设计3.1市场调研认真分析了题目所要求的功能后,进行了系统设计。

对方案进行了仿真实验,并对所需的器件进行了市场调研,通过不同的途径,包括淘宝店、天猫购物、实体店,对比分析后,最优方案是通过淘宝店购买元器件。

主要的元器件罗列如表1。

通过硬件电路搭建后,完成实物电路板的焊接过程,实物图见附录A。

3.2电路原理图从控制系统的大小和复杂度出发,必须考虑单片机的基本参数和增强功能。

前者往往需要考虑芯片的速度,ROM容量,I/O引脚数量和工作电压(1.8V/3V/5V)等,后者则包括是否拥有看门狗,双指针,双串口,实时时钟,CAN接口,SPI 接口,USB接口等附加模块。

本设计中受控对象只有超声波、声光报警,复杂度低,采用低端的通用的单片机芯片就能够满足要求。

P0口为四位一体数码管的段选。

P1.0为步进电机启停按键定义,P1.1为步进电机正反转按键定义,P3.0为步进电机加速按键定义,P3.1为步进电机减速按键定义,P2.0、P2.1、P2.2、P2.3为四位一体数码管的位选。

P2.7、P2.6、P2.5、P2.4为脉冲信号输入端定义,原理图如图2。

图2 系统原理图4 硬件调试及分析4.1 Proteus软件仿真在实物制作前,需要首先在Proteus仿真软件中对电路进行设计(即对硬件电路图进行合理的搭配,如图2),通过仿真软件测试电路与编译的程序相配合,检查外围电路设计是否合理,程序编译是否正确,以及软件和硬件是否能够正常配合工作,实现设计中的要求,若仿真电路没有问题,就可以在实际电路中对实物进行焊接制作。

我选择单片机仿真软件Proteus8.2仿真以及Keil4 编译。

源程序见附录B。

4.2 按键电路按键操作在四位一体数码管上显示步进电机的转速和转向,有启停按键,正反转按键以及加减速按键,如图3。

图3 按键电路图4.3 显示电路检测到土壤湿度湿度和预先设置的上下限值,显示在液晶显示屏上,如图4。

图4 步进电机一档速正转4.4 驱动电路STC89C51RC的P2口作为驱动电路的控制引脚,P2输入高电平时,对应的输出为0,LED灯亮,步进电机转动,水泵工作;P2口输入低电平时,对应输出为1,LED灯熄灭,步进电机停止转动,如图5。

图5 驱动电路5 总结在把理论设计转换成实物的整个过程,如:电路设计、分析计算、画电路图、焊接电路、检查调试、软件流程控制设计分析、编写调试软件、烧写软件到整个软硬件系统的调试,最后直到系统完成。

其中整个系统的前期准备是首先必须做到位的,如控制什么、用什么控制、得到什么结果,进而对各部分应选择具体的芯片作进一步的考虑,以使系统得到最优的表现。

通过本课题,一方面我在查阅资料的基础上,了解STC89C51单片机控制的一些基本技术,掌握其控制系统的分析方法与实现方法,能对单片机外围电路设计进行系统学习与掌握;另一方面,在设计步进电机控制系统的硬件电路,控制程序和相应的电路图时,应充分运用说学知识,善于思考,琢磨,分析。

我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。

学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。

这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。

参考文献[1] 王思明,张金敏,苟军年.单片机原理及应用系统设计[M].北京:科学出版社,2012.[2] 周润景,刘晓霞.基于PROYEUS的电路设计、仿真与制板[M]. 北京:电子工业出版社,2013.8.[3] 潭浩强.C 语言程序设计.清华大学出版社[M].2005.07.[4] 张毅刚,MCS-51单片机应用设计[M].哈尔滨工业大学出版社.2004.[5] 刘乐喜.微机计算机接口技术及应用[M].华中科技大学出版社.2005.08.[6] 冯博琴.微型计算机原理与接口技术[M].清华大学出版社.2004.附录A 实物图附录B 源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define led P0//数码管段选#define haha P2sbit s1 = P1^0;sbit s2 = P1^1;sbit s3 = P3^0;sbit s4 = P3^1;//按键定义,s1正转,s2反转,s3加1,s4减1sbit wei3 = P2^3;sbit wei2 = P2^2;sbit wei1 = P2^1;sbit wei0 = P2^0;//数码管位选定义sbit a = P2^7;sbit b = P2^6;sbit c = P2^5;sbit d = P2^4;//脉冲信号输入端定义uchar code display[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳数码管驱动信号0---9,不显示uchar code time_counter[10][2]={{0xda,0x1c},{0xde,0xe4},{0xe1,0xec},{0xe5,0xd4},{0xe9,0xbc}, //9.7 ----1ms{0xed,0xa4},{0xf1,0x8c},{0xf5,0x74},{0xf9,0x5c},{0xfc,0x18}};uchar code qudong[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90};uchar num1 = 0;//控制取励磁信号变量uchar num2 = 8;uchar k=1;//加减档位控制,1为最小档bit flag1 = 0;//初始正转,正反转标志uchar buf[4]={0,10,10,1};//数码管显示缓存,正转,不显示,不显示,显示1档位,高----低//================================定时器0/1初始化函数================================void T0_T1_init(){TMOD = 0x11;//定时器0/1均工作于方式1,16位计时方式TH0 = (65536 - 4000)/256;TL0 = (65536 - 4000)%256;//定时器0,定时4ms用于数码管扫描显示TH1 = time_counter[k-1][0];TL1 = time_counter[k-1][1];//定时器1,定时10ms用于步进电机转速控制TR0 = 1;TR1 = 1;ET0 = 1;ET1= 1;//开定时器中断EA = 1;//开总中断}//================================ms级延时函数=======================================void delay1m(uint x){uint i,j;for(i=0;i<x;i++) //连数x次,约x msfor(j=0;j<120;j++); //数120 次,约1 ms}//================================主函数=============================================void main(){T0_T1_init();buf[1] = 10;//不显示while(1){if(s1 == 0){delay1m(3);if(s1 == 0){flag1 = 0;//正转buf[0] = 0;//最高位显示0haha = 0x00;//停止{k--;if(k == 0){k = 10;}buf[2]= k/10;buf[3]= k%10;}flag1 = 1;//反转buf[0] = 1;//最高位显示1haha = 0x00;//停止}while(!s2);}if(s3 == 0) //速度加1档{delay1m(3);if(s3 == 0){k++;if(k > 10 ){k = 1;}buf[2]= k/10;buf[3]= k%10;}while(!s3);}if(s4 == 0) //速度减1档{delay1m(3);if(s4 == 0){k--;if(k == 0){k = 10;}buf[2]= k/10;buf[3]= k%10;}while(!s4);}}}//==================================定时器0中断函数,用于数码管扫描显示====================================void time0_interrupt()interrupt 1{static num = 0;TH0 = (65536 - 4000)/256;TL0 = (65536 - 4000)%256;//定时器0,定时4ms用于数码管扫描显示switch(num){case 0:wei3=1;wei2=1;wei1=1;wei0=0;led = display[buf[3]];break;case 1:wei3=1;wei2=1;wei1=0;wei0=1;led = display[buf[2]];break;case 2:wei3=1;wei2=0;wei1=1;wei0=1;led = display[buf[1]];break;case 3:wei3=0;wei2=1;wei1=1;wei0=1;led = display[buf[0]];break;}num++;if(num == 4)num = 0;}//==================================定时器1中断函数,用于脉冲频率控制=====================================void time1_interrupt()interrupt 3{static num1 = 0;static num2 = 0;TH1 = time_counter[k-1][0];TL1 = time_counter[k-1][1];//定时器1,定时1 用于步进电机转速控制if(flag1 == 0)//正转{switch(num1){case 0:a = 1;b = 0;c = 0;d = 0;break;case 1:a = 1;b = 1;c = 0;d = 0;break;case 2:a = 0;b = 1;c = 0;d = 0;break;case 3:a = 0;b = 1;c = 1;d = 0;break;case 4:a = 0;b = 0;c = 1;d = 0;break;case 5:a = 0;b = 0;c = 1;d = 1;break;case 6:a = 0;b = 0;c = 0;d = 1;break;case 7:a = 1;b = 0;c = 0;d = 1;break;}num1++;if(num1 == 8)num1 = 0;}else //反转{switch(num2){case 0:a = 1;b = 0;c = 0;d = 1;break;case 1:a = 0;b = 0;c = 0;d = 1;break;case 2:a = 0;b = 0;c = 1;d = 1;break;case 3:a = 0;b = 0;c = 1;d = 0;break;case 4:a = 0;b = 1;c = 1;d = 0;break;case 5:a = 0;b = 1;c = 0;d = 0;break;case 6:a = 1;b = 1;c = 0;d = 0;break;case 7:a = 1;b = 0;c = 0;d = 0;break;}num2++;if(num2 == 8)num2 = 0;}}。

相关文档
最新文档