51单片机通过驱动器精准控制步进电机
文章目录
- 51单片机驱动器控制步进电机
- 文章简介
- 1.驱动器简介
- 2.驱动器和单片机接线方法
- 3.单片机程序
- 4.实物演示视频
51单片机驱动器控制步进电机
文章简介
本文是前段时间玩步进电机精准控制的总结,关于51单片机驱动步进电机的程序(用脉冲频率控制)及接线方法。
1.驱动器简介
如图所示,以下为两相电机驱动器实物图,ENA+为驱动器使能信号+,ENA-为驱动器使能信号-。PUL+是脉冲信号+,PUL-是脉冲信号-。DIP是方向信号。 DC接供电电源,电压为24V~42V。
驱动器还可通过拨码开关调电流和调细分,上方有PU的表格为调细分的,通过拨码开关S1,S2,S3进行控制,下方有PK的表格为调电流的,通过拨码开关S4,S5,S6进行控制。拨码开关往下拨就是ON状态(开启状态)。(其他驱动器可根据规格表对比,基本同理)
2.驱动器和单片机接线方法
驱动器上A+、A-、B+、B-端通过电机上说明,按照颜色接即可。
然后驱动器ENA-,DIP-,PUL-三个端共地,接单片机的GND
这里是驱动器拨码开关的图
接着PUL+,DIR+两个端根据代码写的端口接到单片机上,下面是实物连接图。
3.单片机程序
程序通过用按键控制发送的脉冲频率,通过发送脉冲,给驱动器口PUL驱动电机, 通过按键来控制发送 500 个脉冲,精准控制步进电机在直尺上转动 1cm 。 |
按键一功能是发送500个脉冲,从而精准控制一厘米,为什么是发送500个脉冲,是因为驱动器可以通过拨动开关调电流,调细分,我用的是200个脉冲转一圈的状态,经过调试200个脉冲刚好转动0.4厘米,经过换算,500个脉冲为1厘米,所以实现精准控制1厘米,同理可得,其他距离的脉冲数。
按键二的功能为使电机反转,通过转换引脚电平,给驱动器DIR口状态取反,DIR控制电机正方转,故按键二控制电机方向。
两个外部中断是响应接近开关,使电机转换方向,防止电机超过限位。
#include <stc15f2k60s2.h>
#include <intrins.h>
#define u8 unsigned char
#define u16 unsigned intunsigned int h; //无符号整形变量sbit maichong=P1^1; //定义脉冲输出脚(PUL)
sbit zhuang=P0^3; //定义方向引脚(DIR)
sbit K1=P2^0; //脉冲发送
sbit K2=P2^1; //转向
sbit K3=P2^2; //调试按键,调试中断是否能进入,可注释掉
sbit right=P3^2 //右限位
sbit left=P3^3; //左限位
sbit yuan=P0^2; //坐标原点/**CSDN博墨**************************************/
/********CSDN博墨********************************/
/****************CSDN博墨************************/
/*************************CSDN博墨***************/
/**********************************CSDN博墨******/void Delay400us() //400微秒延时函数
{unsigned char i, j;i = 5;j = 74;do{while (--j);} while (--i);
}void Delay10ms() //10毫秒延时函数
{unsigned char i, j;i = 108;j = 145;do{while (--j);} while (--i);
}void right_EXINT0() interrupt 0 //外部中断函数0
{if(right==1){Delay10ms(); if(right==1){zhuang=~zhuang;}}
}void left_EXINT1() interrupt 2 //外部中断函数1
{if(left==1){Delay10ms(); if(left==1){zhuang=~zhuang;}}
} void EXINT_init() //外部中断初始化
{IT0=0;IT1=0;IE0=0;IE1=1;EA =1;EX0=1;EX1=1;
}void main () //主函数
{EXINT_init();P0M0=0XFF;P0M1=0X00;while(1){if (K1==0) //按键1判断{Delay10ms(); //延时if (K1==0){ for(h=0;h<500;h++)//for 循环500次,发送500个脉冲{maichong=0; Delay400us(); maichong=1; Delay400us();} } } if (K2==0) //判断按键2{Delay10ms(); //延时if (K2==0){zhuang=~zhuang; //引脚状态取反while(K2==0); //判断是否松开按键}}if(K3==0){if(K3==0){P1=0X00;}}else{P1=0Xff;}}
}
/**CSDN博墨**************************************/
/********CSDN博墨********************************/
/****************CSDN博墨************************/
/*************************CSDN博墨***************/
/**********************************CSDN博墨******/
4.实物演示视频
51单片机驱动器控制步进电机
以上是之前程序调试完的视频,文章中如果有错误的地方,欢迎各位大佬指正。
51单片机通过驱动器精准控制步进电机相关推荐
- 51单片机蓝牙通讯精准控制步进电机简易教学
51单片机蓝牙通讯精准控制步进电机 1.蓝牙模块 本次用到的蓝牙模块为HC-05,关于HC-05怎么配置的文章已经写过很多,这里就不一一介绍了,我下面具体讲一些关于单片机蓝牙数据的收发简单快捷的方法实 ...
- 51单片机TB6600驱动器与57BYGH255步进电机(二相)使用方法与程序
第一次写博客,很多地方不熟悉请见谅.我目前在做一个项目,首先要解决的是用电机将某个东西吊起能使其上下移动.我选择用二相四线步进电机,用TB6600去驱动,51单片机做控制器.TB6600的使用方法我不 ...
- 基于51单片机的舞蹈机器人四路步进电机控制仿真
资料编号:091 下面是相关功能视频演示: 91-基于51单片机的舞蹈机器人四路步进电机控制仿真(源码+仿真+全套资料) 功能介绍:通过51单片机控制4个步进电机旋转,模拟出机器人的四肢动作,全套资 ...
- 基于51单片机的舞蹈机器人四路步进电机控制仿真(源码+仿真+全套资料)
资料编号:091 通过51单片机控制4个步进电机旋转,模拟出机器人的四肢动作,全套资料齐全:具体功能请下方看演示视频 91-基于51单片机的舞蹈机器人四路步进电机控制仿真(源码+仿真+全套资料) 单片 ...
- Arduino UNO+TB6600驱动器按键控制步进电机启动停止
Arduino UNO+TB6600驱动器按键控制步进电机启动停止 步进电机 TB6600驱动器 **接线说明:**重点内容!!!! //本次实验电机驱动采用共阴极接线方式 1. PUL-, DIR- ...
- 基于51单片机的简单风扇控制
具体实现功能 系统由STC89C52单片机+单体数码管+LED指示灯+LM298N芯片芯片+直流电机构成. 具体功能: (1)模拟实现风扇的转动及摇头: (2)实现按键设置1 档强风,2档中风,3档弱 ...
- 51单片机:独立按键控制数码管计数
//按键动作的前沿和后沿会都有大约10ms的抖动,人在按下按键到松开至少需要50ms以上(待考证).此代码实现的功能为给按键计数,并给按键消抖 //欢迎邮箱交流:bglei@foxmail.com 作 ...
- 51单片机模拟交通信号灯控制系统设计
51单片机模拟交通信号灯控制系统设计 设计要求: 1.用LED灯模拟十字路口交通灯控制 2.正常情况下双方向轮流通行 3.特殊情况时,A方向通行 4.紧急情况时,A和B方向都不通行 本任务涉及定时控制 ...
- 51单片机红外通信及控制LED灯(LCD1602显示)
51单片机红外通信及控制LED灯(LCD1602显示) 大家好,又和大家见面了,离上一次DS18B20传感器的文章已经过去了一个星期了,这期我将给大家带来,基于STC89C52芯片和HS0038红外接 ...
最新文章
- 速度快到飞起 如何跟蜻蜓的大脑学习计算?
- 程序改错(递归函数):数字转字符
- Python os.makedirs try 以及 raise
- 开发指南专题十:JEECG微云快速开发平台--表单校验组件ValidForm
- Python高性能HTTP客户端库requests的使用
- 用纯css3和html制作一些泡沫对话框
- java报错空指针异常_springboot全局异常捕获,真香
- ProxyToken:微软 Exchange 服务器中的认证绕过新漏洞,可窃取用户邮件
- 17.如何正确使用TCP
- AngularJS 动态模板
- jsp中excel文件的创建与读取
- 浏览器被7654和2345网页劫持解决办法
- 机器学习——武林盟主分享机器学习之武功秘籍
- Hugging Face:成为机器学习界的“GitHub”
- Json汉化-使用JavaScript和百度翻译API免费实现Json文件的汉化
- 【数据集】人工智能领域比较常见的数据集汇总
- MEX and Increments
- Unity 4.6.2 iOS 64位支持
- 日有所思(6)——直流电机注意点
- ps写实计算机图标,PS临摹写实图标教程
热门文章
- ElasticSearch中Cat接口详解
- 京东图片列表、左侧导航栏、网易新闻列表、京东页面布局、京东轮播图
- C语言程序设计-简易文本编辑器
- Eclipse写js没有代码提示
- 16S 物种丰度热图学习
- 图像拼接(十):OPenCV stitching和stitching_detailed
- [Java8]_[增强功能]_[Base64编解码]
- Android 核心技术
- 【Math ML】Lagrange Multipliers 拉格朗日乘数
- 网易云音乐“王牌冤家”用户评论:评论爬虫及情感分析(SnowNLP)