MATLAB Answers

How to save voltage data as a array in Matlab, using a Arduino MEGA 2560 board?

8 views (last 30 days)
Hello everyone
I appreciate if you can help me with this issue.
I'm working with Arduino MEGA 2560 and I'm using the followings commands:
clc
clear all
a = arduino;
data = readVoltage(a,'A9');
So far, there is no problem (I'm using the analogic input A9). But I need some help with, How can I get an array with the measurement of the reading voltage in Matlab, without using Simulink and Arduino software, only Matlab?
I'm using a battery of 1.7 volts approx. as an example, next I need to apply this commands to a motor servo DC (Analogic Control System ACS-1000 from K and H fabricants.
I'm looking forward for your comments and help.
Thanks very much in advance.

  0 Comments

Sign in to comment.

Accepted Answer

Madhu Govindarajan
Madhu Govindarajan on 15 Jan 2019
Let's say you know how long of a vector you need, then use indexing.
Example -
for i = 1:100
data(i) = readVoltage(a,'A9');
pause(0.1);
end
Note the pause just pauses MATLAB and you might notice that the whole thing takes more than 10 seconds.
If you want to collect data till you press a pushbutton on the Arduino.
buttonPressed = false;
data = readVoltage(a,'A9');
while ~buttonPressed
data(end+1) = readVoltage(a,'A9');
buttonPressed = readDigitalPin(a,'D13'); % Here it is assumed that you have a push button connected to Pin 13.
pause(0.1);
end

  3 Comments

Jonathan Bijman
Jonathan Bijman on 16 Jan 2019
Thank you so much. It seems that it worked.
If it's not bother, can you explain me, please, the function of each command?
e.g. for i = 1:100
Does command creates a array of 1 row and 100 columns?
Why is necessary a pause for making this work?
The pushbutton is really necessary?
Thanks a lot for your help
=)
Madhu Govindarajan
Madhu Govindarajan on 16 Jan 2019
for loops are generally used when you know you have to loop through and repeat an activity a fixed number of times. In this case, repeat and create a vector of size 100. It could be used for anything.
The pause is to just ensure that you are not reading too quickly, you can do without it too.
While loops are used when you want something to repeat as long as a condition is true. So without the pushbutton you will have to come up with someother way to break your condition and make it false. Depends on how you set up your problem.
This page might help understand about different loops - https://www.mathworks.com/help/matlab/matlab_prog/loop-control-statements.html

Sign in to comment.

More Answers (0)