How to plot in real time from serial port

3 views (last 30 days)
Atif Maqsood
Atif Maqsood on 9 Apr 2016
Commented: Shubham on 18 Sep 2024
Hi, I want to plot Celsius temperature output in real time coming from the serial port through RS232to the PC com port . I am new to MATLAB any help please?

Answers (1)

Shubham
Shubham on 18 Sep 2024
Hey Atif,
In order to plot real time data coming from serial port, please follow the below mentioned steps:
  • Setup a connection to serial port and read the data. For this purpose you can use the "serialport" function to establish a communication channel with the serial port. However, please note that this function was introduced in R2019b. If you are using older releases of MATLAB, I would suggest you to use the "serial" function for establishing the connection with the serial port.
  • Use the file I/O operations for reading the port data as mentioned in the following documentation: https://in.mathworks.com/help/matlab/low-level-file-i-o.html?s_tid=CRUX_lftnav
  • For creating a real time plot, retrieve the data chunks from the serial port and keep adding them to the same figure by using the "hold on" command or the "drawnow" function. You can also have a look at the following MATLAB Answer describing a few ways to plot in real time: https://www.mathworks.com/matlabcentral/answers/83192-plot-in-real-time
Alternatively use the following File Exchange Submission for plotting graphs by accessing serial port data in real time: https://www.mathworks.com/matlabcentral/fileexchange/28941-real-time-data-plot-from-serial-port
I hope this helps!
  2 Comments
Walter Roberson
Walter Roberson on 18 Sep 2024
The low-level file I/O section is not actually relevant. You need read or readline
For the real time plot, I recommend animatedline with addpoints (and drawnow )

Sign in to comment.

Categories

Find more on Graphics Objects in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!