首先利用usb转485串口线将伺服电机连接到电脑上,需要安装USB转UART的驱动,并且在matlab中设置串口,串口设置代码如下:

%%  设置串口
scom = serial('COM3',...'BaudRate', 115200,...'Parity', 'none',...'DataBits', 8,...'StopBits', 1,...'BytesAvailableFcnCount', 1,...'BytesAvailableFcnMode', 'byte',...'BytesAvailableFcn', {@read_serial});

其中COM3是串口名,可从设备管理器>端口查看,其他参数为RS485总线参数及单电机命令数据帧格式,可从电机RS485协议说明中查看。

设置完串口以后,利用485协议将信号写入到伺服电机中。代码如下:

gui1=[62,164,1,12,239,160,241,4,0,0,0,0,0,160,140,0,0,193];
fwrite(scom,gui1);

其中数组gui1就是利用485协议写的命令,第一位数62为头字节,均为62,RS485协议中为0x3E,转为十进制即为62。第二位164为命令字节,协议中有读取pid参数命令,电机关闭命令等诸多命令,这里举例的是多圈位置闭环控制命令,RS485协议中为0xA4,转为十进制即为164。第三位1即为ID字节,代表需要控制哪个电机,最多可以控制32个电机。第四位为数据长度字节,第五位239为帧头校核字节,即前四个字节62,164,1,12之和。第六位到第十三位为速度控制字节,首先需要转动的角度转化为字节数,3600个字节转一度,再将所需字节数用十六进制表示,接着将每一位上的十六进制数转为十进制表示,位数越小,字节位置越靠前。例如所需转动角度为90度,字节数需要324000,转为十六进制即为4f1a0,该十六进制数共三位,即04,f1,a0,转为十进制数为4,241,160,位数由低到高排列160,241,4。第十四位到第十七位为速度控制位,计算方法与位置控制相同,最后一位为字节校验和,保证前面数据无误,计算方法将第六位到第十七位按十进制相加除256取余即可,实例代码中相应位数的和为705,除256取余即为77。

最后需关闭串口。

stopasync(scom);fclose(scom);delete(scom);clear scom;

初学rs485,撰此文以记。

在matlab中,简单地利用RS485协议对伺服电机进行控制相关推荐

  1. 傻瓜攻略(十五)——MATLAB中简单的聚类分析方法

    本文是对聚类分析较为简单的介绍,笔者自从大二开始接触数学建模,就使用过Q型聚类和R型聚类,但是一直到研一结束,都没有一个具体的认识,浅尝辄止,不敢言通.最近参加研究生数学建模比赛,又用到了R型聚类方法 ...

  2. m 文件 dll matlab 中调用_利用USO服务将特权文件写入武器化

    James Forshaw发现的DiagHub DLL loading技术已经非常有名了.每当你在Windows或一些第三方软件中发现SYSTEM权限的任意文件写漏洞时,你就可以用这一招来造成任意代码 ...

  3. matlab中圆环表示,利用MATLAB分析圆环电流的磁场分布.doc

    第 29卷第 1期 V ol 129 N o 11 长春师范学院学报 (自然科学版 Journal of Changchun N ormal University (Natural Science 2 ...

  4. MATLAB中简单的数据库操作

    Matlab通过JDBC建立到Oracle数据库的连接 Linux下的配置过程和Windows一样,如下: 1.将Oracle JDBC的JAR包拷贝到Matlab的相关目录(..\matlab\ja ...

  5. fmri的图像数据在matlab中显示,利用imagesc工具进行显示,自带数据集-by 西南大学xulei教授...

    这里包含了这样一个数据集:slice_data.mat. 这个数据集中包含的mri数据是:64*64*25.共有25个slice.每个slice的分辨率是64*64. 程序非常简短: 1 2 3 4 ...

  6. matlab中滑模boost,一种基于滑模控制的新型Boost正弦波逆变器

    (17) 式中 , 滑模存在的条件是要求所有在滑模面附近的状态轨迹都指向滑模面.通过滑模控制器产生的信号控制开关管的动作来保证系统的状态稳定在滑模面附近,因此,滑模控制器需满足式(18) 使开关管变量 ...

  7. 如何用matlab做表格,matlab用excel数据做表格-如何向matlab中导入excel表格 利用表格数据做出图......

    matlab如何从excel表格中读取数据? 工具:matlab 2018b 1.打开matlab击主页下入数据,可以导入excel数据此将自己命名huitushuju文件导入: 2.点击打开按钮,即 ...

  8. Matlab中IFFT/FFT注意事项及在OFDM仿真中的应用问题

    1.Matlab里的IFFT/FFT函数系数的问题 Matlab里的ifft函数会在做完正常的变换后除以ifft变换的点数,而fft函数中没有系数. Matlab里的IFFT变换及FFT变换: 因此在 ...

  9. matlab如何输出一个函数的图像,在matlab中如何输出一个函数的图像

    点击查看在matlab中如何输出一个函数的图像具体信息 答:A. imread imread函数用于读入各种图像文件,其一般的用法为 [X,MAP]=imread('filename','fmt')其 ...

  10. MATLAB中的线性插值

    插值分为好多种,插值其实就是所谓的上采样.最基本的也是最简单的线性插值还是比较好理解的,看下图 即线性插值就是先根据已知点求出过这两点的直线方程,然后再把需要进行插值的位置的X坐标代入到这个直线方程中 ...

最新文章

  1. 通过yumdownloader下载rpm包
  2. 理解 RXSwift:单元测试(四)
  3. 计算机检索技巧知识,初学者常用电脑技巧知识
  4. 五层架构(MVC+biz+lib)
  5. 关于HTML5中的video和audio元素
  6. 用 git 同步 Colab 与 Gitlab、Github 之间的文件
  7. 工商银行:应用多k8s集群管理及容灾实践
  8. C#中对 API函数的调用
  9. 解决QTableWidget不显示数据的问题
  10. BN层详解(含有公式推导过程)
  11. CATIA如何实现设计模块快速切换?
  12. 2019电商数据分析师实战项目教程 电商数据分析报告 电商运营数据分析 电商数据分析流程
  13. TheOpenGroupDPBoK个人认证计划
  14. double转换为二进制
  15. 嵌入式毕设分享 STM32 wifi照明控制系统 - 智能路灯(毕设分享)
  16. asp.net网上求职招聘系统
  17. 【JavaWeb】jsp页面中表单重复提交的三种情况
  18. LibreOffice转换文档格式命令
  19. stem打开方舟显示服务器为空,steam方舟进打开游戏就弹小窗进不去 | 手游网游页游攻略大全...
  20. matlab pcode 单步运行,[转载]Matlab中的profile工具

热门文章

  1. 在阿里矢量库下载了字体图标在项目引入无法显示时
  2. Aspen hysys换热器修改计算模式Find Fouling模式
  3. 2022上海Java工资收入概览
  4. 地理探测器——空间统计分析
  5. docker安装mangoDB
  6. 智能公交监控调度系统技术方案,等车不再等到心碎
  7. 西宁公交调度员招聘计算机题库,调度员考试题库.doc
  8. 关于常用序号的几点说明(数字序号顺序)
  9. 经典扫雷游戏Web版
  10. c语言程序代码分享,一些简单的C语言程序代码(最新整理)