-1

我编写的 Matlab 脚本将用作我的控制系统的反馈。我已经下载了 Nicholas Giacoboni 完成的名为“HX711 的自定义 Arduino 库”的库。

我想转换我编写的Matlab 脚本 Matlab 脚本。我还自己测试了脚本并且它可以工作。
HX711是一款称重传感器放大器ADC转换器。

function data = Loadcell()
eml.extrinsic('arduino','addon','read_HX711')

a = arduino('COM5','Mega2560','libraries','ExampleAddon/HX711');
scale = -338000;
while 1
    LoadCell = addon(a, 'ExampleAddon/HX711',{'D6','D5'});
    data = (read_HX711(LoadCell)-7388092)/scale
    
end
end

simulink 现在的simulink 功能块的布局。

我在 Normal 模式下运行 Simulink,仿真停止时间在 inf 时出现此错误。如何解决此错误并使其正常工作?

问候,

艾伦

4

1 回答 1

1

您至少需要data在文件顶部定义大小。解析器不知道read_HX711返回什么,因此无法为data. 您可能需要对a和执行相同的操作LoadCell

也就是说,你需要类似的东西,

data = zeros(1,1);
a = zeros(1,1);
LoadCell = zeros(1,1);

在文件的顶部。

如果这不起作用,那么我建议您将上述所有代码放入单独的 m 文件中的函数中,该函数仅返回您的data变量。然后在您的MATLAB Function块代码中只需调用一次新函数(仍需要将其定义为外部函数)。

于 2018-10-26T14:45:42.513 回答