基于51单片机控制步进电机正反转

基于51单片机控制步进电机正反转基于51单片机控制步进电机正反转此次采用uln2003模块来链接步进电机;##步进电机工作原理步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、

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

基于51单片机控制步进电机正反转

此次采用uln2003模块来链接步进电机;
## 步进电机工作原理
步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。
步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。

因此我们可以控制单片机I/O口的电平来控制步进电机,此次设计中采用四相单拍工作方式,在这种工作方式下,A、B、C、D 三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做四相单四拍工作方式。

  1. 电机正转代码 unsigned char code tableZ[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
  2. 电机反转代码 unsigned char code tableF[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};

代码如下

#include <reg52.h>
#define uint unsigned int 
#define uchar unsigned char
unsigned char code tableZ[8]={ 
   0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
unsigned char code tableF[8]={ 
   0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};//²½½øµç»úzheng
void delay(unsigned int t);
sbit S3=P3^4; //反转
sbit S4=P3^5; //反停
sbit S5=P3^6; // 正停
//正转写入数据
void  motor_z()
 { 
    
   unsigned char i,j;
  
      for (i=0; i<8; i++)  
        { 
   
     if(S5==0){ 
   break;}
     for(j=0;j<8;j++){ 
   
      P1 = tableZ[i]&0x1f;    
          delay(50);
     }
                       
        }
 }
//反转写入数据
void motor_f(){ 
   
 unsigned char i,j;
       for (i=0; i<8; i++)  
        { 
   
     if(S4==0){ 
   break;}
     for(j=0;j<8;j++){ 
   
      P1 = tableF[i]&0x1f;   
          delay(50);
     }
                    
        }
}
void delay(unsigned int t)//延时函数
{ 
                              
   unsigned int k;
   while(t--)
   { 
   
     for(k=0; k<60; k++)
     { 
    }
   }
}

void main()
{ 
   
while(1){ 
   
motor_z();
if(S3 == 0){ 
   
motor_f();
}
}
}

protel仿真图如下

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138089.html原文链接:https://javaforall.net

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


相关推荐

  • python编写手机app_手机学python的app

    python编写手机app_手机学python的app用程序控制手机,再也不用自己去做重复枯燥的任务了

    2022年8月12日
    9
  • 基于LM324的音调放大电路

    基于LM324的音调放大电路这次分享我大二的一次课程设计,还有本人的一些心得:本次设计采用LM324、LM386、4欧姆的喇叭各1个,场效应管、电阻、电容等器件,电路主要由三部分电路构成,分别是由LM324N构成的运算放大电路和音调控制电路,以及由LM386构成的功率放大电路。当接收到输入语音信号时,将语音信号转换为电信号,经过运算放大电路将电信号进行放大,然后可通过音调控制电路进行调节,最后通过功率放大电路将进行…

    2022年5月24日
    69
  • rfq用户level2报价是几条(什么是建立在海量数据挖掘基础上)

    海量数据挖掘MiningMassiveDatasets(MMDs)-JureLeskovec courses学习笔记计算广告ComputationalAdvertising{博客内容:ComputationalAdvertising. Theproblemistoselectadstoshowwithotherinformation,typical

    2022年4月15日
    59
  • 开源 微商分销系统 php,[PHP程序] 微商新零售分销平台源码Thinkphp内核 产品营销推广神器…

    开源 微商分销系统 php,[PHP程序] 微商新零售分销平台源码Thinkphp内核 产品营销推广神器…源码介绍一个新零售的派单工具,有了平台,会让客户主动加你买货,100%成交,还会积极帮你转介绍,让你不仅仅获得派单,还能建立自己的商友圈,积累强大的人脉。平台的机制中一共分为13个商友星级,从一星到十三星,每升一星就会获得大量的平台派单,升到13星一共可获得百万笔零售订单。平台没有行业限制,无论你是微商,电商还是实体,无论你是卖衣服、化妆品还是食品,都可以使用平台。同行可以合作,异业可以联盟,不用…

    2022年5月17日
    39
  • Eclipse使用技巧–代码自动补全功能

    Eclipse使用技巧–代码自动补全功能1、在“触发代码提示”允许的范围之内,空格键和回车键就是快捷键。2、补全代码功能需设置“AutoActivationtriggersforjava”。3、“AutoActivationtriggersforjava”这个选项就是指触发代码提示的的选项,把“.”改成“.abcdefghijklmnopqrstuvwxyz(”的意思,就是指遇到26个字母和“.与(”这些符号就触发代码提示功能了。4、代码提示选项补充完整后,输入关键字即可得到提示功能,得到提示功能后,回车键与空格键就是

    2022年5月31日
    44
  • SpringMVC框架介绍[通俗易懂]

    SpringMVC框架介绍[通俗易懂]史上最全最强SpringMVC详细示例实战教程SpringMVC学习笔记—-一、SpringMVC基础入门,创建一个HelloWorld程序1.首先,导入SpringMVC需要的jar包。2.添加Web.xml配置文件中关于SpringMVC的配置springmvcorg.springframework.web.servlet.Dispatche…

    2022年6月7日
    35

发表回复

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

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