最近在做缺陷检测相关项目,需要制作一个小工装台,以实现搭载2D和3D相机左右扫描待检测料片。
实现的功能:丝杠先向右转,到达右限位后,自动回到初始位置。(任意时刻可通过PC串口实现调速)
实验器件:直线电机、DM542驱动器、贴片型stc89c52rc、电源(24V-250W)


DM542驱动器3、7、8端口播下:

接线方式:采用共阳极接线法: PUL+、DIR+接(单片机)5V;PUL-接P11(输出脉冲),DIR-接P12(输出方向);ENA+、-均不接;左限位器接P13,右限位器接P14;
**限位器注意最好选择5v可驱动的!!!可直接用单片机电源驱动!!!(要是只有10v的注意分压不能直接将输出端接在单片机上,理论上会烧毁)

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u16;     //对数据类型进行声明定义
typedef unsigned char u8;
sbit PUL=P1^1; //位定义DIR
sbit DIR=P1^2; //位定义ENA
sbit XW1=P1^3; //位定义DIR
sbit XW2=P1^4; //位定义ENAint sia=0;int siaa=0;
void UsartInit()
{SCON=0X50;            //设置为工作方式1TMOD=0X20;           //设置计数器工作方式2PCON=0X80;         //波特率加倍TH1=0XF3;               //计数器初始值设置,注意波特率是4800的TL1=0XF3;ES=1;                       //打开接收中断EA=1;                      //打开总中断TR1=1;                  //打开计数器
}
void delay (uint z)//延时函数
{uint x,y;for(x=z;x>0;x--)for(y=7;y>0;y--);
}void main()
{   uint x,y;
UsartInit();  //    串口初始化while(1){if(XW1==0){for(x=50;x>0;x--){for(y=14;y>0;y--){DIR = 0;delay(7);}       }for(x=50;x>0;x--){for(y=14;y>0;y--){DIR = 1;delay(7);PUL = 0;delay(7);PUL = 1;delay(7);}        }sia=0;siaa=1;}if(XW1==1&&XW2==1&&siaa==1&&sia!=0){DIR = 1;delay(sia);PUL = 0;delay(sia);PUL = 1;delay(sia);}if(XW2==0){for(x=50;x>0;x--){for(y=14;y>0;y--){DIR = 1;delay(7);}       }for(x=50;x>0;x--){for(y=14;y>0;y--){DIR = 0;delay(7);PUL = 0;delay(7);PUL = 1;delay(7);}        }siaa=2;}if(XW1==1&&XW2==1&&siaa==2&&sia!=0){DIR = 0;delay(sia);PUL = 0;delay(sia);PUL = 1;delay(sia);}}
}
void Usart() interrupt 4
{u8 receiveData;sia=SBUF;//出去接收到的数据RI = 0;//清除接收中断标志位SBUF=sia;//将接收到的数据放入到发送寄存器while(!TI);            //等待发送数据完成TI=0;                        //清除发送完成标志位
}

这里sia代表速度,即脉冲频率;通过串口发送给单片机(可以尝试发1-10,越小最快);
实验效果如下:



