步进电机控制系统设计
步进电机位置控制系统设计

23 6 程 。本系统正是结 合单片机技术 , 指导 学 A 8 S 1 的 P 、 1 P 三 组 l 口 , O AM一 H A1 P步 进 电机 驱 动 器 。 该 驱 动 T9 5 OP 、2 / 0 P 器主要用于驱动双极性步进 电机 。采用全 新 的 电流 控 制 技 术 , 现 电机 电流 的 精 确 实 控 制 , 效 降 低 输 出 力 矩 脉 动 , 高 了细 有 提
引脚 插 针
C 3
J P
1个
1个
u hr c a
ds l ip
【 】 =
{x O O f .x 4O b ,x 90 9 ,x 2O O c ,x 9O a ,x O0 9 ,x 20 8 ,x
屯子 世 界
— —
・ 1. 2 0 01 3
4 — 7 —
简易电路集锦 ・
・
简 易 电路集锦 ・
步进 电机位置控制 系统设 计
无 锡 技 师 学 院 电气 工 程 系 范 文字
1口外接 控制按 主要功 能 口用作数码 管 的段选 。P 在 工 业 控 制 系 统 中 , 其 是 机 械 加 工 生制作步进 电机位置控 制系统 , 尤 P. P .控 行 业 , 多 设 备 需 要 实 现 位 置 控 制 , 些 通 过 按 键 实 现 步 进 电 机 正 、 转 、 止 及 钮 , 1O控制步进 电机正 转 , 11 制步 很 这 反 停 进 电机 反 转 , 12控 制步 进 电机 自动 往 返 P. 并 设 备 的控 制 核 心 就 是 实 现 步 进 电机 运 动 自动 往 返 运行 , 实 时 显 示 步 进 电机 控 制 P. 14和 的控 制 。 步 进 电机 的 稳 定 、 靠 运 行 直 接 的位移量。借此希望提高学生对单 片机 的 运转 , 13控 制步 进 电机 停转 。 P - 可 P . 功 能 扩 展 控 制 按 钮 , 根 据 需 要 设 15为 可 关系到工业控制 的精度 和设备 的质 量 , 特 学 习兴 趣 以及 对步 进 电机 的理 解 。 别是在高精度数控 系统 中, 更是要 求步 进 电机 能够精确运行。如何实现对步进 电机
步进电机运动控制系统设计

步进电机运动控制系统设计设计时考虑到CPU在执行指令时可能受到干扰的冲击,导致程序”跑飞”或者进入”死循环”,因此,设计了看门狗电路,使用的是MAXIM公司生产的微处理系统监控集成芯片MAXI813。
本文还详细地给出了相关的硬件框图和软件流程图,并编制了该汇编程序。
步进电机最早是在1920年由英国人所开发。
1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。
以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的系统中。
在生产过程中要求自动化、省、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微和技术的发展,步进电机的需求量与日俱增,在各个国民领域都有应用。
步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。
步进电机可以直接用数字信号驱动,使用非常方便。
一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。
步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。
在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。
因此非常适合于单片机控制。
步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。
步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。
传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。
步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。
基于PID控制的步进电机位置闭环控制系统设计

基于PID控制的步进电机位置闭环控制系统设计一、引言在现代自动化控制系统中,步进电机广泛应用于各种精密定位和定量控制需求的场景。
步进电机的控制涉及到位置的精确定位和稳定性的维持,这就需要一个有效的闭环控制系统来实现。
PID控制器被广泛应用于步进电机的闭环控制系统设计中,本文将探讨基于PID控制的步进电机位置闭环控制系统的设计原理和实现方法。
二、步进电机简介步进电机是一种特殊的直流电动机,通过控制脉冲信号的频率和顺序来实现精确控制。
步进电机的圆周分为若干等角度的步进角,每个步进角对应一个旋转角度,这使得步进电机在控制方面更加便捷和精确。
由于步进电机无需传感器反馈,因此常用于定量控制和精确位置控制的场合。
三、PID控制器原理PID控制器是一种经典的闭环控制器,其由比例(P)、积分(I)、微分(D)三个部分组成。
比例控制决定输出与偏差的比例关系,积分控制消除系统稳态误差和提高系统的响应速度,微分控制用于抑制系统对于负荷变化的敏感性。
PID控制器采用反馈控制策略,利用实际输出和期望输出之间的偏差来调整控制量。
四、步进电机位置闭环控制系统设计步进电机的位置闭环控制系统设计基于PID控制器。
首先,需要传感器来获得实际位置信息,然后与期望位置进行比较以获取偏差。
接下来,将偏差作为输入,经过PID控制器计算出控制量,并输出给步进电机驱动器。
步进电机驱动器根据控制量控制步进电机的旋转,从而实现位置的精确控制。
五、传感器选择为了获取步进电机的实际位置信息,需要选择合适的传感器。
常用的传感器包括光电编码器和霍尔传感器。
光电编码器具有高精度和高分辨率的特点,但价格较高;霍尔传感器则具有较低的价格和较高的可靠性,但分辨率较低。
根据具体需求和预算可选择合适的传感器。
六、PID参数调整PID控制器的性能很大程度上取决于参数的选择。
比例参数决定了响应的速度和稳定性,过大的比例参数会导致系统震荡,过小则导致响应速度慢;积分参数消除稳态误差,过大的积分参数会导致系统震荡,过小则无法消除稳态误差;微分参数能够抑制系统对负荷变化的敏感性,过大的微分参数会导致系统噪声,过小则无法起到抑制作用。
基于stm32的步进电机控制系统设计与实现

基于stm32的步进电机控制系统设计与实现基于STM32的步进电机控制系统设计与实现1. 概述步进电机是一种非常常见的电动机,在许多自动化系统和工控设备中得到广泛应用。
它们具有精准的定位能力和高效的控制性能。
本文将介绍如何使用STM32微控制器来设计和实现步进电机控制系统。
2. 硬件设计首先需要确定步进电机的规格和要求,包括步距角、相数、电流和电压等。
根据步进电机的规格,选择合适的驱动器芯片,常见的有L298N、DRV8825等。
接下来,将选定的驱动器芯片与STM32微控制器相连。
通常,步进电机的控制信号需要使用到微控制器的GPIO引脚,同时由于步进电机的工作电流比较大,需要使用到微控制器的PWM输出信号来调节驱动器芯片的电流限制。
除此之外,还需要一个电源电路来提供驱动器和步进电机所需的电源。
可以选择使用一个电源模块,也可以自行设计电源电路。
3. 软件设计软件设计是步进电机控制系统的核心部分,主要包括步进电机驱动代码的编写和控制算法的实现。
首先,需要在STM32的开发环境中编写步进电机驱动代码。
根据所选的驱动器芯片和步进电机规格,编写相应的GPIO控制代码和PWM输出代码。
同时,可以添加一些保护性的代码,例如过流保护和过热保护等。
接下来,需要设计和实现步进电机的控制算法。
步进电机的控制算法通常是基于位置控制或速度控制的。
对于位置控制,可以使用开环控制或闭环控制,闭环控制通常需要使用到步进电机的编码器。
对于开环控制,可以通过控制步进电机的脉冲数来控制位置。
通过控制脉冲的频率和方向,可以实现步进电机的转动和停止。
这种方法简单直接,但是定位精度有限。
对于闭环控制,可以使用PID控制算法或者更高级的控制算法来实现位置控制。
通过读取步进电机的编码器反馈信号,可以实时调整控制输出。
这种方法可以提高定位精度和抗干扰能力,但是算法实现相对复杂。
4. 系统实现在完成硬件设计和软件设计后,可以进行系统的调试和实现。
基于51单片机的步进电机控制系统设计

基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。
本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。
一、硬件设计步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。
1.51单片机选择由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。
本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。
2.外部电源步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。
电源电压和电流的大小需要根据具体的步进电机来确定。
3.步进电机驱动模块步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。
常用的步进电机驱动芯片有L297、ULN2003等。
4.其他辅助电路为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。
这些电路的设计需要根据具体的应用来确定。
二、软件设计1.系统初始化系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。
根据实际需求还可以进行其他模块的初始化设置。
2.步进电机驱动程序步进电机的驱动程序主要通过脉冲信号来控制电机的转动。
脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。
脉冲信号可以通过定时器产生,也可以通过外部中断产生。
3.运动控制算法步进电机的运动控制可以采用开环控制或闭环控制。
开环控制简单,但无法保证运动的准确性和稳定性;闭环控制通过对电机转动的反馈信号进行处理来调整脉冲信号的生成,从而实现精确的运动控制。
4.其他功能设计根据具体的应用需求,可以加入其他功能设计,如速度控制、位置控制、加速度控制等。
基于51单片机的步进电机控制系统设计与实现

步进电机工作原理
步进电机是一种基于磁场的控制系统,工作原理是当电流通过定子绕组时,会 产生一个磁场,该磁场会吸引转子铁芯到相应的位置,从而产生一定的角位移。 步进电机的角位移量与输入的脉冲数量成正比,因此,通过控制输入的脉冲数 量和频率,可以实现精确的角位移和速度控制。同时,步进电机具有较高的分 辨率和灵敏度,可以满足各种高精度应用场景的需求。
二、系统设计
1、硬件设计
本系统主要包括51单片机、步进电机、驱动器、按键和LED显示等部分。其中, 51单片机负责接收按键输入并控制步进电机的运动;步进电机用于驱动负载运 动;驱动器负责将51单片机的输出信号放大,以驱动步进电机。LED显示用于 显示当前步进电机的状态。
2、软件设计
软件部分主要包括按键处理、步进电机控制和LED显示等模块。按键处理模块 负责接收用户输入,并根据输入控制步进电机的运动;步进电机控制模块根据 按键输入和当前步进电机的状态,计算出步进电机下一步的运动状态;LED显 示模块则负责实时更新LED显示。
三、系统实现
1、按键输入的实现
为了实现按键输入,我们需要在主程序中定义按键处理函数。当按键被按下时, 函数将读取按键的值,并将其存储在全局变量中。这样,主程序可以根据按键 的值来控制步进电机的转动。
2、显示输出的实现
为了实现显示输出,我们需要使用单片机的输出口来控制显示模块的输入。在 中断服务程序中,我们根据设定的值来更新显示模块的输出,以反映步进电机 的实时转动状态。
基于单片机的步进电机控制系统需要硬件部分主要包括单片机、步进电机、驱 动器、按键和显示模块等。其中,单片机作为系统的核心,负责处理按键输入、 控制步进电机转动以及显示输出等功能。步进电机选用四相八拍步进电机,驱 动器选择适合该电机的驱动器,按键用于输入设定值,显示模块用于显示当前 步进电机的转动状态。
基于stm32103的步进电机控制系统设计

基于stm32103的步进电机控制系统设计步进电机是一类常用的电机,广泛应用于控制系统中。
本文旨在介绍步进电机及其在控制系统中的应用,并概述本文的研究目的和重要性。
步进电机是一种将电脉冲信号转换为旋转运动的电机。
构成和工作方式步进电机由定子、转子和驱动电路组成。
定子是电磁铁,可以根据输入的电流控制电磁铁产生磁场。
转子是由磁性材料制成的旋转部分,定子的磁场会使得转子受到磁力的作用而旋转。
步进电机的工作方式是通过不断输入脉冲信号来控制电机的运动。
每一次输入一个脉冲信号,步进电机就会转动一定的步进角度。
步进角度取决于步进电机的类型和驱动电路的设置,常见的步进角度有1.8度和0.9度。
输入脉冲信号旋转的步进角度输入脉冲信号的频率和方向决定了步进电机的转动速度和方向。
每一个脉冲信号的到来,步进电机会按照预定的步进角度旋转。
例如,若步进电机的步进角度为1.8度,那么每接收一个脉冲信号,步进电机就会旋转1.8度的角度。
综上所述,步进电机通过输入脉冲信号实现了精确而可控的旋转运动。
本文将阐述基于STM单片机的步进电机控制系统设计。
该设计包括硬件电路设计和软件程序设计。
本文将介绍如何通过STM与步进电机进行通信和控制,以实现预定的步进运动。
步进电机控制系统的硬件电路设计主要包括以下部分:步进电机驱动电路:通过STM的GPIO口控制步进电机驱动电路,实现电机的正转、反转和停止等操作。
电源电路:为步进电机提供稳定的电源供电,保证系统正常工作。
外设接口:设计相应的接口电路,实现STM与外部设备的连接。
步进电机控制系统的软件程序设计主要涉及以下方面:初始化设置:在程序开始运行时,对STM进行初始化设置,包括引脚配置、时钟设置等。
步进电机驱动程序:编写相应的程序代码,通过GPIO口控制步进电机的驱动电路,实现电机的正转、反转和停止等操作。
运动控制程序:编写相应的程序代码,通过控制步进电机的驱动电路,实现预定的步进运动,包括移动一定的步数、以特定的速度旋转等。
基于单片机的步进电机控制系统设计

基于单片机的步进电机控制系统设计引言:步进电机是一种常用的电机类型,具有精准的位置控制、高效的能量转换等特点。
在许多自动化设备中广泛应用,如数控机床、3D打印机、机器人等。
本文将以基于单片机的步进电机控制系统设计为主题,介绍系统的硬件设计、软件设计以及实验验证。
一、硬件设计1.步进电机选型:根据实际应用需求,选择适当的步进电机。
包括步距角、转速范围、扭矩要求等等。
2.电源设计:步进电机需要驱动电压和电流,根据步进电机的额定电压和电流选用适当的电源。
3.驱动电路设计:步进电机通常需要驱动电路来控制电流和脉冲序列。
常见的驱动电路有全桥驱动器、半桥驱动器等。
4.信号发生器设计:步进电机通过脉冲信号来控制转动角度和速度,因此需要信号发生器来产生合适的脉冲序列。
常见的信号发生器有定时器、计数器等。
5.单片机接口设计:单片机作为步进电机控制系统的核心,需要与其他硬件进行通信。
因此需要设计合适的接口电路,将单片机的输出信号转换为驱动电路和信号发生器所需的电压和电流。
二、软件设计1.单片机程序框架设计:根据具体的单片机型号和开发环境,设计合适的程序框架。
包括初始化设置、主循环、中断处理等。
2.脉冲生成程序设计:根据步进电机的控制方式(如全步进、半步进、微步进等),设计脉冲生成程序。
通过适当的延时和输出信号控制,产生合适的脉冲序列。
3.运动控制程序设计:设计运动控制程序,实现步进电机的前进、后退、加速、减速等功能。
根据具体需求,可以设计不同的运动控制算法,如速度环控制、位置环控制等。
4.保护机制设计:为了保护步进电机和控制系统,设计合适的保护机制。
如过流保护、过压保护、过载保护等。
三、实验验证1.硬件连接:将步进电机、驱动电路和单片机按照设计进行连接。
2.软件调试:通过单片机编程,调试程序代码。
确保脉冲生成、运动控制等功能正常工作。
3.功能测试:对步进电机控制系统进行功能测试,包括正转、反转、加速、减速等功能。
通过观察步进电机的运动状态和测量相关参数来验证系统设计的正确性和性能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第1章 DSP步进电机控制系统简介 (1)1.1 TMS320LF2407 DSP简介 (1)1.2两相步进电机结构 (2)1.3两相步进电机的原理 (3)1.4两相步进电机的供电方式 (3)第2章 DSP硬件系统设计 (4)2.1 系统总框图 (4)2.2 各硬件介绍 (4)2.2.1 TMS320LF2407芯片说明 (4)2.2.2电源电路 (5)2.2.3复位电路 (6)2.2.5 LED电路 (7)2.2.6 RAM (7)2.2.7 步进电机驱动电路 (8)2.2.8 74LS08电路 (9)第3章软件设计 (10)3.1 程序设计思路 (10)3.2 程序流程图 (10)3.3 程序设计 (11)3.3.1 初始化程序 (11)3.3.2 键盘扫描程序 (12)3.3.3 中断服务程序 (13)3.3.4 主程序 (14)第4章编程与调试 (18)4.1 调试步骤 (18)4.2 调试结果 (19)第5章致谢与总结 (20)附录 (21)总电路原理图 (21)参考文献 (22)第1章 DSP步进电机控制系统简介1.1 TMS320LF2407 DSP简介TMS320LF240x系列DSP是专为数字电机控制和其它控制系统而设计的。
它内部不但有高性能的C2xx CPU内核,配置有高速数字信号处理的结构,且有单片电机控制的外设。
TMS LF2407将数字信号处理的高速运算功能与面向电机的强大控制功能结合在一起,成为传统的多微处理器单元和多片系统的理想替代品,可用于控制功率开关转换器,可提供多电机的控制等。
TMS LF2407采用诸如自适应控制、卡尔曼滤波和控制等先进的控制算法,支持多项式的高速实时算法,因而可减少力矩纹波、降低攻耗、减少振动,从而延长被控设备的寿命,TMS320LF2407采用4级流水线结构与改进的哈佛结构。
片内外设及存储器资源如下:(1)双8路或单16路的10位A/D转换器,转换时间为375ns(该指标视型号而不同)。
(2)片内存储器:32K字闪存、2.5K字RAM,其中包含544字的双端口RAM(DARAM),2K字的单端口RAM(SARAM)。
(3)41个可独立编程的多路复用I/O引脚。
(4)两个事件管理器EV A、EVB,适用于控制各种类型的电机,为工业自动化方面的应用奠定了基础。
两个事件管理器EV A、EVB包含有如下资源:2个16位通用定时器;8个16位PWM通道;对外部事件进行定时捕捉的3个捕捉单元,其中2个具有直接与光电编码器输出脉冲相连接的能力;防止击穿故障的可编程PWM死区控制。
(5)串行通信接口SCI模块。
(6)串行外设接口SPI模块。
(7)带锁相环PLL的时钟模块。
(8)5个外部中断(复位、两个驱动保护中断与两个可屏蔽中断)。
(9)CAN 2.0B模块,即控制器局域网模块。
(10)看门狗(WD)定时器模块。
(11)可扩展的192K字的空间,分别为64K字的程序存储器空间、64K字的数据存储器空间、64K字的I/O空间。
(12)用于仿真的JTAG接口。
1.2两相步进电机结构图1.2两相步进电机结构图电动机轴向结构如图2.1所示。
转子被分为完全对称的两段,一段转子的磁力线沿转子表面呈放射形进入定子铁心,称为N极转子;另一段转子的磁力线经过定子铁心沿定子表面穿过气隙回归到转子中去,称为S极转子。
图中虚线闭和回路为磁力线的行走路线。
相应地定子也被分为两段,其上装有A、B两相对称绕组.同时,沿转子轴在两段转子中间安装一块永磁铁,形成转子的N、S极性。
从轴向看过去,两段转子齿中心线彼此错开半个转子齿距。
1.3两相步进电机的原理通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。
该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。
每输入一个电脉冲,电动机转动一个角度前进一步。
它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。
改变绕组通电的顺序,电机就会反转。
所以可用控制脉冲数量、电动机各相绕组的通电顺序来控制步进电机的转动。
1.4两相步进电机的供电方式两相四线的步进电机,有两个绕组:A,B。
在半步供电方式时,电机的通电方式采用顺序八拍一个循环给两相绕组供电为: 八拍,半步:(+A)(+B)--(+B)--(-A)(+B)--(-A)--(-A)(-B)--(-B)--(+A)(-B)--(+A)-。
两相混合式步进电动机还有一种供电方式为双4拍整步方式,即采用通电次序两相,四拍:(+A)(+B)--(-A)(+B)--(-A)(-B)--(+A)(-B)—。
第2章 DSP硬件系统设计2.1 系统总框图DSP系统由电源、锁相环、时钟、复位电路、JTAG仿真、RAM存储模块、LED显示等电路组成,系统框图如图2.1所示:图2.1 系统总框图2.2 各硬件介绍2.2.1 TMS320LF2407芯片说明封装类型:LQFP工作温度最低:-40°C工作温度最高:125°CDSP类型:定点MMAC:40器件标号:320存储器容量, RAM:5KB封装类型:剥式工作温度范围:-40°C to +125°C接口类型:CAN, SCI, SPI电源电压最大:3.6V电源电压最小:3V针脚数:144频率:30MHz2.2.2电源电路系统采用TPS7333Q进行3.3V电压的转换对最小系统供电,并添加滤波电容。
电源电路图如图2.4所示。
图2.2 电源电路图JTAG是JOINT TEST ACTION GPOUP的简称,JTAG接口用于连接DSP系统板和仿真器,实现仿真器DSP访问,JTAG的接口必须和仿真器的接口一致,否则将无法连接上仿真器。
TMS320LF2407A内部带有复位电路,因此可以直接RS复位引脚外面接一个上拉电阻即可。
JTAG连接图如图2.5所示。
图2.3 JTAG电路图系统用8个LED灯指示计数值的0-255,计数输入通过按键中断实现。
按键接在XINT1上并上拉,下降沿有效,8个LED分别接在E口的IOPE0-IOPE7上,按键及LED灯指示电路如图2.6所示。
图2.4 按键及LED灯指示电路2.2.6 RAMCY7C1021 RAM特点如下:1.64K,16位静态RAM2.高速转换时间:8、10、12、15ns3.CMOS低功耗管理4.TTL可共存界面5.3.3V供电6.完全静态管理:无时钟或刷新要求7.三种输出状态8.高位、低位数据控制CY7C1021 RAM芯片引脚图如图2.7所示。
图2.5 CY7C1021 RAM芯片引脚图2.2.7 步进电机驱动电路由DSP产生的PWM信号不足以直接驱动电机运行,需要使用驱动电路,可使用集成芯片ULN2803,它是恒压恒流双H桥电机芯片,可同时控制两台直流电机,输出电流可达2A。
使用时应使用供电电压VS大于其逻辑电压VSS,否则将会出现电机失控的现象。
另外,为了保护电机,在驱动电路中需要加入两组续流二极管。
为了降低和减小驱动电路对控制系统的影响,可加入光耦器件。
DSP产生的PWM波经施密特反相器74HC14后加到TLP521-4光耦上进行光电隔离,再送给驱动芯片ULN2803.这样控制信号就变得稳定可靠了。
驱动电路如图2.8所示。
图2.6 步进电机驱动电路2.2.8 74LS08电路系统采用74LS08二输入四与门,有利于减少线路,提高系统的稳定性和时钟的准确性,74LS08右端接入一个大阻值电阻,有利于保护芯片不受损伤,模块使用外用滤波器电路回路来抑制信号抖动和电磁干扰,使信号抖动和干扰最小,其电路图如下:图2.3 74LS08电路第3章软件设计3.1 程序设计思路程序开始时不断扫描键盘输入,当按下“5”时,开关标志位变为1,中断服务程序开始,根据标志计数器加1或减1,从0到3共4拍,将控制子响应的控制字送到步进电机驱动器。
实现步进电机的转动。
3.2 程序流程图中断服务程序流程图如图3.1所示。
图3.1 中断服务程序流程图如图3.2 主程序流程图3.3 程序设计3.3.1 初始化程序系统初始化化程序如下:void ICETEKLF2407AInit(){asm(" setc INTM");(*PIRQR0)=0;uWork=(*WSGR);uWork&=0x0fe3f;(*WSGR)=uWork;*WDCR=0x6f;*WDKEY=0x5555;*WDKEY=0xaaaa;*SCSR1=0x81fe; //40m}3.3.2 键盘扫描程序键盘扫描程序如下:char ConvertScanToChar(unsigned char cScanCode) {char cReturn;cReturn=0;switch ( cScanCode ){case SCANCODE_0: cReturn='0'; break;case SCANCODE_1: cReturn='1'; break;case SCANCODE_2: cReturn='2'; break;case SCANCODE_3: cReturn='3'; break;case SCANCODE_4: cReturn='4'; break;case SCANCODE_5: cReturn='5'; break;case SCANCODE_6: cReturn='6'; break;case SCANCODE_7: cReturn='7'; break;case SCANCODE_8: cReturn='8'; break;case SCANCODE_9: cReturn='9'; break;}return cReturn;}3.3.3 中断服务程序系统中断服务程序如下:void interrupt gptime1(void){uWork=(*PIVR);switch(uWork){case 0x27:{(*EVAIFRA)=0x80;CTRLR=pwm1[nStep];if(on==1){ nStep+=nAddStep;if(nStep<0){nStep=3;num++;if(num>0&&num<=128) LBDS=uLED[3];else if(num>128&&num<=256)LBDS=uLED[2];else if(num>256&&num<=384)LBDS=uLED[1];else LBDS=uLED[0];if(num==512){num=0;nAddStep=1;on=0;}}else if(nStep>3){nStep=0;num++;if(num>0&&num<=128)LBDS=uLED[0];else if(num>128&&num<=256)LBDS=uLED[1];else if(num>256&&num<=384)LBDS=uLED[2];else LBDS=uLED[3];if(num==512){num=0;k=0;nAddStep=-1;on=0;}}}else LBDS=15;nCount++;nCount%=18;if(z==0){portc=0;z=1;}else{ z=0;portc=1;}break;}}}3.3.4 主程序主程序如下:#include "2407c.h"#include "scancode.h"#include "math.h"#include "LF2407A.h"#define T46uS 0x0d40void gp_init(void);void Delay(unsigned int nTime);void interrupt time(void);char ConvertScanToChar(unsigned char cScanCode);void ICETEKLF2407AInit();ioport int port8;// 子程序接口void Delay(unsigned int nDelay); // 延时子程序void led0(void);//unsigned int T46uS;ioport unsigned int port8000;ioport unsigned int port8005;ioport unsigned int port8001;ioport unsigned int port8002;ioport unsigned int port8003;ioport unsigned int port8004;ioport unsigned int port8007;#define LBDS port8#define CTRGR port8000#define CTRLCDCMDR port8001#define CTRKEY port8001#define CTRLCDCR port8002#define CTRCLKEY port8002#define CTRLCDLCR port8003#define CTRLCDRCR port8004#define CTRLA port8005#define CTRLR port8007ioport unsigned int portc;unsigned int uWork,nCount,num,on=0,k;unsigned int pwm1[8]={ 0x8c,0x89,0x83,0x86 };int nAddStep=-1,nStep,z=0,j;unsigned int uLED[4]={12,9,3,6}; // 控制字,逐位置1: 0001B 0010B 0100B 1000Bmain(){unsigned int nScanCode,uWork,uWork1,i;unsigned char cKey;uWork1=(*PIVR);ICETEKLF2407AInit();CTRGR=0;CTRGR=0x80;CTRGR=0; // 使能CTRCTRLR=0; CTRLR=0x40; CTRLR=0x0c0;uWork1=port8002;nStep=0; nAddStep=1; cKey=0;CTRLR=0x0c2;asm(" setc INTM"); // 关闭可屏蔽中断(*PIRQR0)=0;*EVAIMRA = 0x80;*EVAIFRA = 0xffff;*GPTCONA = 0x0100;*T1PR = 0x1d4c;*T1CNT = 0;*T1CON = 0x1440;*IMR=0x3;*IFR=0xffff;asm(" clrc INTM");while ( 1 ){if ( nCount==16 ){nCount=0;nScanCode=CTRKEY;nScanCode&=0x0ff;uWork=CTRCLKEY;CTRLR=0x0c2;if ( nScanCode!=0 ){if ( nScanCode==SCANCODE_Enter ) break;else{cKey=nScanCode;}cKey=nScanCode;if ( cKey!=0 ){if ( cKey==5 ){on=1;}}}}Delay(1);}}第4章编程与调试4.1 调试步骤1.调试准备⑴连接设备①关闭计算机和实验箱电源。