大家好,又见面了,我是你们的朋友全栈君。
实现功能:
1 、用矩阵键盘设定电机目标转速及旋转方向,范围 100 ~300 转 / 分;
2 、测量、显示电机实际转速和方向(正转显示“ P ”,反转显示“ N ”);
从实现功能上分析,软件可以分解3个功能模块:
1,步进电机控制模块
2,矩阵键盘输入模块
3,显示输出模块
步进电机工作原理
步进电机通过输入脉冲信号进行控制,即电机的总转动角度由输入脉冲总数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路是根据单片机产生的控制信号进行工作。因此,单片机通过向步进电机驱动电路发送控制信号就 能实现对步进电机的控制。 如图 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 方向转动。
四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
图1 步进电机工作原理
步进电机工作模块
本次设计中采用四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,电流切换三次,磁场旋转一周,转 子向前转过一个齿距角。因此这种通电方式叫做四相单四拍工作方式。
步进电机工作子程序
uchar code turn[]={0x10,0x20,0x40,0x80};//步进电机控制模型
void MOTOR_RUN()
{
if(start)//起动标志位
{
if(zhuanxiang)//顺时针旋转
{
P3=turn[x];
x ;
if(x==4) x=0;
}
if(!zhuanxiang)//逆时针旋转
{
y–;
P3=turn[y];
if(y==0) y=4;
}
}
}
矩阵键盘和数码管显示程序这里不多做赘述,详情可以下载我的程序
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138620.html原文链接:https://javaforall.cn