If you use Arduino, perhaps to handle the lower-level driving work of your DIY Robocar, you may have noticed the Serial Plotter tool, which is an easy way to graph data coming off your Arduino (much better than just watching numbers scroll past in the Serial Monitor).
You may have also noticed that the Arduino documentation gives no instructions on how to use it ¯_(ツ)_/¯. You can Google around and find community tutorials, such as this one, which give you the basics. But none I’ve found are complete.
So this is an effort to make a complete guide to using the Arduino Serial Plotter, using some elements from the above linked tutorial.
First, you can find the feature here in the Arduino IDE:
Arduino Serial Plotter Change Scale
It will plot any data your Arduino is sending out in a Serial.print() or Serial.println() command. The vertical Y-axis auto adjusts itself as the value of the output increases or decreases and the X-axis is a fixed 500-point axis with each tick of the axis equal to an executed Serial.println() command. In other words the plot is updated along the X-axis every time Serial.println() is updated with a new value.
It also has some nice features:
- Plotting of multiple variables, with different labels and colors for each
- Can plot both integers and floats
- Auto-resizes the scale (Y axis)
- Supports negative value graphs
- Auto-scrolls the X axis
I am trying to plot my counter vs. Time on the serial plotter, but the values on the y axis are so big there is no way that it's displaying the counter values. I have printed both values: Serial. Serial Plotter is one of the tools in Arduino IDE. Arduino can read the temperature, humidity or any kind of sensor data, and send it to Serial Plotter. Serial Plotter receives data from Arduino and visualizes data as waveforms. Serial Plotter can visualize not only single but also multiple sensor data in the same graph.
But to make it work well, there are some tricks in how to format that data. Here’s a complete(?) list:
- Plot one variable: Just use Serial.println()
Serial.println(variable)
;
- Plot more than one variable. Print a comma between variables using Serial.print() and use a Serial.println() for the variable at the end of the list. Each plot will have a different color.
- Plot more than one variable with different labels. The labels will be at the top, in colors matching the relevant lines. Use Serial.print() for each label. You must use a colon (and no space) after the label:
A more efficient way to do that is to send the labels just once, to set up the plot, and then after that you can just send the data:
- Add a ‘min’ and ‘max’ line so that you can stop the plotter from auto scaling (Thanks to Stephen in the comments for this):
Arduino Serial Plotter Scale Free
- Or if you have multiple variables to plot, and want to give them their own space:
Arduino Serial Plotter X Axis Scale
Of course, now the numbers on the y-axis don’t mean much, but you can still see the waveforms.