机电系统计算机控制应用实例
发布时间:2024-10-23
发布时间:2024-10-23
研究生机电系统计算机控制课件
机电系统计算机控制应用实例
研究生机电系统计算机控制课件
第1节 步进电机控制 步进电机是一种以数字脉冲信号控制的电机装置, 步进电机是一种以数字脉冲信号控制的电机装置,将 相对的信号转变为输出的旋转角度, 相对的信号转变为输出的旋转角度,每一个基本旋转角度 称为一个步进角度,此乃步进电机名称的由来, 称为一个步进角度,此乃步进电机名称的由来,因此它可 以做精确的定位。常见的步进角度为1 若输入200 以做精确的定位。常见的步进角度为1.8度,若输入200 个控制脉冲即可令电机旋转一圈。步进电机的主要特性: 个控制脉冲即可令电机旋转一圈。步进电机的主要特性: 1.电机的旋转角度与输入脉冲数成比例 角度的误差小, 电机的旋转角度与输入脉冲数成比例, 1.电机的旋转角度与输入脉冲数成比例,角度的误差小, 而且不会产生累积的误差。 而且不会产生累积的误差。 2.可以数字脉冲控制信号做开路方式控制 可以数字脉冲控制信号做开路方式控制, 2.可以数字脉冲控制信号做开路方式控制,避免使用复杂 的反馈控制电路,降低系统制作成本。 的反馈控制电路,降低系统制作成本。 3.利用输入脉冲的频率高低即可做转速的调整 利用输入脉冲的频率高低即可做转速的调整。 3.利用输入脉冲的频率高低即可做转速的调整。 4.电机的启动 停止、加速、减速、正反转反应快, 电机的启动、 4.电机的启动、停止、加速、减速、正反转反应快,容易 控制。 控制。 5.直接连至负载如轮子 做超低速同步运转。 直接连至负载如轮子, 5.直接连至负载如轮子,做超低速同步运转。 6.步进电机的结构简单 可靠性高, 步进电机的结构简单, 6.步进电机的结构简单,可靠性高,几乎不须要太多的保 使用寿命长。 养,使用寿命长。
研究生机电系统计算机控制课件
研究生机电系统计算机控制课件
1.2步进电机控制方式 一般步进电机的驱动方式可以采用以下3 种方式: 1.单相激磁控制 2.二相激磁控制 3.半步激磁控制
研究生机电系统计算机控制课件
1.2.1单相激磁控制
研究生机电系统计算机控制课件
1.2.2.二相激磁控制
研究生机电系统计算机控制课件
1.2.3 半步激磁控制
研究生机电系统计算机控制课件
1.3 步进电机应用
研究生机电系统计算机控制课件
;****************************步进电机的驱动 步进电机的驱动*************************************** 步进电机的驱动 ; 步进电机的驱动信号必须为 脉冲信号 转动的速度和脉冲的频率成正比 脉冲信号!!! 转动的速度和脉冲的频率成正比!!! ; 本步进电机步进角为 7.5度 . 一圈 360 度 , 需要 48 个脉冲完成 个脉冲完成!!! 度 ;--------------------------------------------------------------------------------; A组线圈对应 P2.4 组线圈对应 ; B组线圈对应 P2.5 组线圈对应 ; C组线圈对应 P2.6 组线圈对应 ; D组线圈对应 P2.7 组
线圈对应 ; 正转次序 AB组--BC组--CD组--DA组 (即一个脉冲 正转 7.5 度) 正转次序: 即一个脉冲,正转 组 组 组 组 即一个脉冲 ;----------------------------正转 正转-------------------------正转 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R3,#144 正转 3 圈共 144 脉冲 START: JZ START 对 A 的判断 当 A = 0 时则转到 START 的判断,当 MOV R0,#00H MOV P2,A START1: LCALL DELAY MOV P2,#00H INC R0 MOV A,R0 DJNZ R3,START1 MOV DPTR,#TABLE MOV P2,#00H MOVC A,@A+DPTR
LCALL DELAY1
研究生机电系统计算机控制课件
;-----------------------------反转-----------------------MOV R3,#144 反转一圈共 144 个脉冲 DELAY: MOV R7,#40 步进电机的转速 START2: M3: MOV R6,#248 MOV P2,#00H DJNZ R6,$ MOV R0,#05 DJNZ R7,M3 START3: RET MOV A,R0 DELAY1: MOV R4,#20 2S 延时 MOV DPTR,#TABLE 子程序 MOVC A,@A+DPTR DEL2: MOV R3,#200 JZ START2 DEL3: MOV R2,#250 MOV P2,A DJNZ R2,$ CALL DELAY DJNZ R3,DEL3 INC R0 DJNZ R4,DEL2 DJNZ R3,START3 RET MOV P2,#00H TABLE: LCALL DELAY1 DB 30H,60H,0C0H,90H 正转表 LJMP MAIN DB 00 正转结束 DB 30H,90H,0C0H,60H 反转表 DB 00 反转结束 END
研究生机电系统计算机控制课件
单片机驱动电路2
研究生机电系统计算机控制课件
#include <AT89X51.h> static unsigned int count; static unsigned int endcount; void delay(); void main(void) { count = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; //允许 允许CPU EA = 1; //允许CPU 中断 //设定时器 设定时器0 TMOD = 0x11; //设定时器0和1为 16位模式 位模式1 16位模式1 //定时器 定时器0 ET0 = 1; //定时器0 中断允许 TH0 = 0xFC; //设定时每隔 TL0 = 0x18; //设定时每隔 1ms中断一次 1ms中断一次 //开始计数 TR0 = 1; //开始计数 startrun:
P1_3 = 0; P1_0 = 1; delay(); P1_0 = 0; P1_1 = 1; delay(); P1_1 = 0; P1_2 = 1; delay(); P1_2 = 0; P1_3 = 1; delay(); goto startrun; } //定时器0中断处理 void timeint(void) interrupt 1 { TH0=0xFC; TL0=0x18; //设定时每隔1ms中断一次 count++; } void delay() { endcount=2; count=0; do{}while(count<endcount); }
研究生机电系统计算机控制课件
/P1.0~P1.3口接一排步进电机A,B,NA.NB四个驱动器的输入端 P3.0~P3.2接3个开关 控制三种运行方式 P3.3 P3.4分别控制正反 转 #include "reg51.h" unsigned char i,c,no,P3Test; #define uchar unsigned char; #define uint unsigned int; //unsigned int m; uchar data STEP1[]={1,2,4,8}; uchar data STEP2[]={9,3,6,12}; uchar data STEP3[]={1,3,2,6,4,12,8,9}; bit S1Flag=0; void t100msint() interrupt 3 { TL0=-5000%256; TH0=-5000/256; S1Flag=~S1Flag;
}
研究生机电系统计算机控制课件
void forward(void) {
P3Test=P3&07; if ( P3Test==1||P3Test==2)no=4; if ( P3Test==4) no=8; for (i=0;i<no;i++) { if (P3Test==1) P1=STEP1[i]; if (P3Test==2) P1=STEP2[i]; if (P3Test==4) P1=STEP3[i]; while(S1Flag); } }
研究生机电系统计算机控制课件
void reverse(void) { P3Test=P3&07; if ( P3Test==1||P3Test==2)no=4; if ( P3Test==4) no=8; for (i=no;i>=1;i--) { if (P3Test==1) P1=STEP1[i-1]; if (P3Test==2)
P1=STEP2[i-1]; if (P3Test==4) P1=STEP3[i-1]; while(S1Flag); } }
研究生机电系统计算机控制课件
main() { unsigned char Test; TMOD=0x61; TL0=-5000%256; TH0=-5000/256; IP=0x80; TR1=1; ET1=1; EA=1; P1=0; while(1) { Test=P3&0x18; if(Test==0x08) { forward(); } else if(Test==0x10) { reverse(); } else P1=0x00; } }