步进电机控制原理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
直流电机调速
5.6 PWM控制-SCR硬件实现方法
5.6 直流电机控制
*关于频率和占空比的确定,对于 12M晶振,假定PWM输出频率为 1KHZ,这样定时中断次数 * *设定为C=100,即0.01MS中断一次, 则TH0=FF,TL0=F6;由于设定中断时 间为0.01ms,这样可以设定占空比 可从1-100变化。即0.01ms*100=1ms
void timer0(void) interrupt 1 using 2 { static uchar click= 0 ; /*中断次数计数器变量*/ TH0=V_TH0; /*恢复定时器初始值*/ TL0=V_TL0; ++click; if (click>=100) click=“0”; //click控制一个PWM周期的时长 if (click<=ZKB1) /*当小于占空比值时输出低电平,高于时 是高电平,从而实现占空比的调整*/ P1_3=0; else P1_3=1;
}
unsigned char ZKB; //ZKB为占空比调节变量
#void main (void) { init_sys(); ZKB1=40; /*占空比初始值设定*/ while(1) { if (!P1_1) //如果按了+键,增加占空比 { Delay5Ms(); if (!P1_1) { ZKB1++; } } if (!P1_2) //如果按了-键,减少占空比 { Delay5Ms(); if (!P1_2) { ZKB1--; } } /*对占空比值限定范围*/ if (ZKB1>99) ZKB1=1; if (ZKB1<1) ZKB1=99; }
AB 单片 机 DB CB
步进 电 机接 口 电路 光电 隔离
步 进 电机类 型及 工作 方式 选择
步进 电机 驱动 器
A B C 步进 电机
微型计算机控制步进电机系统框图
5.6 步进电机控制
2.步进电机控制
8051 单片机 P1.2 P1.1 P1.0 控制 信号 步进电 机驱动 器
A B C 步进 电机
360 Zrm
m KN
5.6 步进电机控制
控制的关键问题
主要解决三个问题:
1) 软件的方法实现脉冲序列
2)步进电机的方向控制
3)步进电机功率放大
步进电机的位移控制
步进电机的运转速度控制
5.6 步进电机控制 驱动方式
5.6 步进电机控制 光电隔离
5.6 步进电机控制
1. 步进电机驱动方式
特点: 1)受脉冲控制,给就转,不给不转。 2)脉冲频率越高,转速越快。 3)改变通电顺序,可以控制其正反转。
5.6 步进电机控制工作原理
•
当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁
场会带动转子旋转一角度,使得转子的一对磁场方向与定 子的磁场方向一致。
•
当定子的矢量磁场旋转一个角度,转子也随着该磁场转一 个角度。每输入一个电脉冲,电动机转动一个角度前进一
步序
P1口输出状态
绕组
通电状态字
1 2 3 4 5
6
00000001 00000011 00000010 00000110 00000100
00000101
A AB B BC C
CA
01H 03H 02H 06H 04H
05H
5.6 步进电机控制
入口 是正转吗 F0=0? Y 设正转数据指针 R1←#POINT 建立反转数据指针 R0←#POINT N
LOOP3:DJNZ R0,LOOP1 RET
;步数减1为0?
5.6 步进电机控制
正、反转通电状态字表 POINT:DB 01H, 03H, 02H, 06H, 04H,05H,00H; 正转 DB 01H, 05H, 04H, 06H, 02H,03H, 00H;反转
#include <reg52.h> unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10};//正转 unsigned char code B_Rotation[4]={0x10,0x08,0x04,0x02};//反转 void Delay(unsigned int i)//延时 { while(--i);} main() { unsigned char i; while(1) { for(i=0;i<4;i++) //4相 { P1=F_Rotation[i]; // 正转查表 Delay(500); // 改变这个参数可以调整电机转速 } } }
4
3
2
C
A’
5.6 步进电机控制
三相六拍方式—— 通电顺序:
A C’ B’
A→AC→C→CB→B→BA →A
旋转方向:
1
4 B
3
2
顺时针
C
A’
5.6 步进电机控制
步进电机的步距角
步进电机可工作于单相通电方式,也可工作于双相通电方式以及 单相、双相交叉通电方式,选用不同的工作方式,可使步进电机具有 不同的工作性能,诸如减小步距,提高定位精度和工作稳定性等。 步距角θ: N为电动机相数;K=1,2,4。 Zr是转子齿数;m是运行拍数,通常等于相数或相数的整数倍,即
5.6 步进电机控制
单三拍方式——
通电顺序: A→B→C→A
A C’ B’
旋转方向:
逆时针
1
4
• 在磁拉力的作用下,转子的 齿与主磁极对齐(转子转向 到磁路磁阻最小的位置)。 • 由于每次只有一相绕组通电, 转子容易在平衡位置附近振 荡,稳定性不佳,实际很少 使用。
2
3
B
C
A’
5.6 步进电控制
三 相 六 拍 控 制 程 序 流 程 图
取控制字
Y
是最后一个 控制字? N 输出控制字 Y 调延时子程序 修改控制字地 址
步数到? R0-1=0? Y 返回
N
5.6 步进电机控制
MOV R0, #100 ROUTN:JB F0,LOOP2 MOV R1,#POINT LOOP1:MOV A,@R1 JZ ROUTN MOV P1,A ACALL DELAY INC R1 AJMP LOOP3 LOOP2:MOV ADD MOV AJMP A,#POINT A,#07H R1,A LOOP1 ;转动步数 ;判别正反转 ;建立正转通电状态 字地址指针 ;读通电状态字 ;结束字符?是,转到ROUTN ;输出通电状态字 ;延时 ;修改通电状态字地址指针 ;建立反转通电状态字地址指针 ;找到反转状态字查表首地址
双三拍方式——
通电顺序: AC→CB→BA→AC
B’
旋转方向:
顺时针
B
A’
C
5.6 步进电机控制
三相六拍方式—— 通电顺序:
A B’
C’ A→AB→B→BC→C →CA →A
旋转方向: 逆时针 比三相三拍步距角小一半, 精度更高,且转换过程始 B 终有一个绕组通电,工作 稳定。这种方式大量应用。
1
5.6 步进电机控制
步进电机是将电脉冲信号转变为角位移或线位移的开环控制
元步进电机件。在非超载的情况下,电机的转速、停止的位 置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影 响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机 按设定的方向转动一个固定的角度。结构和控制简单,容易
调整,适用在速度和精度要求不太高的场合。
连续旋转一周 C’ A B’
1
4 B
3
2
C
A’
5.6 步进电机控制
单三拍方式—— A B’
通电顺序:
A → C → B→ A C’ 1
旋转方向:
顺时针
4 B
3
2
C
A’
5.6 步进电机控制
A C’ B’
双三拍方式——
通电顺序:
AB→BC→CA→AB
旋转方向:
逆时针
B
A’
C
5.6 步进电机控制
A C’
步。它输出的角位移与输入的脉冲数成正比、转速与脉冲
频率成正比。
5.3 步进电机控制
可通过软件或硬件 完成脉冲分配
步进电机的三种工作方式:以三相步进电机为例,有三相 单三拍,三相双三拍,三相单双六拍。
相数:步进电机内部的线圈组数 单:每次只给一相绕组通电
双:每次给两相绕组通电
拍:从一种通电状态变为另一种通电状态,称为一拍。
#include <REGX51.H> #define uchar unsigned char #define V_TH0 0XFF //定义定时器单次定时时间长度 #define V_TL0 0XF6 #define V_TMOD 0X01 //单片机定时器0,工作在方式1, void init_sys(void); void Delay5Ms(void); /*系统初始化函数*/ 设定中断,初值