基于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仿真图如下

在这里插入图片描述

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • sql server 2005卸载教程_sql卸载工具

    sql server 2005卸载教程_sql卸载工具如果您要安装新版的sql就必须先完整的卸载sql2005,如果你按照常规的方法是不能完整的卸载sql2005,从而会引起安装的时候说sql已经挂起的错误,sql2005卸载工具(sqlserver2005卸载工具),是一个帮你完整的清理已经安装的sql的工具。MicrosoftSQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。Mi…

  • 2014ACM/ICPC亚洲区西安站 F题 color (组合数学,容斥原理)

    2014ACM/ICPC亚洲区西安站 F题 color (组合数学,容斥原理)

  • linux远程开机wol,Wol在线远程开机、唤醒工具使用说明「建议收藏」

    linux远程开机wol,Wol在线远程开机、唤醒工具使用说明「建议收藏」判断主机是否支持远程开机?关机模式下,BIOS的电源管理菜单下有RemoteWakeUp或WakeonLAN选项的电脑才支持远程开机,若无此选项则不支持远程开机(假如RemoteWakeUp开启后不支持远程开机,请咨询硬件提供商。)如何进入bios:当电脑启动时,通过反复按“DELETE”键或“F2”键,进入BIOS设置。通常都是到“PowerManagment”下寻找,”Wake…

  • 微信浏览器

    微信浏览器

    2021年10月23日
  • windows启动mongo服务_启动windows

    windows启动mongo服务_启动windows在windows下启动mongodb,安装在这里不再赘述。1.打开运行窗口输入cmd,切换到mongodb的bin文件目录下;2.mongodb的data可以放在你自行创建的目录下,这里放在:F:\mongodb\dataFile输入命令:mongod –dbpath “F:\mongodb\dataFile”,如下:E:\MongoDB\bin>

    2022年10月26日
  • git修改gitignore不生效_github ignore

    git修改gitignore不生效_github ignore前言我在项目中采用Github代码托管仓库,由于部分项目文件,比如数据库文件不需要上传到网上,需要配置.gitignore文件,也就可以忽略版本控制,意思就是不上传它们。但是有一些文件一开始是期望忽略的,后来还是希望加入版本控制,上传到网上。不过直接从.gitignore文件中把它们移出来并不能解决问题,这些文件还是无法上传。百度的解决方式都大同小异,但是都有一个…

发表回复

您的电子邮箱地址不会被公开。

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