概述
我正在尝试与matlab和arduino Uno进行实时通信 . 我们的想法是用PWM发送电机命令,并读取传感器值 . 但首先我想要在串口/ USB上进行实时通信 .
因此,arduino代码正在等待来自matlab的调用,并且根据调用的类型,答案将被转发到电机(控制命令)或编码器值将被发送到笔记本电脑(读取命令) .
在matlab部分,我使用了串行对象,并以高波特率打开 . 当我使用分析器检查matlab中的时序时,看起来问题不是来自matlab方面,而是来自arduino /或串行通信 .
问题是由于某种原因,我需要一个非常小的采样时间大约0.004秒 . 但无论波特率有多大,我都无法做到这一点 . 为了加快沟通,我应该改变什么?重要的是要提到我需要实时控制 . 使用0.004,我得到一些非常嘈杂的数据,平均值约为0.015;但是如果我将它改为0.015,仍会出现一些峰值 .
为了更好地理解这里是arduino代码:
const byte numChars = 8;
char receivedChars[numChars]; // an array to store the received data
int numb = 0;
boolean newData = false;
void setup() {
Serial.begin(250000);
Serial.setTimeout(100);
}
void loop() {
recvWithEndMarker();
showNewData();
}
void r
最后
以上就是听话曲奇为你收集整理的arduino读取matlab串口,Matlab Arduino实时串行通信,采样0.004 s的全部内容,希望文章能够帮你解决arduino读取matlab串口,Matlab Arduino实时串行通信,采样0.004 s所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复