单片机驱动DM542步进电机(使丝杠做往返运动--速度可调)相关推荐

  1. 单片机输出脉冲的C语言简易程序,AVR单片机驱动二相步进电机(单极驱动)简易程序,带串口控制...

    AVR单片机驱动二相步进电机(单极驱动)简易程序,带串口控制. 编译器为ICC6.31A; #include"iom16v.h" #include"macros.h&qu ...

  2. 51单片机控制TB6600驱动器驱动42步进电机

    51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...

  3. K_A07_003 基于 STM32等单片机驱动DRV8825模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+DRV8825模块 1. ...

  4. K_A07_001 基于 STM32等单片机驱动A4988模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 SETP时序 对应程序: 细分说明 程序 四.部分代码说明 1.接线说明 1.1.STC89C52RC+A4988模块 1.2. ...

  5. 按键控制c51单片机驱动unl2003控制步进电机正反转停止及程序调速-萌新入门

    ** 按键控制c51单片机驱动unl2003控制步进电机正反转停止及程序调速 ** 分享一个萌新入门小工程 一.原件连接: 第一种直接用51开发板 第二种用最小单元加unl2003驱动 二.开发板电路 ...

  6. 基于51单片机驱动A4988实现步进电机逆时针转动

    基于51单片机驱动A4988实现步进电机逆时针转动 一.简介 二.接线 典型接线图 实际接线 三.部分代码 引脚定义 定时器初始化 主函数 四.实验现象 五.注意事项 一.简介 A4988 是一款完全 ...

  7. K_A07_005 基于 STM32等单片机驱动 DRV8833 模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 步进电机驱动时序 对应程序: 四.部分代码说明 1.接线说明 1.1.STC89C52RC+DRV8833模块 1.2.STM3 ...

  8. 遥控51单片机控制42步进电机(TB6600驱动)控制方向、速度

    遥控51单片机控制步进电机控制方向.速度 控制开发板自带步进电机 遥控控制 控制42步进电机 大二在做srtp时做到了这部分内容,感觉C51控制起来挺简单的,之后有做关于MSP430的魂斗罗游戏和st ...

  9. K_A07_002 基于 STM32等单片机驱动ULN2003模块按键控制步进电机正反转

    目录 一.资源说明 二.基本参数 1.参数 2.引脚说明 三.驱动说明 步进电机驱动时序 反向输出 对应程序: 四.部分代码说明 1.接线说明 1.1.STC89C52RC+ULN2003模块 1.2 ...

最新文章

  1. Vue 2.5中将迎来有关TypeScript的改进!
  2. 新概念英语(1-73)The way to King Street
  3. Atitit.异常机制的设计原理
  4. 【NLP】自然语言处理技术在自动生成足球比赛战报上的应用
  5. python画图-python绘图入门(完整版)
  6. hihocoder题目选讲
  7. 今晚与小妹亚美合作了一把qq游戏,大获全胜!
  8. 纸浆暴力反弹——复制去年走势,铁矿石认购2-4倍,双硅价差再度翘尾?2022.6.28
  9. 基于Django框架的视频播放器设计
  10. Windows10 安装spyder3
  11. 【更新】关于VMware虚拟机无法正常获取IP地址问题的解决方法及思路
  12. 笔记本电脑显示以太网未连接_如何向笔记本电脑添加以太网连接
  13. Inno setup 常用修改技巧
  14. P1075 [NOIP2012 普及组] 质因数分解
  15. 【数据处理】超好用的Excel数据拆分工具
  16. 浅谈Spark Livy
  17. 你要的开源报修系统V2版本已发布,请及时更新最新源码。
  18. Tips:一个字符占几个字节?
  19. PID算法详细解析——基于单片机
  20. 安卓系统模拟按键 [键值]

热门文章

  1. 华为快应用-在其他平台审核出现的白屏问题
  2. 【软考系统架构设计师】计算机组成原理与体系结构章节习题集
  3. 数据sqlite 矢量切片_矢量切片(Vector tile)
  4. C++解析3d模型文件jt
  5. Unity中OnTriggerEnter2D 和OnCollisionEnter2D 的使用情形及容易掉的坑
  6. Hive项目之谷粒影音:ETL清洗原数据、Hive统计视频观看数top10、视频类别top、视频观看数top其所属类别、类别流量top、类别热度top、上传视频用户数量top、类别视频观看top
  7. 2023财年Q4业绩继续下滑,ChatGPT能驱动英伟达重回巅峰吗?
  8. labview控制 西门子S7-1200 1214 dcdcdcplc 程序
  9. aix java安装_AIX系统中安装Java6全过程
  10. java 调用matlab函数_java中调用Matlab的函数+注意事项