MKS SERVO4257D 闭环步进电机_系列10 arduino 例程

news2024/11/25 13:50:51

第1部分 产品介绍

MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈,有效防止电机丢步。适合小型机械臂,3D打印机,雕刻机,写字机,自动化产品以及电子竞赛等应用。
硬件开源,性价比高!
在这里插入图片描述

第2部分 相关资料下载

2.1 源代码下载

百度网盘:
https://pan.baidu.com/s/1BjrK9SC8pWnDoU32F8jHqA?pwd=mks2
06_例程-arduino系列
在这里插入图片描述

第3部分 参数配置和注意事项

3.1 电机参数配置

  1. 设置波特率: 菜单 → UartBaud → 38400
  2. 设置从机地址: 菜单 → UartAddr → 01

3.2 注意事项

  1. 串口和USB下载口共用串口(0,1),USB上传程序时,先拔掉串口线,以免程序上传失败;
  2. 如果程序上传失败,可以尝试:按住UNO的RESET按键,再点击上传,待arduino显示“正在上传”时,迅速松开按键;
  3. 42D/57D串口为RS485电平,需要一个TTL转RS485电平模块。

第4部分 脉冲控制电机运行示例

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板发送脉冲信号,控制电机循环正反转动。
    程序运行后,可观察到:
    a. LED灯亮,电机正转一圈
    b. LED灯灭,电机反转一圈
    c. 如此不断循环
    在这里插入图片描述

第5部分 读取参数示例

5.1 读取电机实时位置

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口读取电机实时位置信息。
    程序运行后,可观察到:
    a. LED灯每秒闪烁一次,即串口发出读取实时位置指令;
    b. 串口监视器可以观察到每秒输出一个位置值 location = xxxxx;
    c. 手转动电机轴,可以看到位置值变化 (增加或减少)。
    在这里插入图片描述

  3. 串口监视器输出结果
    在这里插入图片描述

5.2 读取电机实时转速

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板串口读取电机实时转速。
    程序运行后,可观察到:
    a. 电机匀速运行,每10秒改变一次转速(通过定时器1中断实现);
    b. LED灯每秒闪烁一次,即串口发出读取实时转速指令;
    c. 串口监视器可以观察到每秒输出一个位置值 speed = xx RPM;
    在这里插入图片描述

  3. 串口监视器输出结果
    在这里插入图片描述

5.3 读取电机输入脉冲数

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板串口读取输入脉冲数。
    程序运行后,可观察到:
    a. 电机匀速运行,每10秒改变一次转速(通过定时器1中断实现);
    b. LED灯每秒闪烁一次,即串口发出读取脉冲数指令;
    c. 串口监视器可以观察到每秒输出一个位置值 pulses = xxxx;
    在这里插入图片描述

  3. 串口监视器输出结果
    在这里插入图片描述

5.4 读取电机位置误差

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板串口读取位置误差。
    程序运行后,可观察到:
    a. 电机匀速运行,每10秒改变一次转速(通过定时器1中断实现);
    b. LED灯每秒闪烁一次,即串口发出读取位置误差指令;
    c. 串口监视器可以观察到每秒输出一个位置误差 error = xxxx;
    在这里插入图片描述

  3. 串口监视器输出结果
    在这里插入图片描述
    注意:errors = 51200 对应角度值360度

5.5 读取电机IO端口状态

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板串口读取IO端口状态。
    程序运行后,可观察到:
    a. LED灯每秒闪烁一次,即串口发出读取脉冲数指令;
    b. 串口监视器可以观察到每秒输出一个IO状态 IN_1=x IN_2=x OUT_1=x OUT_2=x;
    c. 改变输入端口状态(比如IN_1端口接地),可以观察到输出IO状态也会跟着变化;
    在这里插入图片描述

  3. 串口监视器输出结果
    在这里插入图片描述
    注: 1-高电平; 0-低电平

第6部分 设置参数示例

6.1 设置电机工作模式

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口设置工作模式。
    程序运行后,可观察到:
    a. LED灯亮,即串口发出设置细分指令;
    b. 如果设置成功,LED灯慢闪,可通过屏幕菜单Mode选项,查看设置的工作模式;
    c. 如果设置失败,LED灯快闪。
    在这里插入图片描述

6.2 设置电机工作电流

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口设置工作电流。
    程序运行后,可观察到:
    a. LED灯亮,即串口发出设置细分指令;
    b. 如果设置成功,LED灯慢闪,可通过屏幕菜单Ma选项,查看设置的电流;
    c. 如果设置失败,LED灯快闪。
    在这里插入图片描述

