Proteus仿真-步进电机

文章参考:
https://wenku.baidu.com/view/b8264877580102020740be1e650e52ea5418ce6b.html?rec_flag=default&sxts=1555852975165

https://wenku.baidu.com/view/37d57e6ba45177232e60a205.html?sxts=1555857223767




一、实验目的

1.了解步进电机的工作方式及原理
2.通过编程控制步进电机的正转,反转,加速,减速




二、前言

步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点讲:当步进驱动
器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。可
通过控制脉冲数来控制角位移量,从而达到准确的定位目的,也可通过控制脉冲的
频率来控制电机的转速和加速度;从而达到调速的目的。




三、 实验器件

1.步进电机,分为六线制(MOTOR-STEPPER)和四线制(MOTOR-BISTEPPER)
2.ULN2003(大电流驱动阵列)

ULN2003 是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受 50V的电压,输出还可以在高负载电流并行运行。

在这里插入图片描述
引脚1:CPU脉冲输入端,端口对应一个信号输出端。
引脚2:CPU脉冲输入端。
引脚3:CPU脉冲输入端。
引脚4:CPU脉冲输入端。
引脚5:CPU脉冲输入端。
引脚6:CPU脉冲输入端。
引脚7:CPU脉冲输入端。
引脚8:接地。
引脚10:脉冲信号输出端,对应7脚信号输入端。
引脚11:脉冲信号输出端,对应6脚信号输入端。
引脚12:脉冲信号输出端,对应5脚信号输入端。
引脚13:脉冲信号输出端,对应4脚信号输入端。
引脚14:脉冲信号输出端,对应3脚信号输入端。
引脚15:脉冲信号输出端,对应2脚信号输入端。
引脚16:脉冲信号输出端,对应1脚信号输入端。




电路基本理论

当步进驱动器接
收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换
相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉
冲个数即可以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即
给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。
它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频
率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机的基本参数:
(一)步进电机的静态指标术语
1、相数:产生不同对N、S磁场的激磁线圈对数。常用m表示。
2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.
3、步距角:对应一个脉冲信号,电机转子转过的角位移用Θ表示,Θ=360°(转子齿数运行拍数),以四相50齿电机为例,四拍运行时步距角为Θ=360°/(450)=1.8°(整步)。

(二)步进电机动态指标术语
1、步距角精度:步进电机每转过一个步距角的实际值与理论值的误差,用百分比表示,误差/步距角*100%,四拍控制5%以内,八拍控制15%以内。
2、电机正反转控制:当电机绕组通电时序为A-AB-B-BC-C-CD-D-DA时正转,通电时序为DA-D-CD-C-BC-B-AB-A时为反转。

步进电机的工作原理
步进电机的工作就是步进转动,其功用是将脉冲电信号变换为相应的角位移或是直线位移,就是给一个脉冲信号,电动机转动一个角度或是前进一步。步进电机的角位移量与脉冲数成正比,它的转速与脉冲频率(f)成正比,在非超载的情况下,电机的转速、停止位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。
图1是该四相反应式步进电机的工作原理图。
在这里插入图片描述
开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0,3号齿对齐,同时,转子的1,4号就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。
当开关SC接通电源时,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2,5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

六线电机对应的连线标号.

在这里插入图片描述

延时函数

这个delay()的时间长短是控制转速的,有一定范围的,在一定范围内,越小越快,超过了的话,电机识别不了脉冲就不转了。延时函数过长,电机动一下停一下,过短则速度快。

在这里插入图片描述


电机的选择

MOTOR-STEPPER:步进电机
MOTOR-BLDCM:无刷直流电机

以下是源码

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;

uchar speed=65;
uchar code zheng[] = {0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
uchar code fan[] = {0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};

void delay1ms(uint t){
	char i;
	while(t--){
	 	for(i=0;i<113;i++);
	}
}
void main()
{
	uchar i;

	while(1){
		if (key1==0){
			for(i=0;i<8;i++){
				P2 = fan[i];
				delay1ms(speed);	
			}
		}
		if (key2==0){
			for(i=0;i<8;i++){
				P2 = zheng [i];
				delay1ms(speed);
			}
		}
		if (key3==0){
			speed = speed + 5;
			if (speed>100)	speed = 100;
		}
		if (key4==0){
			speed = speed - 5;
			if (speed<40)	speed = 40;
		}
	}
}




问题

一开始选错电机,导致电机只朝一个方向移动,与预期结果不合,后换电机,问题得到解决。




后序改进

可以做一个数码管,显示正反转和当前对应的转速.

文章难免有错误之处,恳请留言指正

  • 52
    点赞
  • 338
    收藏
    觉得还不错? 一键收藏
  • 31
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值