Matlab error when reading analogVoltage from Arduino "The first input must contain a multiple of 2 elements to convert from uint8 (8 bits) to uint16 (16 bits)."
14 views (last 30 days)
Show older comments
Hello,
I would like to control the position of a linear motor by reading the output from a linear potentiometer connected to it using the Matlab GUI.
I am sending the signal to run the motor until a certain value of voltage is received by Matlab, however when I run the code I get the following error:
"The first input must contain a multiple of 2 elements to convert from uint8 (8 bits) to uint16 (16 bits)."
Does anyone know how to get rid of this error?
my code looks like this
%FORWARD
b = readVoltage(a,'A2')
while b > 0.57
writePWMVoltage(a,'D3',5);
writeDigitalPin(a,'D12',1);
writeDigitalPin(a,'D9',0);
if b < 0.56
break
end
end
1 Comment
Tim Darrah
on 25 Oct 2020
Edited: Tim Darrah
on 25 Oct 2020
I also started getting this error when calling readVoltage from a function, then I just cleared the arduino object and it worked again. weird.
Answers (1)
Lipi Vora
on 12 Apr 2019
Hi, what exact line are you getting the error at? Also, I understand that you are reading voltage from a potentiometer and then writing to the motor pins, is that correct?
3 Comments
Oliver Shorthose
on 27 Apr 2020
Hi, I get this issue as well but using an AnalogInput block on Simulink. When I run the model as it is, it works fine and the model works. However, when I use that model inside another model I get the response '
- The first input must contain a multiple of 2 elements to convert from uint8 (8 bits) to uint16 (16 bits). '
The Arduino is attached to a pneumatic chamber to be inflated/deflated accordingly. Why might it be that it fails when called from the parent?
Parent use of the model:
The error:
See Also
Categories
Find more on Arduino Hardware 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!