6.3 设置电机工作细分

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口设置工作细分。
    程序运行后,可观察到:
    a. LED灯亮,即串口发出设置细分指令;
    b. 如果设置成功,LED灯慢闪,可通过屏幕菜单MStep选项,查看设置的细分;
    c. 如果设置失败,LED灯快闪。
    在这里插入图片描述

6.4 恢复出厂参数

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口恢复出厂参数。
    程序运行后,可观察到:
    a. LED灯亮,即串口发出恢复出厂参数指令;
    b. 如果恢复成功,LED灯慢闪,屏幕显示“Reload ok”,“Reboot…”,电机会自动重启,需要重新校准电机;
    c. 如果恢复失败,LED灯快闪。
    在这里插入图片描述

第7部分 电机运行示例

7.1 电机速度模式运行

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口控制电机以速度模式运行。
    程序运行后,可观察到:
    a. LED灯亮/灭一次,电机改变一次速度运行,不停循环运行;
    b. 如果运行失败,LED灯快闪;
    在这里插入图片描述

7.2 电机位置模式1-按脉冲数运行

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口控制电机以脉冲数运行。
    程序运行后,可观察到:
    a. 电机按设定的脉冲数运行到指定位置(10圈),停止2000ms;
    b. 改变方向,再运行到指定位置(10圈),停止2000ms;
    c. 不停循环运行;
    d. 如果运行失败,LED灯快闪。
    在这里插入图片描述

7.3 电机位置模式2-按相对坐标运行

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口控制电机按相对坐标运行。
    程序运行后,可观察到:
    a. 电机按设定的相对坐标(realAxis)运行到指定位置(10圈),停止2000ms;
    b. 相对坐标(realAxis)取反,电机运行到起点位置,停止2000ms;
    c. 不停循环运行;
    d. 如果运行失败,LED灯快闪。
    在这里插入图片描述

7.4 电机位置模式3-按绝对坐标运行

  1. 接线说明
    在这里插入图片描述

  2. 代码说明
    代码功能:arduino UNO 主板通过串口控制电机按按绝对坐标运行。
    程序运行后,可观察到:
    a. 电机运行到绝对坐标(absoluteAxis=0),停止2000ms;
    b. 电机运行到绝对坐标(absoluteAxis=163840),停止2000ms;
    c. 不停循环运行;
    d. 如果运行失败,LED灯快闪。
    在这里插入图片描述

注:本文同样适合后续产品MKS SERVO28D/35D闭环步进电机
下一篇:《MKS SERVO42&57D 闭环步进电机_系列11 STM32_脉冲和串口例程》
欢迎加入MKS 闭环步进电机技术交流 Q群(948665794)
欢迎光临 创客基地 B站:https://space.bilibili.com/393688975
欢迎光临 创客基地 淘宝店:https://makerbase.taobao.com/
网盘资料下载 https://pan.baidu.com/s/1BjrK9SC8pWnDoU32F8jHqA?pwd=mks2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/702704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HiEV独家|余承东力推L3标准,华为ADS更高阶产品将至

作者 | 张祥威 编辑 | 德新 L3标准出台提速,智驾江湖的厮杀将更加惨烈。 近日,多位接近华为的人士告诉HiEV,余承东正在力推自动驾驶L3标准尽快出台,华为的多位技术专家深度参与了L3标准制定。 本月稍早前,余承东在重庆…

计算机网络-数据链路层下篇

目录 计算机网络 七、MAC地址,IP地址及ARP地址 (一)MAC地址 (二)IP地址 (三)ARP地址 八、集线器和交换机的区别 九、以太网交换机自学习和转发帧的流程 十、以太网交换机的生成树协议ST…

一步一步学OAK之十三:实现RGB相机上的空间对象跟踪

前面我们实现了在RGB相机上进行物体的对象跟踪,能够实时跟踪我们想要追踪的物探,但是,如果我们要想知道这个物体的三维空间坐标,该如何实现呢?要想实现这个功能,我们需要用到DepthAI API提供的MobileNetSpa…

无人机动力测试台-50公斤级-Flight Stand 50

Flight Stand 50测试台通过测量电机和螺旋桨的拉力、扭矩、转速、电流、电压、温度、螺旋桨效率和电机效率来精准地描述和评估无人机动力系统的性能。 产品应用 Flight Stand 50测试台可以用于以下方向: 实时动态测试 FS50 Pro的1000 Hz采样率使测试成为可能&am…

使用 OAT 工具替换 OceanBase 云平台节点

OceanBase 环境基本都会先安装 OCP 来部署、监控、运维数据库集群。但如果有机器过保等问题,就需要有平稳的 OCP 节点的替换方案。 作者:张瑞远 上海某公司 DBA,曾经从事银行、证券数仓设计、开发、优化类工作,现主要从事电信级 I…

