利用单片机实现对步进电机的简单控制
大学毕业设计 C51程序控制步进电机
题目:简易步进电机控制步进电机控制摘要:本设计采用ATMEL公司DIP-40封装的AT89S52单片机实现对四相步进电机的手动和按键控制。
由单片机产生的脉冲信号经过分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。
转速的调节和状态的改变由按键进行选择,此过程由程序直接进行控制。
通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。
电机转动的不同状态由液晶LCD1602显示出来。
而设计的扩展部分可以通过红外信号的发射由另一块单片机和红外线LED完成,用红外万能接收头接收红外信号,可以实现对电机的控制进行红外遥控。
关键字:四相步进电机单片机功率放大 LCD1602步进电机控制 (1)摘要 (1)关键字 (1)前言 (3)1系统总体方案设计及硬件设计 (4)1.1步进电机 (4)1.1.1 步进电机的种类 (4)1.1.2 步进电机的特点 (4)1.1.3 步进电机的原理 (5)1.2 控制系统电路设计 (7)1.3 液晶显示LCD1602 (7)1.4 AT89S52核心部件及系统SCH原理图 (9)1.5 LN2003A驱动 (10)2软件设计及调试 (13)2.1程序流程 (13)2.2软件设计及调试 (14)3 扩展功能说明 (15)4设计总结 (16)5 设计源程序 (16)6 附录 (21)参考文献 (22)附2:系统原理图及实物图 (23)步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。
目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。
分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。
单片机在步进电机控制中的应用
浅谈单片机在步进电机控制中的应用摘要:本文基于stc89c52单片机实现了两个步进电机的数字控制,其中一个工作台可以平稳移动是通过加速、减速控制来实现的;而另外一个驱动工件旋转运动,且可调速、可显示加工时间,从而满足了设备加工控制的需求。
关键词:步进电机;stc89c52单片机一、系统功能本系统主要由两部分组成,即控制部分与显示部分,其中控制部分由电机换向控制、电机转速控制以及加减速控制等功能组成;加工时间显示以及电机转速显示则组成显示部分。
本系统通过单片机实现对两个步进电机的控制,其中一个驱动工作台平稳移动,另外一个则驱动加工工件进行旋转运动;电机转速通过lcd显示,而加工时间的显示则由数码管来实现。
二、电路设计本系统中步进电机采用68v的工作电压,电流最大值为8.28安培,驱动器采用配套的sd-2h086mb驱动器,其响应快且抗干扰性强,因此可以解决步进电机爬行速度低、噪声大、高速力矩低以及有共振区、较低的起动频率和驱动器可靠性差等不足。
不过尽管电机配备有驱动器,但是假如将单片机端口与驱动器控制接口直接连接,则端口的电压将归0,所以单片机系统中还需设置驱动装置。
本文利用专用的驱动芯片,其驱动力强、可靠性高,且适用性好。
26ls31芯片的驱动通过差分电路来实现,按照步进电机的控制需求,1号电机的脉冲发出端口p1.0、方向信号端口p1.1、使能信号端口p1.2以及2号电机的脉冲信号端口p1.3、使能信号端口p1.4等均被驱动,2号电机转向不变,不接方向信号。
其驱动接线图及驱动电路图分别如下图1和图2所示:三、控制系统的实现(一)加减速曲线的分析与实现其实所谓的加减速就是速度变化的过渡过,在起动阶段,控制频率以特定的规律慢慢增加,从而速度可以平稳的升至预定值;而停止时控制频率再以相应的规律慢慢减小,从而速度平稳的降低直至完全停止。
一般加减速算法有梯形曲线和指数曲线以及s曲线三种,其中s曲线算法加减速平稳,而且有较好的快速性及柔性,因此在数控系统中应用广泛。
浅析利用单片机控制步进电机
苎 ! 黪
。 l与 应 用
数 控 技 术
} v o i d t i me 0 ()i n t e r r u 【 p t 1 { TL 0 = ( 6 5 5 3 6 - 5 0 0 ) %2 5 6 ; TH0 =( 6 5 5 3 6 — 5 0 0 ) / 2 5 6 ;
c o unt ++ ;
s b i t s t o p =P2 1 : s bi t z z =P 2 2;
s bi t f z =P2 3;
s bi t up=P2 4;
s b i t d o wn=P2 5: s bi t s e t =P2 6 ; u c ha r c o un t l , k;
…
…
上接第5 页
最 短时 间为2 5 秒, 最长时 间为4 5 秒, 黄灯时 间为 5 秒。 1 . 2系统 的体 系结构及 其 功 能 该系统由单片机、 车流量检测模块 、 违规检测模块 、 按键设置模 块、 信号灯状态模 块、 L E D倒计 时模 块组成最小控制系统 , 如 图2 所 示嘲 。 采用单片机作为控制核心 , 直接控制信号灯的状态变化 , 可以 实现基 本的交通指挥功能 。 L E D 数码管显示倒计 时间 , 以提醒行使 者, 更具人性化 。 违规检 测传感器和 车流量检 测传感器 为单片机采 集数据 , 在 此基础上单片机及 时调整控 制指挥 。 该 系统不仅能实现基本 的交通指挥功 能 , 还 能进行倒计 时显 示、 车 流量检测及调整 、 按键设 置 、 交通违规处理 和紧急处理等 功
u i n t j ;
i R c o u n t == s p e d) e {
b i t z f ; / / 定义一个正反转标 志位 c o unt =O; / } 步 进 电机 1 - 2 相 励 磁 方 式A — AB —B —B C —C —C D — 一 D — i f ( k! =0 ){ j ++; i f ( j = : 4 0 9 6 ) { j = 0 ; c o u n t 1 ++; } ; } ; / / 如果 DA数 据 } / 设 置 了 圈数 则 进 行 统 计 u c h a r t a b 口 ={ 0 x 0 1 , O x 0 3 , 0 x 0 2 , 0 x 0 6 , 0 x 0 4 , 0 x 0 C, 0 x 0 8 , i f ( ( k = : o ) I I ( k I _ c 0 u n t 1 ) ) / / 女 H 未设置 或未 到设置值 , 根据正 0 x 0 9 } ; 反转标志位送 励磁数据 v o i d ma i n () { { i f ( Z f ) { i ++; i f ( i >7 ) i = 0 ; P 0 = t a b [ i 】 ; } P O =O XO 0 1 s p e e d = 3 ; z f =l ;/ / 初始速度 、 方 向设 置 e l s e { i 一 一; i f i == O x f ) i = 7 ; P O = t a b [ i 】 ; } T MOD = 0 X0 1 ; / / 定时器0 工作 在方式 1 , l ms 中断一 次 } T L 0 = ( 6 5 5 3 6 —1 0 0 0 ) % 2 5 6 ; e l e s i f ( ( k! = 0 ) &&( k == c o u n t 1 ) )/ / 如 到设置值 , T H0 =( 6 5 5 3 6 一l 0 0 0 ) / 2 5 6 z 关定时器 , 恢复初始值 EA=1 ; ETO =1 ; { T R0 = 0 ; k = 0 ; j = o ; c o u n t l = O ; P O =O XO 0 l s p e e d =3 ; } ; / 扫描7 个 功能按键 / } wh i l e ( 1 ) } { 参 考 文 献 f ( aa r t = = O )TR0 =1 ; / / 按下启动按钮 , 启 动 定 时器 [ 1 ] 何立民。 张俊谟. 单片机 中级教程: 第2 版[ H ] . 北京: 北京航 空航天 i f ( s t o p == 0 ) { TR0 =0 ; P 0 = 0 X0 0 ; k = 0 ; j =o ; c o u n t 1 =0 ; 大 学 出版 社 , 2 0 0 2 . s p e d= e 3 ; } ;/ / 停 止时关定时器 i f ( z z = =0 )z f = l ;/ / 按下 [ 2 ] 王琼. 单片机原理及 应用 试验教程[ M ] . 合肥 :合肥工 业大学出 正 转 按 钮 时 将 标 志 位 置 位 版社, 2 0 0 2 . i f ( f z = = O )z f = O ;/ / 按 下 反 转 按 钮 时将 标 志 位 复 位 [ 3 ] 吴金戊。 沈庆 阳, 郭庭吉. 8 0 5 1单片机实践与应用[ H ] . 北京: 人 民邮 i f ( u p ==0 ) { i f ( s p e e d! =1 ) { s p e e d --; } ; wh i l e 电 出版 社 。 2 0 0 3 . ( u p = =O ) ; } ; / / 加速 [ 4 ] 周 明安, 朱光 忠, 宋晓华, 肖俊 建. 步进 电机驱动技术发展及 现状 i f ( d o wn==0 ) { i f ( s p e e d! =5 ) { s p e e d++; } ; whi l e [ J ] . 机 电工程技术, 2 0 0 5 , O 2 ( 5 ) : 1 9 — 2 1 . ( d o wn = = O ) ; } ; / / 减速 [ 5 ] 王 晓 明. 电 动机 的 单 片机 控 制[ H ] . 北京: 北 京 航 空航 天 大 学 出版 i f ( s e t = = 0 ) { k ++; wh i l e ( s e t = = 0 ) ; } ; / /圈数设置 社。 2 0 0 2 . }
c语言实现单片机控制步进电机加减速源程序
C 语言实现单片机控制步进电机加减速源程序1. 引言在现代工业控制系统中,步进电机作为一种常见的执行元件,广泛应用于各种自动化设备中。
而作为一种常见的嵌入式软件开发语言,C 语言在单片机控制步进电机的加减速过程中具有重要的作用。
本文将从单片机控制步进电机的加减速原理入手,结合 C 语言的编程技巧,介绍如何实现单片机控制步进电机的加减速源程序。
2. 单片机控制步进电机的加减速原理步进电机是一种能够精确控制角度的电机,它通过控制每个步骤的脉冲数来实现旋转。
在单片机控制步进电机的加减速过程中,需要考虑步进电机的加速阶段、匀速阶段和减速阶段。
在加速阶段,需要逐渐增加脉冲的频率,使步进电机的转速逐渐增加;在匀速阶段,需要保持恒定的脉冲频率,使步进电机以匀速旋转;在减速阶段,需要逐渐减小脉冲的频率,使步进电机的转速逐渐减小。
这一过程需要通过单片机的定时器和输出控制来实现。
3. C 语言实现步进电机加减速的源程序在 C 语言中,可以通过操作单片机的 GPIO 来控制步进电机的旋转。
在编写源程序时,需要使用单片机的定时器模块来生成脉冲信号,以控制步进电机的旋转角度和速度。
以下是一个简单的 C 语言源程序,用于实现步进电机的加减速控制:```c#include <reg52.h>void main() {// 初始化定时器// 设置脉冲频率,控制步进电机的加减速过程// 控制步进电机的方向// 控制步进电机的启停}```4. 总结与回顾通过本文的介绍,我们了解了单片机控制步进电机的加减速原理和 C 语言实现步进电机加减速源程序的基本思路。
掌握这些知识之后,我们可以更灵活地应用在实际的嵌入式系统开发中。
在实际项目中,我们还可以根据具体的步进电机型号和控制要求,进一步优化 C 语言源程序,实现更加精准和稳定的步进电机控制。
希望本文能为读者在单片机控制步进电机方面的学习和应用提供一定的帮助。
5. 个人观点与理解在我看来,掌握 C 语言实现单片机控制步进电机加减速源程序的技术是非常重要的。
单片机驱动步进电机原理
单片机驱动步进电机原理单片机驱动步进电机的原理是通过按照特定的顺序控制步进电机的绕组通电,使其产生旋转运动。
步进电机是一种将电信号转化为机械运动的设备,它通常由定子、转子和驱动组成。
在正常情况下,步进电机通过电磁场的切换来实现旋转。
单片机驱动步进电机的基本原理如下:1. 转动方向:步进电机的转动方向由控制信号的顺序决定。
单片机通过控制输出口的电平来改变绕组的通电顺序,从而改变步进电机的转动方向。
例如,逆时针旋转可按照ABCDA方式通电,而顺时针旋转可按照ABCDB方式通电。
2. 步距角度:步进电机的步距角度取决于每次电磁场的切换步骤。
单片机通过控制输出端口的频率和顺序来控制每步的角度。
例如,通常正常步进电机的步距角度为1.8度,该角度是由每个绕组之间的电磁场切换定时控制获得的。
3. 电流控制:单片机可以通过PWM技术来控制步进电机的电流大小。
PWM 技术可以实现对电机驱动引脚的高低电平及持续时间进行控制,从而实现电流的调节。
通过调节电流大小,可以使步进电机产生更大的转矩,也可以控制步进电机的速度和细分精度。
4. 加速度和减速度控制:步进电机在开始和停止时需要进行加速和减速。
单片机可以通过改变输出端口的电平和频率来控制步进电机的加速和减速过程,从而实现平滑的运动控制。
5. 反馈控制:有些情况下,需要对步进电机的位置进行准确定位。
单片机可以通过加装光电编码器或其他位置反馈传感器,实时监测步进电机的位置,从而实现精确的位置控制和反馈控制。
总结来说,单片机驱动步进电机的原理是通过控制输出端口的顺序、电平和频率来控制步进电机的转动方向、步距角度、电流大小、加速度和减速度等参数,从而实现对步进电机的运动控制。
通过这种方式,可以实现精确的位置控制、速度控制和旋转方向控制。
基于单片机的步进电机遥控设计与实现
陕 西 理 工 学 院科 研 项 目资 助 ( L Y1 - 0 S GK 0 1 )
《 业 控 制 计 算 机 } O 第 2 工 2l 1年 4卷 第 1 O期
理 如 图 2所 示 。
1 控 制器 组成
根 据 图 1所 示组 成 框 图 ,选 择 8 C2 5 9 0 1单 片 机 作 为控 制
器 ,以 4 4输入键盘和按钮作为手动输 入电路 ,选用 D l 0 x S32 作 为时钟 电路 , L 以 CD1 0 6 2作为输 出显示 电路 , 选择 HS 0 8 0 3
( ms 2 ms) 3 1 8 +7 ~( 6ms 2 ms) +7
图 2 步 进 电 机 接 线 图
其 中 MOT ~ T 1 MO 4依 次 接 单 片 机 的 P .~ 13口 。 1 P. 0
出 的控 制 命 令 , 动 步 进 电 机 实 现正 转 或 反 转 。 驱
2 硬 件 电 路 设 计
( ) 进 驱 动 器 2步
步 进 驱 动 器 采 用 的 是 U N 0 3驱 动器 , 是一 个 单 片 高 电 L 20 它 压 、 电流 的达 林 顿 晶体 管 阵 列集 成 电路 。它 是 由 7对 NP 达 高 N 林 顿管 组 成 的 ,它 的 高 电压 输 出 特性 和 阴极 箝 位 二 极 管 可 以转 换 感 应负 载 。
_J _
片
A D转换 +
..... ..... .... .
_J _
机
圈 , 么需要 3 0 56 5 6 = 0 6个脉 冲信号。该 步进 电机 的 那 6 / .2 x 4 4 9
单片机对28BYJ-48步进电机的控制设计
单片机对28BYJ-48步进电机的控制设计再重新看一下上面的步进电机外观图和内部结构图:步进电机一共有5根引线,其中红色的是公共端,连接到 5 V 电源,接下来的橙、黄、粉、蓝就对应了A、B、C、D 相;那么如果要导通A 相绕组,就只需将橙色线接地即可,B 相则黄色接地,依此类推;再根据上述单四拍和八拍工作过程的讲解,可以得出下面的绕组控制顺序表,如表9-1所示:我们板子上控制步进电机部分是和板子上的显示控制的74HC138 译码器部分复用的P1.0~P1.3,关于跳线我们在第3章已经讲过了,通过调整跳线帽的位置可以让P1.0~P1.3控制步进电机的四个绕组,如图9-5所示。
图9-5 显示译码与步进电机的选择跳线如果要使用电机的话,需要把4个跳线帽都调到跳线组的左侧(开发板上的实际位置),即左侧针和中间针连通(对应原理图中的中间和下边的针),就可以使用P1.0 到P1.3 控制步进电机了,如要再使用显示部分的话,就要再换回到右侧了。
那如果大家既想让显示部分正常工作,又想让电机工作该怎么办呢?跳线帽保持在右侧,用杜邦线把步进电机的控制引脚(即左侧的排针)连接到其它的暂不使用的单片机IO 上即可。
再来看一下我们步进电机的原理图,步进电机的控制电路如图9-6所示。
图9-6 步进电机控制电路诚然,单片机的IO 口可以直接输出0 V 和5 V 的电压,但是电流驱动能力,也就是带载能力非常有限,所以我们在每相的控制线上都增加一个三极管来提高驱动能力。
由图中可以看出,若要使 A 相导通,则必须是Q2 导通,此时 A 相也就是橙色线就相当于接地了,于是A 相绕组导通,此时单片机P1 口低4位应输出0b1110,即0xE;如要A、B 相同时导通,那么就是Q2、Q3 导通,P1 口低4位应输出0b1100,即0xC,依此类。
基于51单片机的步进电机小车的控制程序
voidmove_left(uintspeed_l,ucharcw,ucharen);//左电机运动函数
voidmove_right(uintspeed_r,ucharcw,ucharen);//右电机运动函数
void delay(unsignedintk);//延时函数
speed=speed_l;
if(cw==1)
{
cw_left=1;
}
else
{
cw_left=0;
}
if(en==1)
{
en_left=1;
}
else
{
en_left=0;
}
}
voidmove_right(uintspeed_r,ucharcw,ucharen)
{//speed_r速度控制变量cw方向控制变量en使能控制变量
speed=speed_r;//speed数值与速度成反比请结合实际情况进行调节,
if(cw==1)//但速度不能无限加快因为步进电机有速度上限
{//而且速度加快是力矩会下降,容易导致丢步现象
cw_right=1;//所以实际应用当中应调节到速度可力矩比较合适的数值
}//应考虑到电池电压,轮胎直径等因素
{
move_left(15,0,1);
move_right(15,0,1);
delay(800);
}
if(ir_left==0&&ir_mid==0&&ir_right==1)
{
move_left(15,0,1);
move_right(15,0,1);
delay(400);
步进电机的单片机控制方法
"# 步进电机与单片机接口及程序设计
$ ! %# 步进电机与单片机的接口电路 由于步进电机的驱动电流比较大, 所以单片机 与步进电机的连接都需要专门的接口电路及驱动电
图 &# 步进电机与单片机的接口电路流程图
万方数据
>(
武汉工程职业技术学院学报A A A A A A A A A A A A A A A A A A A A A ())>B 8A
步进电机的单片机控制方法
宋! 锦
( 南京信息职业技术学院! 江苏南京: "#$$%& ) 摘! 要! 以四相步进电机为例, 介绍了由 ’(#%#) 驱动的电路原理图, 给出了四相步进电机的正
转反转的程序设计流程图和程序清单。 关键词! 单片机! 步进电机! 控制 中图分类号: *’)$#+ "! 文献标识码:, ! 文章编号: #&-#.)/"% ( "$$& ) $).$$/0.$/ 实验教学、 科研中效果良好。
1""2( :
; 取控制模型
1""28 :
; 反向控制模型 偏移量
%.6: 5&1.<:
万方数据
; 正向控制模型 ; 反向控制模型
!Байду номын сангаас! ! ! ! ! !
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 宋! 锦 : 步进电机的单片机控制方法 "%%&#
I*
! ! 总之, 用单片机来控制步进电机可以解决传统 步进控制器线路复杂, 成本高的问题, 既简化了线 路, 降低了成本, 又大大提高了可靠性。使用起来极 为方便。 参考文献
基于单片机的步进电机驱动控制系统设计
本科毕业设计论文题目基于单片机的步进电机驱动控制系统设计专业名称学生姓名指导教师毕业时间毕业 任务书一、题目基于单片机的步进电机驱动控制系统设计二、指导思想和目的要求步进电机是一种将电脉冲信号转换成相应的角位移或线位移的机电元件。
每出现一个脉冲,它就相应的运行一步。
步进电机具有结构简单、运行可靠、控制方便、控制性能好等优点,在数控机床、绘图仪、打印机及机器人领域得到广泛应用。
为了得到性能优良的控制结果,出现了很多步进电机控制系统,其中采用单片机作为控制核心的控制系统得到了广泛的应用,使用这种控制系统在步进电机的驱动上已经做的非常好。
本课题通过研究步进电机和单片机的原理,实现以单片机为核心的步进电机控制系统设计,达到对步进电机的转速和转角的控制。
三、主要技术指标1. 研究步进电机和单片机的原理,并基于单片机实现步进电机驱动控制系统的设计;2. 利用Proteus 仿真平台仿真实现以单片机作为控制核心对步进电机进行驱动控制的电路设计和软件设计及仿真。
四、进度和要求第01周----第02周: 查找相关资料,对英文资料进行翻译;第03周----第04周: 熟悉步进电机、单片机及如何使用单片机对步进电机进行驱动控制的相关原理;第05周----第06周:熟悉Proteus 8.0的应用;第07周----第13周:设计电路图并利用Proteus 8.0进行仿真实现;设计 论文第14周----第16周:撰写毕业设计论文,论文答辩。
五、主要参考书及参考资料[1] 蔡美琴.MCS—51系列单片机系统及其应用(第二版).高等教育出版社,2004-6-1.[2] 张毅刚,基于Proteus的单片机课程的基础实验与课程的基础实验与课程设计,人民邮电出版社.2012-4-1[3] 张明林,C语言程序设计,西北工业大学出版社,2005.[4] 谭浩强,C++面向对象程序设计.清华大学出版社,2006[5] 雷凯,步进电机细分驱动技术的研究[D].苏州大学硕士论文.2003.[6] 黄勇.廖宇.高林,基于单片机的步进电机运动控制系统设计.湖北名族学院论文.2008.[7] 房玉民,杭柏林.基于单片机的步进电机开环控制系统[J].电机与控制应用.2006.[8] 张巍.浅谈单片机控制步进电机[J].安防科技.2006.[9] 刘宝延,程树康,步进电机及其驱动控制系统[M],1997.11.[10]StePPingmotorhandbook6[M][11]Development of a Novel Drive Topology for a Five Phase Stepper Motor,T.S.Weerakoon and L.Samaranayake,Dept.of Electrical and Electronic Engineering,Faculty of Engineering,University of Peradeniya,Sri Lanka .[12]《Stepper Motor System Basics》[M]AMS advanced micro systems inc. 2000[13]Albert C.Leenhout.Smooth Step Motor Motion With Halt Driver.Annaul Symposium on IMCSD.1995 24 (2).学生___________ 指导教师 ___________ 系主任 ___________摘要步进电机广泛应用于工业,军事和医疗自动化领域,如数控装置,牵伸机,机械手,印刷及包装设备。
基于单片机步进电机的控制系统设计
1 硬 件设 计 本 文介绍 的设计 方案 是基 于单片 机 的 步进 电机运 行控 制系统 。在这个 控制 系统 中, 控 制器是 它的核心 , 因为它 担负着 产生 脉 冲, 发送 、 接受控制命令等任务 。 整个系统 的控制核心是 A T 8 9 C 5 1 。其成本相对较低 , 运行可靠性较高 。 系统 的组成方框图如图 1 所示。 本系统 由单 片机 ( Mc u) 、 电机驱 动 电路 、 L E D显 示 ( 指示 ) 、 按键 电路和看 门狗电路等组成。单 片机 A T 8 9 C 5 1 控 制步 进 电机脉 冲信 号 , 通 图 1 系统 框 图 过外接 键盘作 为输人 控制 步进 电机 的正 反 转、 停止 、 加减速工作状 态 , 并通过 显示 器进 行工作状态信 号输 出。在这个控制系统 中, 单片机 是核心 , 它 通过键 盘接受 指令 、 通 过 运算控制单片机运行 、 并通过显示器进行信 号输出。 2 系统软件设计 当在待机状态下设定好所需 的参数后 , 按 下“ 启停 ” 键, 系统便开始根据设定 的参数 和运行模 式进行 步进 电机控 制脉 冲输 出运 行。 程序 中按照设定参数顺序输出控制 脉冲 是受定 时器中断控 制。( 见图 2 ) 3技术经济分析 对 于 电动机来讲 ,要 求不 断 的减 少硬 件, 降低成本 , 并不 断提 高起 原先 的稳定性 、 可靠性 , 对技术 的要求越来越高 。设计工作 是工 程建设的关键环节 , 做好设计工作对工 程建 设 的工期 、 质量 、 费用 和应 用 于实际后 的运行 安全性和 的经济效益 , 起着决定性作 用 。因此 ,设计时一定要力求技 术成 熟 、 可 靠, 并尽可能 的节约资金 。本设计采用步进 电动机作 为控制对象 , 因为步进 电动机作为 数字控制 系统 的一种元件 , 其功用是将脉 冲 电信号变换为 角位移或直线位移 。 它能按照 图 2 步 进 电机 运 行 模 块 主 流 程 控制 脉 冲的要求 , 能迅 速启动 、 正转 、 反转 、 加速 、 减速 、 制动 ; 工 作时能够 不失 步 , 步距 精度 高 , 鉴 于这 些特点 , 步进 电机在 自动控 [ 1 ] 王晓明 , 胡 晓柏 . 电动机 的单 片机 控制[ M] . 北京 : 北京航 空航 天 大 制系统 中 , 特别是开环的数字程序控制 中作为传动元件而得 到广泛 学 出版社, 2 0 0 2 . 5 , 1 : 1 8 1 — 2 0 8 . 应用 。 【 2 】 史敬灼. 步进 电动机 伺服控制技 术【 M 】 . 2 0 0 7 , 3 , 2 : 2 3 — 3 5 . 本系统选 A T 8 9 C 5 1 , 成本较低 。 且A T 8 9 C 5 1内有 4 K的 R O M存
基于STC89C52单片机的步进电机控制技术研究与实现
1 . 引 言
型化 的硬件 电路和软件设 计方法 。该 步进 电机
硬件 控制 电路分为 电源模 块、按键控 制模块 、 步进 电机及 驱动模块 、测速模块及 显示模块等 部分组成 。整个系统软 件设计采用 模块化设计 方法 ,由主程序 、预置 子程序 、正转子程序 、 反转 子 程序 、加减 速 和显 示 子程 序 等模 块 组 成 。通过 向步进 电机 驱动 电路 发送 控制信 号, 实 现对 步进 电机 的起 停 、正 反转 、调速 等 控
I 一 皇子燕 ………………………….
基于S TC8 9 C5 2  ̄ P . . B = 祝 的 步 进 电讥控制 技术研 究与宾现
南京航 空航 天大学金城 学院 傅 忠云 熟 医药化 工设备有 限公 司 王 震
【 摘要 】本 文采用 p  ̄ S T C 8 9 C 5 2 单 片机 为核心 ,进行 了步进 电机控制系统的软硬设计 ,实现 了步进 电机 的起停 、正反转、调速等控制 ,并实现 了电机转速 的实时显示。经 实验验证 ,该 系统具有软硬件设计合理 、运行稳定 可靠、抗干扰能力强及实时显示性好等特点。 【 关键词 】步进 电机 ;S T C 8 9 C 5 2 ;调速
设计 中采用对 射式光 电传感 器H 9 2 B 4 为 电 机 的测速元件 。红外线 光电传感器 是利 用被检 测 物体对红 外光束 的遮 光或反射 ,由同步 回路 选通而检测物 体 的有无 ,其物体 不限于金 属, 对所有能反射光线的物体均可检测 。 本 系统中通过光 电传感 器实现测速 的具体 方法为 :在 电机 的轴 上连接一个6 O 度 的扇形挡 O . 6 步进 电机 的驱动 ,搭建的三相桥 式驱动 电路 的 片 ,电机 转动 的时候 ,当有挡片 挡住时 ,P 结构 图如 图4 所示 。 口为高 电平 ,通过 定时 中断方式进行 累加 ,直 制 ,并实时显示 电机转速 。经 反复实验证 明, 根 据 步 进 电机 及 电源 考 虑 ,本 设 计 中 到P O . 6 口变为低 电平 即挡板 转过 ,当挡 板离开 本套 系统软硬件 设计合理 、抗 干扰能力 强、实 选用 的场 效应管 是M O S F E T I R F P 4 5 0 。M O S F E T 时 ,P 0 . 6 为低 电平 ,将 累加变量清零 。这样得 时显示性能 良好 。 I R F P 4 5 0 内部 已经封装 了一个 快恢 复二极 管 , 到 的时 间间隔 即是 电机转 动1 / 6 周 的时 问,通 2系统总体设 计方案 根据 步进 电机控 制 系 统设 计要 求 ,整 个 所 以在设计 电路时可 以不 用在 选择快恢 复二极 过 换算得到一 分钟转 的圈数 ,从而计 算 出当前 ‘ 的转速 。如此 循环进行 ,则可实时 的显示 电机 控制 系统 电路 可 以分为 电源 模块 、按键 控制模 管 。 块 、步进 电机 驱动模块 、步进 电机模 块、测速 3 ) 光 电 耦 合 部 分 的当前转 速。 模 块 、显示 模块等部分 。步进 电机控 制系统方 前面 提 到本 系 统选 用 的是 大 功率 的场 效 3 . 5 显 示 模 块 框 图如图1 所示。 应管 ,因此 ,要考虑到 实际使用 中的干扰和 电 液 晶显示 器以其微功耗 、体 积小 、显示 内 本 设计 中选用 的 单片机 是S T C 8 9 C 5 2 R C , 压安全 ,所 以要在单 片机 与驱动器 之间使用 必 容丰富 、超薄轻巧 的诸 多优 点,在 袖珍式仪 表 包括单片机 的下载 电路 及单片机 的一些外 围电 要 的光 电 隔离 器 。在 本设 计 中选 用 的是 芯 片 和低功耗 应用系统 中得到越来越 广泛 的应 用 。 N 2 5 ,该器件具有 体积小 、寿命 长、无触 点、 本设计中使用的是2 行1 6 字 的1 6 0 2 液 晶模块 。 路 。在 步进 电机 的选 择上 ,考虑 到三相混合 式 4 3 . 6系统 实物 图 步进 电机 比二相步进 电机有更好 的低速平稳 性 抗干扰 性强等特 点,因而是开 关电路 、逻辑 电 根据 系统原理 图,所 搭建的系统硬 件实物 及输 出力矩 ,所 以选 择 了5 7 H 3 P 7 6 5 2 A 3 三相 混 路 、长线传 输 、模/ 数变换 、微 控制器 的 隔离
单片机驱动步进电机
用单片机控制步进电机步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
一、步进电机常识常见的步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。
在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。
它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。
这种步进电机的应用最为广泛。
二、永磁式步进电机的控制下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。
图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。
要使用步进电机转动,只要轮流给各引出端通电即可。
将COM端标识为C,只要AC、A C、BC、B C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、A、B、B轮流接地。
下表列出了该电机的一些典型参数:表135BY48S03型步机电机参数型号步距角相数电压电流电阻最大静转距定位转距转动惯量0.2647 180 65 2.5 35BY48S03 7.5 4 12有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,因此用一块开路输出达林顿驱动器(ULN2003)来作为驱动,通过P1.4~P1.7来控制各线圈的接通与切断,电路如图3所示。
基于单片机的步进电机控制系统设计与实现
系统中步进电机负载功率较大 ,需要将驱动步进电机的 强电和单片机控制系统的弱电隔离开来 ,使得外部电路的干 扰不至于影响或损坏单片机控制系统 ,从而提高系统的可靠 性 ,增强抗干扰能力 。工程实践中一般采用电子开关或光电隔 离的方法来实现强弱电隔离 。对于步进电机 ,通常使用功率放 大器来提供步进电机的工作电流 ,将光电隔离器传送的弱电 信号变为强电信号 ,可使用集成功放或分立元器件 。这里选用 工作可靠 、寿命长 、无火花 、抗干扰能力强 、开关速度快的直流 固态继电器 (DC2SSR)来实现对控制信号的隔离与放大 。国产 直流固态继电器 JGX - 0610M 可满足本设计需要 ,它的输入接 通电压 3V ,输入关断电压 1V ,输出电压 50V ,输出电流 5A ,输 出漏电流 ≤50μA。
图 1 控制系统框图
2 硬件电路设计
2. 1 键盘 、L ED 模块 为提高系统的智能化水平扩展了 4 ×4 键盘和 4 片共阴
LED 实现人机对话 。单片机系统通电工作后 ,由键盘输入步 进电机的转速 、转向 、步数 、启停等 , LED 数码管动态显示步进 电机转速与转向 (正转和反转动态显示不一样 ) 。单片机系统 采用通用键盘 /显示控制芯片 8279来管理键盘和数码管 ,减少 主机负担 、提高显示的稳定性 ,其接口电路如图 2所示 。
各模块控 制 程 序 均 采 用 汇 编 语 言 编 程 , 并 使 用 了 外 部 ROM 和 RAM。主 CPU 模块在完成系统初始化后根据用户在 显示面板上进行的不同设置执行相应的程序模块 ,有工作页 面 、主菜单页面 、诊断管理页面 、规格选择页面 、自动调整页面 、
仪器仪表用户
绝对值统计页面 、统计表管理页面 、图形显示页面 、图形触发 页面 、密码管理页面等 。工作页面即是系统启动后自动显示 的页面 ,包括系统运行时间 、速度 、检测烟包数 、烟包规格等 ;诊 断管理页面可以关闭或执行各种故障诊断 ,设置工作参数 、固 定检测及输出锁定管理等 ; 规格化处理就是为了使得系统能 够对光电管差别作出补偿 ,该页面允许使用者对该系统所有 的光电管的平均工作基准和平均剔除基准进行图形化检测 ; 自动调整页面可以进行系统的自动调整如系统对经过光电管 前面的烟包所做的状态分析的自动校准等 。其主 CPU 模块控 制程序流程图如图 2所示 。烟丝侧和滤咀侧信号处理模块控 制程序完成采集数据并与系统设置的剔除基准值进行比较判 断是否空头或缺支 ,与主 CPU模块进行通信 ,执行主 CPU 模块 发送的指令 。
单片机控制的小扭矩步进电机调速
要实现单片机控制的小扭矩步进电机调速,可以按照以下步骤进行:1. 选择步进电机和驱动器:根据需要调速的要求和扭矩需求,选择适合的小扭矩步进电机和相应的驱动器。
确保驱动器能够与单片机进行通信,并能提供足够的电流和精确的步进控制。
2. 连接电路:将步进电机与驱动器进行连接,包括电源、控制信号和电机线圈的连接。
确保连接正确并稳定。
3. 编程控制:使用单片机编写程序,控制步进电机的转速和方向。
可以通过控制驱动器发送给电机的脉冲信号的频率和脉冲数来实现调速。
频率和脉冲数的变化会影响步进电机的转速和步距,从而实现调速。
4. 设置加速度和减速度:为了平滑调速,可以在程序中设置加速度和减速度的参数。
通过逐渐增加或减小脉冲信号的频率,可以实现平稳的调速过程。
5. 反馈控制(可选):如果需要更精确的调速,可以添加反馈控制系统。
例如,可以使用光电传感器或编码器来检测电机的转速,并通过单片机对驱动器进行实时的调整和反馈控制。
6. 测试和优化:完成编程后,进行测试和优化。
通过改变程序中的参数,如脉冲频率、脉冲数和延时等,来调整电机的转速和步距,以满足实际需求。
在实施上述步骤时,需要注意以下几点:-确保电源稳定可靠,能够提供足够的电流和电压给步进电机和驱动器。
-注意步进电机的最大允许电流,不要超过其额定值,以避免过热和损坏。
-需要根据具体步进电机和驱动器的规格书和技术资料,了解其控制信号的特性和工作方式,确保正确配置和连接。
以上是基本的步骤和注意事项,具体实现会因具体的电机和单片机而有所差异。
根据实际情况,可以参考相应的电机和驱动器的说明文档、单片机编程手册以及相关的控制原理和技术资料,进行详细的设计和实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用单片机实现对步进电机的简单控制
作者:吴云
来源:《计算机光盘软件与应用》2013年第08期
摘要:本文主要介绍了利用LY-51SV2.3开发板实现对步进电机的简单控制,以实现步进电机的正反转、加减速以及开始停止等功能。
通过对步进电机的控制,使人们对开发板的应用以及如何编写C语言程序有更深层次的理解。
通过本文的介绍,也为下一步更好的利用开发板控制步进电机打下一个基础。
关键词:单片机;步进电机;语言
中图分类号:TP368.1
目前,单片机应用得到了非常广泛的应用,几乎涉及到了社会生活中的各个领域,对于与计算机相关专业的单片机的知识有一个简单的学习了解是必要的,而对于初学者或者教学人员利用开发板进行学习是有效的途径。
开发板是学习和实践的最好产品,因为有配套测试好的软件和硬件,这样用户就不必操心组建开发系统的过程。
只需要专心研究程序。
开发板只不过是个工具,利用这个工具,可以使我们更快的了解并掌握需要的知识。
1设计思路
本次单片机使用STC89C51,通过开发板的5个按键K1-K5分别实现对步进电机的加减速、正反转与停止的控制,在实现正反转的过程中分别由Led指示灯进行指示,并在数码管上显示当前速度的大小值,其最大值不超过18,在整个按键过程中是由键盘扫描函数来控制,速度的大小值是由显示函数在数码管上显示出来。
2端口、函数与变量定义
#defineKeyPortP3//由P3口连接控制按钮
#defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换
sbitLATCH1=P2^2;//定义锁存使能端口段锁存
sbitLATCH2=P2^3;//位锁存
sbitA1=P1^0;//定义步进电机连接端口
sbitB1=P1^1;sbitC1=P1^2;sbitD1=P1^3;sbitled=P1^5;sbitled1=P1^7;
unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f};
unsignedcharcodedofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedcharTempData[8];//存储显示值的全局变量
定义AB相通电,其他相断电,定义BC相通电,其他相断电,定义CD相通电,其他相断电,定义D相通电,其他相断电,定义A相通电,其他相断电,定义B相通电,其他相断电,定义C相通电,其他相断电,定义D相通电,其他相断电全部断电
unsignedcharSpeed=1;bitStopFlag=1;
unsignedcharFlag=1;//定义电机正反转变量标志
voidDisplay(unsignedcharFirstBit,unsignedcharNum);//显示函数,在数码管显示具体速度值
voidInit_Timer0(void);unsignedcharKeyScan(void);
延时函数DelayUs2x(unsignedchart),voidDelayMs(unsignedchart)
3函数调用过程
voidDelayUs2x(unsignedchart)voidDelayMs(unsignedchart)
main()
{unsignedinti=512;unsignedcharnum;Coil_OFF;
while(1){num=KeyScan();//循环调用按键扫描
if(num==1)//第一个按键,速度等级增加
{if(Speed
elseif(num==2)//第二个按键,速度等级减小
{if(Speed>1)
Speed--;}
elseif(num==3)//电机停止
{Coil_OFF;
StopFlag=1;led=1;
led1=1;EA=0;}
elseif(num==4)//电机启动
{Init_Timer0();StopFlag=0;
Flag=1;led=1;
led=0;led1=1;}
elseif(num==5)//反转
{Init_Timer0();StopFlag=0;
Flag=2;led1=1;
led1=0;led=1;}
TempData[0]=dofly_DuanMa[Speed/10];
TempData[1]=dofly_DuanMa[Speed%10];}}
voidDisplay(unsignedcharFirstBit,unsignedcharNum) {staticunsignedchari=0;
DataPort=0;LATCH1=1;
LATCH1=0;DataPort=dofly_WeiMa[i+FirstBit];
LATCH2=1;LATCH2=0;
DataPort=TempData[i];LATCH1=1;
LATCH1=0;i++;if(i==Num) i=0;}
voidInit_Timer0(void)
voidTimer0_isr(void)interrupt1
{Display(0,8);if(!StopFlag){if(Flag==1)
{if(times==(20-Speed))//最大值18,所以最小间隔值20-18=2 {times=0;
switch(i){
case0:Coil_D1;i++;break; case1:Coil_C1;i++;break; case2:Coil_B1;i++;break; case3:Coil_A1;i++;break; case4:i=0;break; default:break; }}times++;}
if(Flag==2)
{if(times==(20-Speed))//最大值18,所以最小间隔值20-18=2 {times=0;switch(i)
{case0:Coil_A1;i++;break; case1:Coil_B1;i++;break; case2:Coil_C1;i++;break; case3:Coil_D1;i++;break; case4:i=0;break; default:break; }}times++;}}}
unsignedcharKeyScan(void)
{unsignedcharkeyvalue;
if(KeyPort!=0xff)
{DelayMs(10);if(KeyPort!=0xff)
{keyvalue=KeyPort;while(KeyPort!=0xff);switch(keyvalue) {case0xfe:return1;break; case0xfd:return2;break;
case0xfb:return3;break; case0xf7:return4;break;
case0xef:return5;break; case0xdf:return6;break;
case0xbf:return7;break; case0x7f:return8;break;
default:return0;break; }}}return0;}
4总结
到此为止,整个控制步进电机的设计就做完了,由于篇幅有限,本文里有一些具体函数没有内容,但这些函数都有现成的模式可供应用。
通过对步进电机的控制,使我们对单片机的应用有了一定的理解,并对使用C语言编程来控制步进电机有了更明确的理解,掌握了一定的知识,并对以后的进一步学习有了一定的基础。
参考文献:
[1]郭天祥.新概念51单片机C语言教程:入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2011,02.
[2]杨欣,王玉凤.电子设计从零开始[M].北京:清华大学出版社,2012,05.
[3]张毅刚.新编MCS-51单片机应用设计(第3版)[J].哈尔滨工业大学,2008,04.。