基于51单片机步进电机控制[通俗易懂]

基于51单片机步进电机控制[通俗易懂]实现功能:1、用矩阵键盘设定电机目标转速及旋转方向,范围100~300转/分;2、测量、显示电机实际转速和方向(正转显示“P”,反转显示“N”);从实现功能上分析,软件可以分解3个功能模块:1,步进电机控制模块2,矩阵键盘输入模块3,显示输出模块步进电机工作原理步进电机通过输入脉冲信号进行控制,即电机的总转动角度由输入脉冲总数决定,而电机的转速…

大家好,又见面了,我是你们的朋友全栈君。

实现功能:

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 方向转动。

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

                                                 基于51单片机步进电机控制[通俗易懂]

                                                                    图1  步进电机工作原理

步进电机工作模块

本次设计中采用四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,电流切换三次,磁场旋转一周,转 子向前转过一个齿距角。因此这种通电方式叫做四相单四拍工作方式。

基于51单片机步进电机控制[通俗易懂]

步进电机工作子程序

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.net/138620.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux vim :E325 解决办法[通俗易懂]

    linux vim :E325 解决办法[通俗易懂]在终端中输入ls-la找到.swp文件(这个文件是个隐藏文件,所以删除时要加上.),然后rm.你的swp文件。

    2022年5月16日
    32
  • 数组—进制转换(查表法)

    数组—进制转换(查表法)

    2021年8月25日
    63
  • GenshinPlayerQuery_qeriuwjhrf

    GenshinPlayerQuery_qeriuwjhrf百度百科:https://baike.baidu.com/item/qeephp/8328612?fr=aladdin 官方地址:http://www.qeephp.cn/app/index.php 下载地址:https://github.com/firzen/QeePHP 文档快速入门:http://qeephp.cn/docs/qeephp-quic…

    2025年6月18日
    5
  • Kotlin 函数魔法 – lambda 表达式

    Kotlin 函数魔法 – lambda 表达式

    2022年3月7日
    44
  • 【自然语言处理】知识图谱之知识推理「建议收藏」

    【自然语言处理】知识图谱之知识推理「建议收藏」1.知识推理的分类归纳推理归纳推理所推出的结论是没有包含在前提内容中的。由个别事物推出一般性的知识的过程,是以为增殖新知识的过程。演绎推理:在已知领域内的一般性知识的前提下,通过求解一个具体的问题,或者证明一个结论的正确性。它所得出的结论,实际上早已蕴含在一般性的知识的前提中。演绎推理只是将已有的事实揭露出来,因此不能增殖新的知识。确定性推理多数时候是指逻辑推理,具有…

    2022年5月24日
    75
  • 子网划分介绍以及如何划分子网(例题详解)

    子网划分介绍以及如何划分子网(例题详解)子网划分这项技术用来把一个单一的IP网络地址划分成多个更小的子网(subnet)。这种技术可使一个较大的分类IP地址能够被进一步划分为几个子网。这样就可以让使用一个大的分类地址(classfuladdress)的企业能给该企业中处于不同地理位置的分公司分配不同的子网,对外整个企业是一个网络地址,而在内部,不同分公司则有不同的子网地址,因而不需要为每个站点都分别申请一个网络地址。子网划分通常是把IP地址中主机标识部分划出一定的位数用作本网的各个子网,剩余的主机标识作为相应子网的主机标识部分。

    2022年6月27日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号