当前位置:文档之家› 机电控制工程

机电控制工程


24BYJ48A
步进电机基础
电机旋转一周需要多少个脉冲? 360/5.625×64=64×64=4096
步进电机基础
➢实验中用到的步进电机:四相
a. 四相四拍
a.四相四拍 b.四相双四拍 c.四相八拍
b. 四相双四拍
c.四相八拍
A->B->C->D AB->BC->CD->DA A-> AB-> B->BC->C-> CD-> D-> DA
控制拍子顺序倒置即让电机反转!
步进电机控制
➢环形分配器的实现
采用软件方式: 四相八拍环形分配器数值表如下,在单片机程序中延时 一段时间后按顺序轮转输出以下值以使其正转或反转。
序号 A
B
C
D
方向
引脚 PB1: A相
1
1
0
0
0 反转
PB3: B相
2
1
1
0
0
PB2: C相
3
0
1
0
0
PB4: D相
4
0
1
1
四相八拍环形分配器程序
if(step_choice == EIGHTBEATS) //四相八拍 { if(dir_flag == FORWARD) //正转 { if(step == 0) A(); else if(step == 1) AB(); else if(step == 2) B(); else if(step == 3) BC(); else if(step == 4) C(); else if(step == 5) CD(); else if(step == 6) D(); else if(step == 7) DA(); } else if(dir_flag == BACKWARD) //反转 {…} step++; if(step == 8) step = 0; }
➢ 基本运算
• 相数:
m
• 状态系数: K(单三拍、双三拍时,K=1;单双六拍时,K=2)
• 电脉冲频率:f (Hz)
• 转子齿数: Z
齿距 = 360
步距角
Z齿距 = 拍数
=
360 拍数
Z
360 Kmz
转速n
f
60
360 KmZ
f
60 =
60 f
360
360 KmZ
• 增大转子齿数Z、定子相数m或者运行拍数K,可以减小步距角,提高 控制精度。
机电控制工程
1 步进电机基础 2 步进电机控制
步进电机基础
➢ 步进电机
• 将电脉冲信号变换成相应的角位移或者直线位移的机电执行元件。
• 步进电机的位移量与输入脉冲严格成比例,不会引起误差积累。 • 转速取决于脉冲信号的频率,总位移量取决于总的脉冲信号数,转向
取决于绕组通电顺序。
➢ 应用
• 优点:简化系统,工作可靠,不需要位移传感器就可以达到较精确的 定位,获得较高的控制精度。
1 步进电机基础 2 步进电机控制
步进电机控制
➢ 采用AVR单片机作为主控单元,L298作为驱动芯片。
控制框图如下:
AVR
环形分配器
L298
转过的角度: 脉冲个数
转速:
频率
转向:
绕组通电顺序
步进电机
步进电机驱动电路
引脚PB1、PB3、PB2、PB4分别控制步进电机的A、B、C、D四相。
开始
步进电机速度控制
➢ 速度控制
实际上就是控制系统发出脉冲的频率。系统可以用两种方法确定 脉冲的频率: ❖ 软件延时:通过调用延时子程序的方法实现的,它占用CPU
• 双相轮流(三相双三拍)
AB—BC—CA—AB
• 单双相轮流(三相单双六拍) A—AB—B—BC—C—CA—A
• 单相轮流方式下,每次只有一相控制绕组通电吸引转子,容易使转子在平衡 位置附近产生振荡,运行稳定性较差。另外,在切换时一相绕组断电而另一 相控制绕组开始通电,容易造成失步。
步进电机基础
➢ 基本概念
• 步距 输入一个电脉冲时,转子转过的角度。
• 齿距 各相绕组轮流通电一次,转子就转过一个齿距。
• “单” 每次切换前后只有一相绕组通电。
• “双” 每次切换前后有两相绕组通电。
• “拍” 从一种通电状态换到另一种通电状态叫做一“拍”。
➢ 举例说明(三相步进电机)
• 单相轮流(三相单三拍 ) A—B—C—A
• 缺点:功率小,输出力矩小。
步进电机基础
1. SB接通,SA、SC、SD 断开,磁极B和转子0、 3对齐,其他产生错齿;
2. SC接通,SB、SA、SD 断开,磁极C和转子1、 4对齐,其他产生错齿。
3. 依次类推,A、B、C、 D四相轮流供电,转子 就会沿着A、B、C、D 转动。
步进电机基础
0
5
0
0
1
0
6
0
0
1
1 正转
7
1
0
0
1
脉冲的产生
➢ 定义8个宏
#define A() #define B() #define C() #define D()
(PORTB = 0B00000010) (PORTB = 0B00001000) (PORTB = 0B00000100) (PORTB = 0B00010000)
#define AB() (PORTB = 0B00001010) #define BC() (PORTB = 0B00001100) #define CD() (PORTB = 0B00010100) #define DA() (PORTB = 0B00010010)
引脚 PB1: A相 PB3: B相 PB2: C相 PB4: D相
四相八拍环形分配器程序
if(step == 0) A(); else if(step == 1) AB(); else if(step == 2) B(); else if(step == 3) BC(); else if(step == 4) C(); else if(step == 5) CD(); else if(step == 6) D(); else if(step == 7) DA(); step++; if(step == 8) step = 0;
初始化IO 初始化定时器
初始化AD 开中断 采集AD 显示AD
计算定时器初值
步进电机流程图
外部中断0 改变方向为正
外部中断1 改变方向为反
定时中断
重载定时 寄存器
输出时间 序列
步数+1
设定步数到 N Y 停止
计数器
根据控制算法产生时序脉冲
1、四相四拍: A->B->C->D->A 2、四相双四拍:AB->BC->CD->DA->AB 3、四相八拍: A-> AB-> B->BC-> C-> CD-> D-> DA->A
相关主题