STC系列PWM方式控制两相步进电机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四.调试程序
【程序一】
#include <REG51.H>
#include <intrins.h>
#define U8 unsigned char
#define U16 unsigned int
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^5;
sbit key4=P1^6;
}
}
////////////////////主函数入口////////////////////////////
sfr AUXR= 0X8E;
sfr CCON = 0xD8; //PCA控制寄存器
sfr CMOD = 0xD9; //PCA模式寄存器
sfr CCAPM0 = 0xDA; //PCA模块0模式寄存器//模块0对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)
八.课设说明
一.课程设计要求
通过计算机对单片机芯片的编程,将单片机与驱动器相连,从而实现对步进电机的各种方式控制。
二.课程设计目的
1.根据所期望的结果编写程序,并在实验仪器上调试和验证。
2.使用步近电机的工作原理与步进电机驱动器。
3.学习控制步进电机转角、速度、方向的实时软件设计
三.所用仪器及相关说明
现在以集电极开路和PNP输出为例,接口电路示意图如下:控制器集电极开路输出
图2.输入接口电路(共阴极接法)控制器PNP输出
注意:VCC值为5V时,R短接;VCC值为12V时,R为1K,大于1/8W电阻;
VCC值为24V时,R为2K,大于1/8W电阻;R必须接在控制器信号端。
功能选择(用驱动器面板上的DIP开关实现)
//////////////////////延时子程序/////////////////////////////
void DelayMs(U8 ms) //在11.0592M晶振下,stc10f系列(单周期指令)的ms级延时
{
U16 i;
while(ms--)
{
for(i = 0; i < 850; i++);
串联接法时驱动器电流等于电机绕组电流。
安装
周围要有20mm的空间,不能放在其它发热的设备旁,要避免粉尘、油雾、腐蚀性气体,湿度太大及强振动场所。
故障诊断
状态灯指示
RUN:绿灯,正常工作时亮。
ERR:红灯,故障时亮,电机相间短路、过压保护和欠压保护。
故障及排除
故障
原因
解决措施
LED不亮
电源接错
检查电源连线
//* CCAPOH = CCAPOL = 0X80; //模块0输出占空因数为50%
//* CCAPOH = CCAPOL = 0X40; //模块0输出占空因数为75%
void PWM_clock(U8 clock);
void PWM_start(U8 module,U8 mode);
/*****************************************************************************
sbit CF = 0xDF; //PCA计数溢出标志位
sbit CR = 0xDE; //PCA计数器运行控制位
sbit CCF1 = 0xD9; //PCA模块1中断标志
sbit CCF0 = 0xD8; //PCA模块0中断标志
//* CCAPOH = CCAPOL = 0XC0; //模块0输出占空因数为25%
定位精度高。广泛适用于雕刻机、数控机床、包装机械等分辩率要求较高的设
备上。
电气参数
输入电压
直流18~50V输入
输Biblioteka Baidu电流
小于4安培
输出电流
1.0A~4.2A
功耗
功耗:80W;内部保险:6A
温度
工作温度-10~45℃;存放温度-40℃~70℃
湿度
不能结露,不能有水珠
气体
禁止有可燃气体和导电灰尘
重量
200克
ENA-:脱机使能复位信号输入负端
脱机使能信号有效时复位驱动器故障,禁止任何有效的脉冲,驱动器的输出
功率元件被关闭,电机无保持扭矩。
控制信号连接
上位机的控制信号可以高电平有效,也可以低电平有效。当高有效时,把所有控制信号的负端连在一起作为信号地,低有效时,把所有控制信号的正端连在一起作为信号公共端。
OFF
OFF
OFF
OFF
OFF
OFF
OFF
步数
400
800
1600
3200
6400
12800
25600
1000
2000
4000
5000
8000
10000
20000
25000
控制方式选择
拨码开关SW4位可设置成两种控制方式:
当设置成“OFF”时,为有半流功能。当设置成“ON”时,为无半流功能。
设置输出相电流
电源电压低
提高电源电压
电机不转,且无保持扭矩
电机连线不对
改正电机连线
脱机使能RESET信号有效
使RESET无效
电机不转,但有保持扭矩
无脉冲信号输入
调整脉冲宽度及信号的电平
电机转动方向错误
动力线相序接错
互换任意两相连线
方向信号输入不对
改变方向设定
电机扭矩太小
相电流设置过小
正确设置相电流
加速度太快
减小加速度值
sfr CCAP0H = 0xFA; //PCA模块0的捕获寄存器高位
sfr CCAP1L= 0xEB; //PCA模块1的捕获寄存器低位
sfr CCAP1H = 0xFB; //PCA模块1的捕获寄存器高位
sfr PCA_PWM0 = 0xF2; //PCA PWM模式辅助寄存器0
sfr PCA_PWM1 = 0xF3; //PCA PWM模式辅助寄存器1
1.04
ON
OFF
ON
1.91
1.36
OFF
OFF
ON
2.37
1.69
ON
ON
OFF
2.84
2.03
OFF
ON
OFF
3.31
2.36
ON
OFF
OFF
3.76
2.69
OFF
OFF
OFF
4.20
3.00
半流功能
半流功能是指无步进脉冲500ms后,驱动器输出电流自动降为额定输出电流的70%,用来防止电机发热。
sfr CCAPM1 = 0xDB; //PCA模块1模式寄存器//模块1对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)
sfr CL = 0xE9; //PCA定时寄存器低位
sfr CH = 0xF9; //PCA定时寄存器高位
sfr CCAP0L= 0xEA; //PCA模块0的捕获寄存器低位
TMOD|=0x02; //8位自动重装载
TH0=0xe1;
//TR0=1;
}
CMOD |= (clock<<1);
//CMOD=0x84;
CL = 0;
CH = 0;
}
void PWM_Start(U8 module,U8 R0,U8 R1)
{
CCAP0L= 0XFF-(R0*256/100);
电机堵转
排除机械故障
驱动器与电机不匹配
换合适的驱动器
驱动器接线
一个完整的步进电机控制系统应含有步进驱动器、直流电源以及控制器(脉冲源)。以下为典型系统接线图:
3.单片机STC12C5A60S2系列
PWMCCAPMn.1用来使能脉宽调制模式
当PCA计数值与模块的捕获/比较寄存器的值相匹配时,如果TOG位(CCAPMn.2)置位,模块CEXn输出将发生翻转。当PCA计数值与模块的捕获/比较寄存器的值相匹配时,如果匹配位MATn(CCAPMn.3)置位,CCON寄存器的CCFn位将被置位。CAPNn(CCAPMn.4)和CAPPn(CCAPMn.5)用来设置捕获输入的有效沿。CAPNn位使能下降沿有效。CAPPn位使能上升沿有效。如果两位都置位,则两种跳变沿都被使能,捕获可在两种跳变沿产生。通过置位CCAPMn寄存器的ECOMn位(CCAPMn.6)来使能比较器功能。每个PCA模块还对应另外两个寄存器CCAPnH和CCAPnL。当出现捕获或比较时,它们用来保存16位的计数值。当PCA模块用在PWM模式中时 它们用来控制输出的占空比。
U8 table[4]={0xea,0xf2,0xfa,0xfc};
U8 table1[4]={0xfc,0xfa,0xf2,0xea};
U16 timer0=0;
U16 j=0;
void DelayMs(U8 ms);
void PWM_clock(U8 clock);
void PWM_start(U8 module,U8 mode);
设置PWM时钟信号来源函数
参数:Clock
0:系统时钟/12(即12分频);
1:系统时钟/2(即2分频);
2:定时器0的溢出脉冲;
3: ECI/P1.2(或P4.1)脚输入的外部时钟;
4:系统时钟(即不分频) ;
5:系统时钟/4(即4分频);
6:系统时钟/6(即6分频);
7:系统时钟/8(即8分频);
脉宽调节模式(PWM)
脉宽调制(PWMPulse Width Modulation)是一种使用程序来控制波形占空比、周期、相位波形的技术。
PCA工作模式寄存器CMOD
CPS2、CPS1、CPS0:PCA计数脉冲源选择控制位。当三者分别为0、1、0时,选择PCA/PWM时钟源输入为定时器0的溢出频率。由于定时器0可以工作在1T模式,所以可以达到计一个时钟就溢出,从而达到最高工作频率CPU时钟SYSclk。通过改变定时器0的溢出率,可以实现可调频率的PWM输出。
/*****************************************************************************/
void PWM_Clock(unsigned char clock)
{
if(clock==2)
{
AUXR |= 0x80;//定时器0时钟为Fosc,即1T
控制信号接口
控制信号定义
PLS/CW+:步进脉冲信号输入正端或正向步进脉冲信号输入正端
PLS/CW-:步进脉冲信号输入负端或正向步进脉冲信号输入负端
DIR/CCW+:步进方向信号输入正端或反向步进脉冲信号输入正端
DIR/CCW-:步进方向信号输入负端或反向步进脉冲信号输入负端
ENA+:脱机使能复位信号输入正端
功率接口
+V、GND:连接驱动器电源
+V:直流电源正级,电源电压直流16~50V。最大电流是5A。
GND:直流电源负级。
A+ A- B+ B-:连接两相混合式步进电机
驱动器和两相混合式步进电机的连接采用四线制,电机绕组有并联和串联接法,
并联接法,高速性能好,但驱动器电流大(为电机绕组电流的1.73倍),
为了驱动不同扭矩的步进电机,用户可以通过驱动器面板上的拨码开关SW1、SW2、SW3位来设置驱动器的输出相电流(有效值)单位安培,各开关位置对应的输出电流,不同型号驱动器所对应的输出电流值不同。具体见表2。
输出电流(A)
SW1
SW2
SW3
PEAK
RMS
ON
ON
ON
1.00
0.71
OFF
ON
ON
1.46
主要特点
(1)平均电流控制,两相正弦电流驱动输出(2)直流24~50V供电
(3)光电隔离信号输入/输出(4)有过压、欠压、过流、相间短路保护功能
(5)十五档细分和自动半流功能(6)八档输出相电流设置
(7)具有脱机命令输人端子(8)高启动转速(9)高速力矩大
(10)电机的扭矩与它的转速有关,而与电机每转的步数无关
SW5状态
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
SW6状态
ON
OFF
OFF
ON
ON
OFF
OFF
ON
ON
OFF
OFF
ON
ON
OFF
OFF
SW7状态
ON
ON
ON
OFF
OFF
OFF
OFF
ON
ON
ON
ON
OFF
OFF
OFF
OFF
SW8状态
ON
ON
ON
ON
ON
ON
ON
OFF
1.57步进电机23HS6620
2.DM524型细分型两相混合式步进电机驱动器,采用直流18~50V供电,适合驱
动电压24V~50V,电流小于4.0V,外径42~86毫米的两相混合式步进电机。此驱
动器采用交流伺服驱动器的电流环进行细分控制,电机的转矩波动很小,低速
运行很平稳,几乎没有振动和噪音。高速时力矩也大大高于其它二相驱动器,
设置电机每转步数
驱动器可将电机每转的步数分别设置为400、500、800、1000、1250、1600、2000、2500、3200、4000、5000、6400、8000、10000、12800步。用户可以通过驱动器正面板上的拨码开关的SW5、SW6、SW7、SW8位来设置驱动器的步数(如表1):
单片机课程设计
步进电机控制
专业班级:姓 名:
学 号:
指导教师:
一.课程设计要求
二.课程设计目的
三.所用仪器及相关说明
1.57步进电机23HS6620
2.DM524型细分型两相混合式步进电机驱动器
3.STC12C5A60S2系列单片机
四.调试程序
【程序一、二】
五.程序功能
【程序一、二】
六.误差说明
七.心得体会
【程序一】
#include <REG51.H>
#include <intrins.h>
#define U8 unsigned char
#define U16 unsigned int
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^5;
sbit key4=P1^6;
}
}
////////////////////主函数入口////////////////////////////
sfr AUXR= 0X8E;
sfr CCON = 0xD8; //PCA控制寄存器
sfr CMOD = 0xD9; //PCA模式寄存器
sfr CCAPM0 = 0xDA; //PCA模块0模式寄存器//模块0对应P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)
八.课设说明
一.课程设计要求
通过计算机对单片机芯片的编程,将单片机与驱动器相连,从而实现对步进电机的各种方式控制。
二.课程设计目的
1.根据所期望的结果编写程序,并在实验仪器上调试和验证。
2.使用步近电机的工作原理与步进电机驱动器。
3.学习控制步进电机转角、速度、方向的实时软件设计
三.所用仪器及相关说明
现在以集电极开路和PNP输出为例,接口电路示意图如下:控制器集电极开路输出
图2.输入接口电路(共阴极接法)控制器PNP输出
注意:VCC值为5V时,R短接;VCC值为12V时,R为1K,大于1/8W电阻;
VCC值为24V时,R为2K,大于1/8W电阻;R必须接在控制器信号端。
功能选择(用驱动器面板上的DIP开关实现)
//////////////////////延时子程序/////////////////////////////
void DelayMs(U8 ms) //在11.0592M晶振下,stc10f系列(单周期指令)的ms级延时
{
U16 i;
while(ms--)
{
for(i = 0; i < 850; i++);
串联接法时驱动器电流等于电机绕组电流。
安装
周围要有20mm的空间,不能放在其它发热的设备旁,要避免粉尘、油雾、腐蚀性气体,湿度太大及强振动场所。
故障诊断
状态灯指示
RUN:绿灯,正常工作时亮。
ERR:红灯,故障时亮,电机相间短路、过压保护和欠压保护。
故障及排除
故障
原因
解决措施
LED不亮
电源接错
检查电源连线
//* CCAPOH = CCAPOL = 0X80; //模块0输出占空因数为50%
//* CCAPOH = CCAPOL = 0X40; //模块0输出占空因数为75%
void PWM_clock(U8 clock);
void PWM_start(U8 module,U8 mode);
/*****************************************************************************
sbit CF = 0xDF; //PCA计数溢出标志位
sbit CR = 0xDE; //PCA计数器运行控制位
sbit CCF1 = 0xD9; //PCA模块1中断标志
sbit CCF0 = 0xD8; //PCA模块0中断标志
//* CCAPOH = CCAPOL = 0XC0; //模块0输出占空因数为25%
定位精度高。广泛适用于雕刻机、数控机床、包装机械等分辩率要求较高的设
备上。
电气参数
输入电压
直流18~50V输入
输Biblioteka Baidu电流
小于4安培
输出电流
1.0A~4.2A
功耗
功耗:80W;内部保险:6A
温度
工作温度-10~45℃;存放温度-40℃~70℃
湿度
不能结露,不能有水珠
气体
禁止有可燃气体和导电灰尘
重量
200克
ENA-:脱机使能复位信号输入负端
脱机使能信号有效时复位驱动器故障,禁止任何有效的脉冲,驱动器的输出
功率元件被关闭,电机无保持扭矩。
控制信号连接
上位机的控制信号可以高电平有效,也可以低电平有效。当高有效时,把所有控制信号的负端连在一起作为信号地,低有效时,把所有控制信号的正端连在一起作为信号公共端。
OFF
OFF
OFF
OFF
OFF
OFF
OFF
步数
400
800
1600
3200
6400
12800
25600
1000
2000
4000
5000
8000
10000
20000
25000
控制方式选择
拨码开关SW4位可设置成两种控制方式:
当设置成“OFF”时,为有半流功能。当设置成“ON”时,为无半流功能。
设置输出相电流
电源电压低
提高电源电压
电机不转,且无保持扭矩
电机连线不对
改正电机连线
脱机使能RESET信号有效
使RESET无效
电机不转,但有保持扭矩
无脉冲信号输入
调整脉冲宽度及信号的电平
电机转动方向错误
动力线相序接错
互换任意两相连线
方向信号输入不对
改变方向设定
电机扭矩太小
相电流设置过小
正确设置相电流
加速度太快
减小加速度值
sfr CCAP0H = 0xFA; //PCA模块0的捕获寄存器高位
sfr CCAP1L= 0xEB; //PCA模块1的捕获寄存器低位
sfr CCAP1H = 0xFB; //PCA模块1的捕获寄存器高位
sfr PCA_PWM0 = 0xF2; //PCA PWM模式辅助寄存器0
sfr PCA_PWM1 = 0xF3; //PCA PWM模式辅助寄存器1
1.04
ON
OFF
ON
1.91
1.36
OFF
OFF
ON
2.37
1.69
ON
ON
OFF
2.84
2.03
OFF
ON
OFF
3.31
2.36
ON
OFF
OFF
3.76
2.69
OFF
OFF
OFF
4.20
3.00
半流功能
半流功能是指无步进脉冲500ms后,驱动器输出电流自动降为额定输出电流的70%,用来防止电机发热。
sfr CCAPM1 = 0xDB; //PCA模块1模式寄存器//模块1对应P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)
sfr CL = 0xE9; //PCA定时寄存器低位
sfr CH = 0xF9; //PCA定时寄存器高位
sfr CCAP0L= 0xEA; //PCA模块0的捕获寄存器低位
TMOD|=0x02; //8位自动重装载
TH0=0xe1;
//TR0=1;
}
CMOD |= (clock<<1);
//CMOD=0x84;
CL = 0;
CH = 0;
}
void PWM_Start(U8 module,U8 R0,U8 R1)
{
CCAP0L= 0XFF-(R0*256/100);
电机堵转
排除机械故障
驱动器与电机不匹配
换合适的驱动器
驱动器接线
一个完整的步进电机控制系统应含有步进驱动器、直流电源以及控制器(脉冲源)。以下为典型系统接线图:
3.单片机STC12C5A60S2系列
PWMCCAPMn.1用来使能脉宽调制模式
当PCA计数值与模块的捕获/比较寄存器的值相匹配时,如果TOG位(CCAPMn.2)置位,模块CEXn输出将发生翻转。当PCA计数值与模块的捕获/比较寄存器的值相匹配时,如果匹配位MATn(CCAPMn.3)置位,CCON寄存器的CCFn位将被置位。CAPNn(CCAPMn.4)和CAPPn(CCAPMn.5)用来设置捕获输入的有效沿。CAPNn位使能下降沿有效。CAPPn位使能上升沿有效。如果两位都置位,则两种跳变沿都被使能,捕获可在两种跳变沿产生。通过置位CCAPMn寄存器的ECOMn位(CCAPMn.6)来使能比较器功能。每个PCA模块还对应另外两个寄存器CCAPnH和CCAPnL。当出现捕获或比较时,它们用来保存16位的计数值。当PCA模块用在PWM模式中时 它们用来控制输出的占空比。
U8 table[4]={0xea,0xf2,0xfa,0xfc};
U8 table1[4]={0xfc,0xfa,0xf2,0xea};
U16 timer0=0;
U16 j=0;
void DelayMs(U8 ms);
void PWM_clock(U8 clock);
void PWM_start(U8 module,U8 mode);
设置PWM时钟信号来源函数
参数:Clock
0:系统时钟/12(即12分频);
1:系统时钟/2(即2分频);
2:定时器0的溢出脉冲;
3: ECI/P1.2(或P4.1)脚输入的外部时钟;
4:系统时钟(即不分频) ;
5:系统时钟/4(即4分频);
6:系统时钟/6(即6分频);
7:系统时钟/8(即8分频);
脉宽调节模式(PWM)
脉宽调制(PWMPulse Width Modulation)是一种使用程序来控制波形占空比、周期、相位波形的技术。
PCA工作模式寄存器CMOD
CPS2、CPS1、CPS0:PCA计数脉冲源选择控制位。当三者分别为0、1、0时,选择PCA/PWM时钟源输入为定时器0的溢出频率。由于定时器0可以工作在1T模式,所以可以达到计一个时钟就溢出,从而达到最高工作频率CPU时钟SYSclk。通过改变定时器0的溢出率,可以实现可调频率的PWM输出。
/*****************************************************************************/
void PWM_Clock(unsigned char clock)
{
if(clock==2)
{
AUXR |= 0x80;//定时器0时钟为Fosc,即1T
控制信号接口
控制信号定义
PLS/CW+:步进脉冲信号输入正端或正向步进脉冲信号输入正端
PLS/CW-:步进脉冲信号输入负端或正向步进脉冲信号输入负端
DIR/CCW+:步进方向信号输入正端或反向步进脉冲信号输入正端
DIR/CCW-:步进方向信号输入负端或反向步进脉冲信号输入负端
ENA+:脱机使能复位信号输入正端
功率接口
+V、GND:连接驱动器电源
+V:直流电源正级,电源电压直流16~50V。最大电流是5A。
GND:直流电源负级。
A+ A- B+ B-:连接两相混合式步进电机
驱动器和两相混合式步进电机的连接采用四线制,电机绕组有并联和串联接法,
并联接法,高速性能好,但驱动器电流大(为电机绕组电流的1.73倍),
为了驱动不同扭矩的步进电机,用户可以通过驱动器面板上的拨码开关SW1、SW2、SW3位来设置驱动器的输出相电流(有效值)单位安培,各开关位置对应的输出电流,不同型号驱动器所对应的输出电流值不同。具体见表2。
输出电流(A)
SW1
SW2
SW3
PEAK
RMS
ON
ON
ON
1.00
0.71
OFF
ON
ON
1.46
主要特点
(1)平均电流控制,两相正弦电流驱动输出(2)直流24~50V供电
(3)光电隔离信号输入/输出(4)有过压、欠压、过流、相间短路保护功能
(5)十五档细分和自动半流功能(6)八档输出相电流设置
(7)具有脱机命令输人端子(8)高启动转速(9)高速力矩大
(10)电机的扭矩与它的转速有关,而与电机每转的步数无关
SW5状态
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
ON
OFF
SW6状态
ON
OFF
OFF
ON
ON
OFF
OFF
ON
ON
OFF
OFF
ON
ON
OFF
OFF
SW7状态
ON
ON
ON
OFF
OFF
OFF
OFF
ON
ON
ON
ON
OFF
OFF
OFF
OFF
SW8状态
ON
ON
ON
ON
ON
ON
ON
OFF
1.57步进电机23HS6620
2.DM524型细分型两相混合式步进电机驱动器,采用直流18~50V供电,适合驱
动电压24V~50V,电流小于4.0V,外径42~86毫米的两相混合式步进电机。此驱
动器采用交流伺服驱动器的电流环进行细分控制,电机的转矩波动很小,低速
运行很平稳,几乎没有振动和噪音。高速时力矩也大大高于其它二相驱动器,
设置电机每转步数
驱动器可将电机每转的步数分别设置为400、500、800、1000、1250、1600、2000、2500、3200、4000、5000、6400、8000、10000、12800步。用户可以通过驱动器正面板上的拨码开关的SW5、SW6、SW7、SW8位来设置驱动器的步数(如表1):
单片机课程设计
步进电机控制
专业班级:姓 名:
学 号:
指导教师:
一.课程设计要求
二.课程设计目的
三.所用仪器及相关说明
1.57步进电机23HS6620
2.DM524型细分型两相混合式步进电机驱动器
3.STC12C5A60S2系列单片机
四.调试程序
【程序一、二】
五.程序功能
【程序一、二】
六.误差说明
七.心得体会