Arduino 串口绘图仪(Serial Plotter)的使用
Arduino 串口绘图仪,绘制多个数据。
文章共649字 · 阅读需要大约3分钟
一键AI生成摘要,助你高效阅读
问答
·
Arduino IDE 2 串口绘图仪(Serial Plotter)
串口绘图仪的规则
串口绘图仪实际上是从预设的串口获取值并将其绘制在xy轴图。X轴可以说是一个时间实例,被等分成500份,每获取到一组数据向左滑动一个单位,读取数据的速度起快,滑动就越快。 Y轴代表来自串口的值,可以是单个也可以是一组 。在读取串口数据时遇到"\n"(换行或通过Serial.println(“”))则表示切换到下一行数据,同行数据的不同组的数据通过(,)间隔,像下面的形式。
100, 200, 300
100, 200, 300
100, 200, 300
100,200, 300
可以考虑成一个二维数组。这个输出在绘图仪中可以绘制出三条线。
## 显示多条曲线
在代码中实现一行数据的拼结
方法一
先拼结数据,一次打印。
String temp = "";
temp.concat(a);
temp.concat(",");
temp.concat(b);
Serial.println(temp);
方法二
直接打印,数据间隔使用逗号(,),最后使用println打印数据。
Serial.print(a);
Serial.print(",");
Serial.println(b);
方法三
封装函数,假设现在只打印整型(int)。
void plotterPrint(int val, boolen isEnd = false) {
Serial.print(val);
if (isEnd) }{
Serial.println("");
} else {
Serial.print(",")
}
}
## 调试
打印直线
打印三条直线
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void print_1() {
Serial.print(100);
}
void print_2() {
Serial.print(200);
}
void print_3() {
Serial.print(300);
}
void loop() {
// put your main code here, to run repeatedly:
print_1();
Serial.print(",");
print_2();
Serial.print(",");
print_3();
Serial.print("\n"); // Serial.println("");
delay(100);
}
- 画线的速度能过delay()来控制;
- Serial.println()最好放在loop的最后;
- 如果两个Serial.print()之间不添加逗号(,),绘图仪上会出现一个两个数直接拼结起来的数据。
打印三角函数
double divVal = 0.0;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void print_1() {
Serial.print(10 + cos(divVal));
}
void print_2() {
Serial.print(20 + sin(divVal));
}
void print_3() {
Serial.print(30 + cos(divVal + PI));
}
void loop() {
// put your main code here, to run repeatedly:
print_1();
Serial.print(",");
print_2();
Serial.print(",");
print_3();
Serial.print("\n");
divVal += 2 * PI / 16.0;
delay(100);
}
更多推荐
已为社区贡献1条内容
所有评论(0)