Arduino 串口绘图仪(Serial Plotter)的使用

Arduino IDE 2 串口绘图仪(Serial Plotter)

串口绘图仪的规则

串口绘图仪实际上是从预设的串口获取值并将其绘制在xy轴图。X轴可以说是一个时间实例,被等分成500份,每获取到一组数据向左滑动一个单位,读取数据的速度起快,滑动就越快。 Y轴代表来自串口的值,可以是单个也可以是一组 。在读取串口数据时遇到" "(换行或通过Serial.println(“”))则表示切换到下一行数据,同行数据的不同组的数据通过(,)间隔,像下面的形式。

100, 200, 300100, 200, 300100, 200, 300100,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(" "); // 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(" "); divVal += 2 * PI / 16.0; delay(100);}


比丘资源网 » Arduino 串口绘图仪(Serial Plotter)的使用

发表回复

提供最优质的资源集合

立即查看 了解详情