android:DataPicker控件使用

一、前言:我真的服了,刚开始再发布运行的时候一直报这个错误“ Attempt to invoke virtual method void android.widget.TextView.setText(java.lang.CharSequence) on a null object reference”说空指针。我也上网查了,网上说在这个错误不是…

mysql行数据转为列数据

最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示。 借此机会,在网上查阅了相关方法,现总结出一种比较简单易懂的方法备用…

BI商业智能工具改变企业发展态势

BI商业智能工具在当今企业环境中扮演着越来越重要的角色,成为企业实现高速增长的关键因素之一。这些工具能够帮助企业应对海量数据挑战,提供更高效的数据处理和分析能力,为企业决策提供有力支持。以瓴羊Quick BI为例,它凭借其强大…

记事本软件误删后如何找回?

随着智能手机的普及,各种优秀的手机软件层出不穷,成为我们生活和工作中的得力助手。其中,记事本软件在手机上的应用也越来越受欢迎。 一款记事本可以给用户带来许多便利和帮助。与传统的纸质记事本相比,手机记事本具有更多的功能…

Java Spring多线程

Java Spring多线程 开启一个线程1 继承java.lang.Thread类2 实现java.lang.Runnable接口3 实现Callable接口4 实现线程池ThreadPoolExecutor Java线程池Executors 的类型Future与线程池 开启一个线程 https://blog.csdn.net/qq_44715943/article/details/116714584 1 继承java.…

React hooks文档笔记(二) 添加交互性

添加交互性 1. 事件传播1.1 停止传播1.2 阻止默认事件 2. [Hook] useState 状态3. 渲染和提交3.1 触发渲染3.2 React渲染组件3.3 提交对 DOM 的更改3.4 浏览器绘制 4. 渲染快照状态队列例子 5. 更新state中的对象 1. 事件传播 js的事件流: 事件捕获:从…

Spring学习(二)(Spring创建和使用)

经过前⾯的学习我们已经知道了,Spring 就是⼀个包含了众多⼯具⽅法的 IoC 容器。既然是容器那么 它就具备两个最基本的功能: 将对象(Bean)存储到容器(Spring)中; 从容器中将对象取出来。那么该怎么将Bean存储的Spring以…

单片机系统架构

单片机系统架构 单片机概述 微型计算机的组成 微处理器、存储器加上I/O接口电路组成微型计算机。各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。 微型计算机的应用形态 ​ 从应用形态上&am…

python数据可视化-日期折线图画法

引入 什么是折线图: 折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。 在折线图中,类别数…

【vue】- 简易版筛选组件可展开/收起

仅做记录&#xff0c;未整理格式 css部分未完全&#xff0c;每个筛选条件为固定宽度 实现效果 单行筛选条件时不触发更多按钮&#xff0c;且做占位处理 多行筛选条件时默认收起 同时设定最大/最小宽度并监听该组件宽度变化 filter.vue组件 <template><div :cla…

c#调用c++ dll,Release版本内存访问错误

最近遇到个比较经典的案例&#xff0c;在c#中调用yara进行文件检测&#xff0c;yara是c编写的一个非常强大库&#xff0c;github有个大佬用c#对其进行了封装&#xff0c;使其能在跨平台下&#xff0c;只需编译yara的so或dll就能直接跑。但总是在Release版本下时不时就崩溃&…

Hadoop 组成

4 Hadoop 优势(4 高) 1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。 2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。 3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务…

低代码平台在ERP软件中的作用

很多人认为 低代码开发平台的出现颠覆了传统的软件开发模式&#xff0c;对软件开发行业造成冲击&#xff0c;其实低代码开发平台的出现只是提高了软件开发的效率&#xff0c;并不是要颠覆软件开发的模式。低代码平台在erp软件开发中的作用还是比较明显的。下面一起来了解一下相…

Postman Mock快速入门

目录 前言&#xff1a; 1.Mock简介 1.1 Mock定义 1.2 Mock目的 1.3 Mock意义 1.4 Mock服务 2. Postman 创建Mock服务 2.1 创建Mock服务 2.2 Postman创建Mock服务 2.2.1 Postman 创建Mock服务器参数 2.2.2 Postman创建Mock步骤 3.访问Postman Mock服务 前言&#xf…

css基础知识十三:怎么理解回流跟重绘?什么场景下会触发?

一、是什么 在HTML中&#xff0c;每个元素都可以理解成一个盒子&#xff0c;在浏览器解析过程中&#xff0c;会涉及到回流与重绘&#xff1a; 回流&#xff1a;布局引擎会根据各种样式计算每个盒子在页面上的大小与位置重绘&#xff1a;当计算好盒模型的位置、大小及其他属性…