基于单片机的步进电机课程设计报告
基于单片机的步进电机控制器设计
基于单片机的步进电机控制器设计
步进电机是一种可实现精确控制和定位的电动机,广泛应用于机械和
自动化领域。为了更好地控制步进电机,可以设计一个基于单片机的步进
电机控制器。本文将从步进电机的基本原理、常见控制方式、单片机的选择、电路设计和程序编写等方面进行详细介绍,共计超过1200字。
第一部分:步进电机的基本原理
步进电机主要由定子和转子组成,通过电磁原理可以实现精确控制和
定位。步进电机根据工作方式的不同分为全步进电机和半步进电机,全步
进电机每次步进一个固定的角度,而半步进电机每次步进一个更小的角度。
第二部分:常见的步进电机控制方式
步进电机的控制方式有多种,其中最常见的控制方式是脉冲方向控制
和脉冲加减速控制。脉冲方向控制方式通过给步进电机控制信号的脉冲数
和方向来实现电机转动,脉冲加减速控制方式则通过改变脉冲的频率和加
减速度来控制电机的转速和位置。
第三部分:单片机的选择
在设计步进电机控制器时,需要选择适合的单片机来实现控制逻辑和
信号的生成。常见的单片机有51系列、AVR系列、ARM Cortex-M系列等。选择单片机时需要考虑其运算速度、存储容量、IO口数量等因素,以满
足步进电机控制的要求。
第四部分:电路设计
步进电机控制器的电路设计包括电机驱动电路和控制电路。其中电机
驱动电路用于提供适当的电流和电压给步进电机,以实现其运转。可以选
择使用电流驱动器芯片或者使用MOSFET等器件设计电路。控制电路主要
包括单片机和其他外围电路,用于生成控制信号和接收输入信号。
第五部分:程序编写
步进电机控制器的程序需要实现控制逻辑和信号的生成。程序可以使
基于stm32单片机的步进电机实验报告
基于stm32单片机的步进电机实验报告步进电机是一种将电脑控制信号转换为机械运动的设备,常用于打印机、数码相机和汽车电子等领域。本实验使用STM32单片机控制步进电机,主要目的是通过编程实现步进电机的旋转控制。
首先,我们需要了解步进电机的基本原理。步进电机是一种能够按照
一定步长精确旋转的电机。它由定子和转子两部分组成,通过改变定子和
转子的电流,使转子按照一定的角度进行旋转。
在本实验中,我们选择了一种四相八拍步进电机。该电机有四个相位,即A、B、C、D相。每个相位都有两个状态:正常(HIGH)和反向(LOW)。通过改变相位的状态,可以控制步进电机的旋转。
我们使用STM32单片机作为控制器,通过编程实现对步进电机的控制。首先,我们需要配置STM32的GPIO口为输出模式。然后,编写程序通过
改变GPIO口的状态来控制步进电机的旋转。
具体来说,我们将A、B、C、D相分别连接到STM32的四个GPIO口,
设置为输出模式。然后,通过改变GPIO口输出的电平状态,可以控制相
位的状态。为了方便控制,我们可以定义一个数组,将表示不同状态的四
个元素存储起来。通过循环控制数组中的元素,可以实现步进电机的旋转。
在实验中,我们通过实时改变数组中元素的值,可以实现不同的旋转
效果。例如,我们可以将数组逐个循环左移或右移,实现步进电机的正转
或反转。
在实验过程中,我们可以观察步进电机的旋转情况,并根据需要对程
序进行修改和优化。可以通过改变步进电机的旋转速度或步进角度,来实
现更加精确的控制。
总结起来,通过本次实验,我们了解了步进电机的基本原理,并通过STM32单片机控制步进电机的旋转。通过编写程序改变GPIO口的状态,我们可以实现步进电机的正转、反转和精确控制。这对于理解和应用步进电机技术具有重要意义。
基于单片机的步进电机控制的设计
基于单片机的步进电机控制的设计
本文主要介绍了基于单片机的步进电机控制的设计,包括步进电机控制的基本原理、
单片机控制步进电机的具体实现方法、实验结果以及未来展望等方面。
一、步进电机控制的基本原理
步进电机是一种控制精度高、响应速度快、运动平稳、噪音低的电机,广泛应用于数
控机床、自动化设备、印刷机、纺织机等领域。
步进电机的控制原理是通过向电机提供不同的脉冲序列控制电机转动的步距角度,实
现电机旋转、逆旋转、定位等操作。其中,步距角度是指电机每次接收到一组脉冲信号后
转动的角度,它与电机的结构参数、电气参数等有关。
单片机控制步进电机可以采用两种方式,一种是直接控制步进电机,另一种是通过驱
动芯片来控制步进电机。下面介绍两种实现方法的具体步骤。
(一)直接控制步进电机
步骤一:确定步进电机的电气参数,并根据电气参数确定所需的驱动电压和电流。
步骤二:连接步进电机到单片机的相应IO口,控制步进电机正、反转和步距角度。
步骤三:编写控制程序,实现步进电机的控制。步进电机的控制程序主要包括以下几
个方面:
1.设定步进电机工作方式(正转、反转、定位等)。
2.设定步进电机步距角度,根据步距角度确定脉冲信号频率。
3.输出控制信号,使步进电机按设定的方式转动。
步骤二:设计电路板,将驱动芯片和步进电机连接起来。
步骤三:编写控制程序,通过单片机向驱动芯片发出脉冲信号,控制步进电机的转动。具体控制程序的编写与直接控制步进电机的实现方法类似,主要是控制脉冲信号的频率和
方向。
三、实验结果
我们在实验室里搭建了一个步进电机控制系统,采用的是第二种实现方法,即通过驱
基于单片机的步进电机控制器的设计
第1章
1.1引言 (1)
1.2 步进电机常见的控制方案与驱动技术简介 (2)
1.2.1 常见的步进电机控制方案 (2)
1.2.2 步进电机驱动技术 (4)
1.3 本文研究的内容 (6)
第2章步进电机概述
2.1 步进电机的分类 (6)
2.2 步进电机的工作原理 (7)
2.2.1 结构及基本原理 (7)
2.2.2 两相电机的步进顺序 (8)
2.3 步进电机的工作特点 (11)
第3章系统的硬件设计
3.1 系统设计方案 (12)
3.1.1 系统的方案简述与设计要求 (12)
3.1.2 系统的组成及其对应功能简述 (13)
3.2 单片机最小系统 (15)
3.2.1 AT89C51简介 (15)
3.2.2 单片机最小系统设计 (20)
3.2.3 单片机端口分配及功能 (21)
3.3 串口通信模块 (22)
3.4 数码管显示电路设计 (22)
3.4.1 共阳数码管简介 (23)
3.4.2 共阳数码管电路图 (24)
3.5 电机驱动模块设计 (24)
3.5.1 L298简介 (25)
3.5.2 电机驱动电路设计 (26)
3.6 驱动电流检测模块设计 (27)
3.6.1 OP07芯片简介 (28)
3.6.2 ADC0804芯片简介 (29)
3.6.3 电流检测模块电路图 (32)
3.7独立按键电路设计 (33)
1
第4章系统的软件实现
4.1 显示子程序的设计 (35)
4.2 键盘子程序的设计 (36)
4.3 驱动程序流程的设计 (37)
4.4 正反转程序流程图 (38)
4.4.1 正反转程序流程图 (38)
基于AT89C51单片机的步进电动机控制系统设计
基于AT89C51单片机的步进电动机控制系统设计
步进电动机是一种运动精度高、控制方便的电动机。在很多应用中,
需要使用步进电动机进行精确的位置控制,因此设计一个基于AT89C51单
片机的步进电动机控制系统非常有意义。
本文将设计一个基于AT89C51单片机的步进电动机控制系统的原理、
硬件电路和软件设计方案,并进行详细的说明。
1.原理
步进电动机通过依次在不同的相上加电来实现精确的旋转运动。控制
步进电动机的主要原理是通过改变控制相的顺序和频率来控制电动机的转
向和运动速度。在本设计中,我们将使用四相步进电动机,即控制电动机
旋转需要改变四个相的状态。
2.硬件电路设计
硬件电路主要包括:电源电路、单片机模块、驱动模块和步进电动机
模块。
(1)电源电路:为步进电动机和单片机提供适当的电源电压和电流。
(2)单片机模块:使用AT89C51单片机作为主控制器,通过引脚控
制驱动模块的工作状态。
(3)驱动模块:用于驱动步进电动机,可选择使用L298N或
ULN2003驱动芯片。
(4)步进电动机模块:包括四相步进电动机和相应的接线。
3.软件设计方案
(1)初始化:设置单片机工作模式、引脚方向和初始状态。
(2)编写驱动程序:根据步进电动机的相序进行编写,并通过控制
相的芯片来控制电机的转向和运动速度。
(3)编写控制程序:通过按键或外部信号触发,调用相应的驱动程
序来实现步进电动机的控制。
(4)编写显示程序:通过液晶显示屏或LED灯等方式显示步进电动
机的状态,方便用户了解电动机的运行情况。
4.系统功能和特点
本控制系统具有以下功能和特点:
单片机课程设计步进电机驱动器
故障检测与处理模块
实时监测系统运行状态,一旦发现故 障或异常情况,立即采取相应的处理 措施,如停机、报警等。
人机交互模块
提供友好的人机交互界面,如LED显 示屏、按键等,方便用户操作和监控 。
关键技术指标
控制精度
调速范围
实现对步进电机的高精度控制,位置误差 小于0.1度。
步进电机的调速范围宽,可实现从低速到 高速的平滑调速。
烧录程序到单片机
使用编程器或下载线等工具,将编写好的程序烧录到 单片机中。
调试程序
通过单步调试、断点调试等方法,对程序进行调试, 确保程序能够正确控制步进电机的运行。
系统整体联调
连接硬件与软件
将组装好的硬件与烧录好程序的单片机连接 起来,确保硬件与软件能够正常通信。
测试基本功能
对步进电机驱动器的基本功能进行测试,包 括启动、停止、正反转、速度调节等。
通信接口模块
提供与外部设备的通信接口, 如UART、I2C、SPI等,以便接 收控制指令和发送状态信息。
电源管理模块
为系统提供稳定可靠的电源, 同时实现电源管理和节能功能
。
功能模块划分
输入输出模块
负责处理各种输入信号,如按键、传 感器等,并输出相应的控制信号。
控制算法模块
实现步进电机的控制算法,如PID控 制、速度规划、位置控制等。
步进电机控制原理
单片机课程设计步进电机
单片机课程设计-步进电机
江南大学
物联网工程学院
课程设计报告
课程名称:单片机原理及应用
设计题目:基于单片机的步进电机控制器设计班级:
姓名:学号:
指导教师:评分:
年月日
基于单片机的步进电机控制器设计
摘要:本设计是用80C52单片机作为核心部件进行逻辑控制及信号产生,用单片机技术和C 语言编程设计来进行步进电机的控制。通过人手动按开关实现步进电机的启动与停止、步进电机的正转反转,加速及减速等功能,此外还有LCD 数码管进行实时显示功能。同时本文也通过了proteus软件的仿真,在仿真结果中能看出近似真实的效果。经过proteus仿真,结果表明,系统实现了要求。该系统电路简单,可靠性强,运行稳定。
关键词:步进电机单片机LCD proteus 仿真
1课题主要研究内容和要求
本设计采用单片机80C52来作为整个步进电机控制系统的运动控制核心部件。所选的步进电机是四相五线的,由于步进电机需要高功率驱动,单片机不能与步进电机直接相连,因此我们需要采用了电机驱动芯片ULN2003连接步进电机和单片机。为了显示步进电机转速,我用数码管来显示速率。再加上一些独立按键来实现步进电机调速、改变转向的功能。这样就构成了一个
基本的步进电机控制系统。系统的具体功能和要
求如下:
1、电机转速可以平稳控制;
2、通过键盘和显示器可以设置电机的转速;
3、能显示电机的运动趋势;
2所需仪器设备
所需器件备注所需器件备注
STC89C52
一片12M晶振一个单片机
ULN2003驱
一片按键五个动芯片
八位共阳数
一片异步电机一个
码管芯片
不同阻值电
基于单片机的步进电机控制系统设计方案
D10-基于单片机旳步进电机控制系统
一、理解什么是步进电机以及其工作原理
步进电机是数字控制电机,步进电机旳运转是由电脉冲信号控制旳,其角位移量或线位移量与脉冲数成正比,每个一种脉冲,步进电机就转动一种角度(不距角)或前进、倒退一步。步进电机旋转旳角度由输入旳电脉冲数确定,因此,也有人称步进电机为数字/角度转换器。
步进电机旳各相绕组按合适旳时序通电,就能使步进电机转动。当某一相绕组通电时,对应旳磁极产生磁场,并与转子形成磁路,这时,假如定子和转子旳小齿没有对齐,在磁场旳作用下,由于磁通具有力图走磁阻最小途径旳特点,则转子将转动一定旳角度,使转子与定子旳齿互相对齐,由此可见,错齿是促使电机旋转旳原因。
二、步进电机旳特点
(1)步进电机旳角位移与输入脉冲数严格成正比,因此当它转一转后,没有合计误差,具有良好旳跟随性。
(2)由步进电机与驱动电路构成旳开环数控系统,既非常以便、廉价,也非常可靠。同步,它也可以有角度反馈环节构成高性能旳闭环数控系统。
(3)步进电机旳动态响应快,易于启停、正反转及变速。
(4)速度可在相称宽旳范围内平滑调整,低速下仍能保证获得很大旳转矩,因此一般可以不用减速器而直接驱动负载。
(5)步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电源。
(6)步进电机自身旳噪声和振动比较大,带惯性负载旳能力强。
三、步进电机旳控制
步进电机旳控制重要包括换相次序旳控制、速度控制、速度控制、加减速控制等,控制系统就是运用单片机旳功能实现以上控制旳系统,即本次设计旳目旳。
四、示意图
基于单片机的步进电机控制系统的设计(有全套CAD图纸)
基于单片机的步进电机控制系统的设计(有全套CAD图
纸)
全套CAD图纸,联系 695132052
由于部分原因,说明书已删除大部分,完整版说明书,CAD图纸等,联系695132052
基于单片机的步进电机控制系统的设计
摘要:步进电动机由于用其组成的开环系统既简单,廉价,又非常可行,因此在打印机等办公自动化设备以及各种控制装置等众多领域有着极其广泛的应用。本文用汇编语言编写电机的正转,反转,加速,减速,停止程序,通过单片机,电机的驱动电路以及相应的按键实现以上功能,并且步进电机的工作状态要用相应的LED管显示出来。
关键词:步进电机;驱动电路;单片机;转动
The Design of the Control System of Step-Motor Based on SCM
Orient Science&Technology College of Hunan Agricultural University,Changsha 410128,China
Abstract: The open-loop system which is composed by stepping motor is simple, cheep, but very practical, so there are very wide range of
applications in printers and other officeautomation equipment and various control devices, and many other fields. In this article descibes one design of step-motor system based on microcontroller. It designs the system hardware circuit and the program of the preparation of a motor, reverse, speed up, slow down, stop is written by compile language. The above function are realized through the microcontroller, motor driver circuit and correspond keys, and the work state of stepper motor is displayed through the light-emitting diode.
基于51单片机的步进电机控制系统设计
基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。
一、硬件设计
步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。
1.51单片机选择
由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。
2.外部电源
步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。电源电压和电流的大小需要根据具体的步进电机来确定。
3.步进电机驱动模块
步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。常用的步进电机驱动芯片有L297、ULN2003等。
4.其他辅助电路
为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。这些电路的设计需要根据具体的应用来确定。
二、软件设计
1.系统初始化
系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。根据实际需求还可以进行其他模块的初始化设置。
2.步进电机驱动程序
步进电机的驱动程序主要通过脉冲信号来控制电机的转动。脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。脉冲信号可以通过定时器产生,也可以通过外部中断产生。
基于51单片机的步进电机控制系统设计与实现
谢谢观看
二、系统设计
1、硬件设计
本系统主要包括51单片机、步进电机、驱动器、按键和LED显示等部分。其中, 51单片机负责接收按键输入并控制步进电机的运动;步进电机用于驱动负载运 动;驱动器负责将51单片机的输出信号放大,以驱动步进电机。LED显示用于 显示当前步进电机的状态。
2、软件设计
软件部分主要包括按键处理、步进电机控制和LED显示等模块。按键处理模块 负责接收用户输入,并根据输入控制步进电机的运动;步进电机控制模块根据 按键输入和当前步进电机的状态,计算出步进电机下一步的运动状态;LED显 示模块则负责实时更新LED显示。
3、步进电机控制的实现
步进电机的控制是本系统的核心部分。我们使用驱动器来驱动步进电机转动, 通过单片机输出口的高低电平来控制步进电机的转动方向和转动角度。在主程 序中,我们根据按键的值来控制步进电机的转动方向和转动角度。在中断服务 程序中,我们根据设定的值来更新步进电机的转动状态。
四、结论
本次演示设计并实现了一个基于单片机的步进电机控制系统。该系统能够实现 按键输入、显示输出以及步进电机的精确控制。通过使用单片机对步进电机进 行控制,我们能够以更高效、更精确的方式控制步进电机的转动,从而提高了 自动化和智能化的水平。本系统的实现对于步进电机的应用和发展具有一定的 参考价值。
步进电机工作原理
步进电机是一种基于磁场的控制系统,工作原理是当电流通过定子绕组时,会 产生一个磁场,该磁场会吸引转子铁芯到相应的位置,从而产生一定的角位移。 步进电机的角位移量与输入的脉冲数量成正比,因此,通过控制输入的脉冲数 量和频率,可以实现精确的角位移和速度控制。同时,步进电机具有较高的分 辨率和灵敏度,可以满足各种高精度应用场景的需求。
基于单片机的步进电机控制系统设计与实现
基于单片机的步进电机控制系统设计与实现
1. 本文概述
随着现代工业自动化水平的不断提高,步进电机因其高精度、易控制等特点,在各个领域得到了广泛应用。本文旨在设计并实现一种基于单片机的步进电机控制系统,以实现步进电机的精确控制和高效运行。本文首先对步进电机的原理和工作特性进行了详细分析,然后选择了合适的单片机作为控制核心,并设计了系统的硬件和软件部分。在硬件设计方面,本文详细介绍了电源模块、驱动模块、信号处理模块等关键部分的设计与实现在软件设计方面,本文阐述了系统控制算法的设计和程序流程的实现。通过实验验证了系统的稳定性和可靠性,并对实验结果进行了详细分析。本文的研究成果对于提高步进电机控制系统的性能,促进工业自动化技术的发展具有重要的理论和实际意义。
2. 步进电机原理及特性
步进电机是一种电动机,它将电脑指令转换为机械运动,每接收到一个脉冲信号就转动一个步距角。这种电机的主要特点是其“步进”功能,即它可以在没有反馈系统的情况下,通过控制脉冲的数量和频率来精确控制旋转的角度和速度。
步进电机的工作原理基于电磁学,它通过施加脉冲电流到电机的线圈上来产生旋转力矩。电机内部有多个线圈,它们按一定的顺序被激活,产生磁场,这个磁场与永磁体相互作用,从而推动电机的转子转动。每个线圈的激活对应一个步距角,通过控制线圈的激活顺序和时间,可以实现精确的角度控制。
精确控制:步进电机能够精确地控制旋转的角度和速度,这对于需要精确定位的应用场景非常重要。
无需反馈系统:与伺服电机不同,步进电机不需要外部反馈系统来控制位置,这简化了控制系统的设计。
基于51单片机的步进电机控制系统设计与实现
基于51单片机的步进电机控制系统设计与实
现
步进电机控制系统是基于51单片机的一种控制系统,它主要用来
控制步进电机的转动方向和转速等参数。下面详细解释一下这个系统
的设计和实现。
1. 系统硬件设计
步进电机控制系统的硬件主要包括51单片机、驱动电路、步进电
机和电源等部分。其中,驱动电路是控制步进电机的关键,它通常采
用L298N芯片或ULN2003芯片等常用的驱动模块。
在硬件设计方面,主要需要考虑以下几个方面:
(1)步进电机的种类和规格,以便选择合适的驱动电路和电源。
(2)驱动电路的接线和参数设置,例如步进电机的相序、脉冲频
率和电流大小等。
(3)电源的选取和参数设置,以满足系统的供电要求和安全性要求。
2. 系统软件设计
步进电机控制系统的软件设计主要包括编写控制程序和调试程序。其中,控制程序是用来实现步进电机的正转、反转、加速和减速等控
制功能,而调试程序则用来检测系统的电路和程序的正确性和稳定性。
在软件设计方面,主要需要考虑以下几个方面:
(1)确定控制程序的算法和流程,例如使用“循环控制法”或“PID控制法”等控制方法。
(2)选择编程语言和编译器,例如使用汇编语言或C语言等。
(3)编写具体的控制程序和调试程序,并进行测试和调试,以确
保程序的正确性和稳定性。
3.系统实现
步进电机控制系统的实现主要包括硬件组装和软件烧录两个部分。在硬件组装方面,需要按照硬件设计图纸进行零部件的选取和电路的
组装,同时进行电源和信号线的接入。在软件烧录方面,需要使用专
用的编程器将程序烧录到51单片机的芯片中,并进行相应的设置和校验。
基于单片机的步进电机控制系统设计
基于AT89C52单片机的步进电机控制系统
设计
摘要:步进电机专用开发系统,适用于数控机床及某些特定条件及系统。本文通过单片机为开发平台,对步进电机进行控制.采用单片机A T89C52,根据输入的数据转化成的控制信号来控制步进电动机的角位移的一种方法,包括硬件设计和软件设计.整个系统主要由电机驱动电路,声光报警电路,4位LED显示电路,电源电路及核心单片机部分构成。利用单片机产生步进电机驱动脉冲,通过4×4矩阵键盘能实现对步进电机启动、停止功能的选择以及加速、减速、反转功能的选择,使用方便、操作简单。其中在步进电机控制器的设计中,重点阐述脉冲产生电路以及对速度的控制,实现对步进电机速度精确控制的开发系统.提高步进电机的步进精度,能够控制三相或四相步进电机。且电路简单,成本较低,控制方便,移植性强.实用价值高。关键词:A T89C52;步进电机;脉冲产生
Design of Control System for Stepping Motor Based on
AT89C52
Abstract:A stepper motor dedicated development system,applicable to CNC machine tools and some special conditions and system. In this paper,through the SCM as the development platform,for the stepper motor control。
基于单片机的步进电机控制系统设计方案
基于单片机的步进电机控制系统设计方案
第1章绪论
1.1引言
随着材料科学、工艺技术、计算机技术的发展与进步,电路系统向着集成度极高的方向发展。CPU的生产制造技术,也朝着综合性、技术性、实用性发展。如CPU的运算位数从4位、8位……到32位机的发展,运算速度从8 MHz、32 MHz……到1.6 GHz。可以说是日新月异的发展着。其中单片机在控制系统中的应用是越来越普遍了。单片机控制系统是以单片机(CPU)为核心部件,扩展一些外部接口和设备,组成单片机工业控制机,主要用于工业过程控制。要进行单片机系统设计首先必须具有一定的硬件基础知识;其次,需要具有一定的软件设计能力,能够根据系统的要求,灵活地设计出所需要的程序;第三,具有综合运用知识的能力。最后,还必须掌握生产过程的工艺性能及被测参数的测量方法,以及被控对象的动、静态特性,有时甚至要求给出被控对象的数学模型。由此可以认识到,单片机在工业领域运用中,对工业发展、提高工业生产力等有重大意义。因此,掌握好单片机的应用,对以后的生产生活有很强的指导意义。科技的进步需要技术不断的提升。一块大而复杂的模拟电路花费了巨大的精力,繁多的元器件增加了成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使以前的电路简单很多。由此可见掌握了单片机技术后,不管今后开发或是工作上,一定会带来意想不到的惊喜。
1.2国外设计现状
1.2.1国外发展回顾及产生背景
如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段:
(1)第一阶段(1976-1978):单片机的控索阶段。以Intel公司的MCS –48为代表。MCS –48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 、Zilog等,都取得了满意的效果。这就是SCM的诞生年代,“单机片”
基于单片机的步进电机调速系统设计
基于单片机的步进电机调速系统设计
摘要:随着科学技术水平的日益提高,生活水平的逐步提高,平稳,噪音低的步进电机逐步走进生活、学习和办公的各个领域。这次步进电机调速系统的设计引进了加、减速和正、反转按键控制功能,同时也用数码管显示步进电机转速的7个不同的等级,用彩色二极管显示电机的正转,反转,停止和运行。通过编写程序烧录到单片机然后给步进电机输入信号进而得以控制步进电机的速度和加速度,从而实现单片机对步进电机调速系统的控制。
关键词:步进电机;调速系统;单片机
1引言
当今社会各行各业的崛起、发展、繁荣都已经离不开电子电路,手机,电脑,电梯已经成为当今人类离不开的生活必须品,而电机是这些电子电气产品中不可或缺的器件,所以对电机的控制以及电机的精准运行显得尤为重要,本次设计将围绕电机的正转反转,转速等级,以及电机启动停止的控制展开系统的设计。
2设计思路
这次步进电机调速系统设计整体可以划分为三个模块:单片机基本单元电路,外围电路和程序编写。
单片机系统的基本单元电路为晶振电路和复位电路,其中晶振电路由两个电容和一个晶振构成,在单片机基本单元电路中晶振电路中的两个电容原件有快速其中和稳定频率的作用;复位电路包含两种,其中一种为上电复位电路,另一种为按键与复位电路。
外围电路由三个模块构成,其中P0口接四个不同颜色的发光二极管实现停止、运行、正反转的显示;P2口接数码管,用来显示步进电机转速的不同等级;
P3口分别接有四个不同功能的按键,为加速键,减速键,启动键和反转键;P1口通过74LS04反向器与达林顿管ULN2003相接从而启动步进电机的运行转动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计题目:基于单片机的步进电机控制系统设计
设计目的:
综合运用所学的《单片机原理及应用》的理论知识,通过实践加强对所学知识的理解,具备设计单片机应用设计系统的能力。以单片机为核心设计一个步进电机控制系统,要求能够通过键盘设置步进电机的正转和反转,加速和减速。并在LED 数码管显示器上显示步进电机转速。通过了解系统的软硬件构成及其特点,详细掌握怎样通过单片机控制其输出来控制步进电机的运转,并对应地在数码管上显示出来,更加系统的了解步进电机的组成,工作原理,控制方法。
设计要求:
【1】进行方案论证,说明步进电机控制系统的工作原理
【2】设计控制系统所需的硬件电路,给出电路原理图和元器件清单。
【3】给出软件流程图并编写程序源代码。
【4】完成系统的调试,给出调试结果并分析。
【5】了解单片机的内部结构,组成,学习单片机的工作原理以及内部工作状态,并熟悉在不同时刻,单片机的输入输出情况
【6】了解步进电机的分类和用途,掌握步进电机的内部结构以及工作原理,并学习单片机简单控制步进电机的正转和反转,加速和减速
【7】使用keil和proteus等软件进行系统的仿真,并在开发板硬件上实现。锻炼自己的编程,调试能力。
设计条件:
步进电机的工作原理
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件步进电机。在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号时,它就驱动步进电机按设定的方向转动一个固定的角度。称为“步距角”。它的旋转是以固定的角度一步一步运行的,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
电机的位置和速度与导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定
(贴图:电机结构)
步进电机的控制是通过脉冲信号来控制的,将电脉冲信号转变为角位移或线位移的开环控制元件。怎样产生这个脉冲信号和产生怎样的信号是电机控制的关键。
用单片机来产生这个脉冲信号,通过单片机的P1口输出脉冲信号。因为所选电机是两相的,所以只需P1口的低四位p1.0到p1.3分别接在电机的四根电线上,通过程序调整电机的转速,通过键盘的按钮,就可以改变延时时长从而改变电机的转速。p0口接在led数码管上,可以显示当前的电机转速和按钮状态。
(画图:控制逻辑框图)
步进电机选择:
步进电机28BYJ5VDC型四相八拍电机,电压为DC5V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一个步距角。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单四拍(A-B-C-D-A),双四拍(AB-BC- CD-DA-AB),八拍(A-AB-B-BC-C-CD-D-DA-A)
由于单片机接口信号不够大需要通过ULN2003放大再连接到相应的电机接口,
控制步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它就会再转一步。两个脉冲的间隔时间越短,步进电机就转的越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。具有实现用延时时间的长短来决定。延时时间的方案是:
虽然可以采用定时的方法,比较精确的控制延时的时间,但是我们在这里不而是采用消耗指令的方法达到延时的效果,此方案虽占用大量的CPU空间,降低了单片机的使用效率而且延时间不易计算。但易理解。对于初学者来说,有很强的可操作性。
单片机的选择:
采用Stc89c52单片机,该单片机应用广泛,集成度高,可靠性强,结构简单,价格低廉,易于使用,是宏晶科技推出的新一代超强抗干扰,高速低功耗的单片机。他的功能已完全能够实现本设计的要求。对于学校的学生而言。性价比尤为突出,更多的被我们所第一时间采用。
(贴图:单片机)
驱动电路的选择:
使用达林顿驱动芯片ULN2003,该芯片为集电极开路驱动芯片,能驱动四相步进电机,它的每一对达林顿都串联一个2.7k的基极电阻,在5v的工作电压下它能与TTL和CMOS电路直接相连。可以直接处理原先需要标准逻辑缓冲器。ULN2003是高压大电流达林顿晶体管系列产品。具有电流增益高,工作电压高,温度范围宽。带负载能力强等特点。适应于各类要求高速大功率驱动的系统。缺点是如果用于驱动直流电机的话,只能换一个方向转动。换向要改变电机的接法。
(贴图:驱动电路)
显示电路的选择:
采用6位LED数码管的最后两位显示。利用74HC573芯片接P2.6和P2.7分别控制段选和位选。
(贴图)
按键的选择:
独立按键。考虑到控制要求的条件,我们采用独立按键就可达到我们想要的目的。且容易变成和实现。矩阵虽也可完成,但程序设计太过复杂,因为时间紧,任务中,采用独立按键。K1接P3.4暂停控制(预实现)。K2接P3.5正反转控制。K3接P3.6加速控制。K4接P3.7减速控制。
(贴图)
报警电路:
实现高速太高和低速太低报警。当所加频率太高,达到9时长报警。当所加频率太低,到0时滴滴滴短报警。
(贴图)
程序设计:
#include
sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
sbit jia_key=P3^6;
sbit jian_key=P3^7;
sbit zf_key=P3^5;
bit flag=0;
bit stopflag;
Unsignedchar ,num=1,show_num=0,maichong=10,table_begin=0; unsignedcharcode table1[]={0x01,0x02,0x04,0x08,0x08,0x04,0x02,0x01}; unsignedcharcode
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x7 9,0x71};
void delay (unsigned char i)
{ unsigned char j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void dispose()
{ switch(num)
{ case 0: