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 次查看(过去 30 天)
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 个评论
Tim Darrah
Tim Darrah 2020-10-25
编辑:Tim Darrah 2020-10-25
I also started getting this error when calling readVoltage from a function, then I just cleared the arduino object and it worked again. weird.

请先登录,再进行评论。

回答(1 个)

Lipi Vora
Lipi Vora 2019-4-12
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 个评论
Oliver Shorthose
Oliver Shorthose 2020-4-27
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:

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Arduino Hardware 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by