主要内容

部署Arduino函数来Arduino硬件使用MATLAB功能块

这个例子展示了如何编写MATLAB函数块来访问Arduino上的多个外围设备®硬件。

MATLAB功能块使您可以在SIMULINK中实现自定义MATLAB函数金宝app®模型。您可以使用MATLAB功能块生成可以部署到Arduino硬件的可读,高效和Compact C / C ++代码。

有关MATLAB函数块的详细概述,请参见使用块实现MATLAB函数使用MATLAB功能块创建自定义功能

使用MATLAB功能块进行代码生成提供:

  • 调度和多任务处理 - 您可以设置MATLAB功能块的采样率。生成的代码以指定的采样率运行在硬件上。使用多任务模式,您可以以不同的硬件运行不同的块。看将每一个离散的速率视为一个单独的任务为更多的信息。

  • 监视和调优-您可以监视信号和调优参数使用监视和优化并观察或记录输出信号。金宝app

金宝app支持的硬件

MATLAB功能阻止这些板上的支持代码生成:金宝app

  • Arduino由于

  • Arduino Nano 3.0.

  • Arduino Uno

  • Arduino Mega 2560.

  • Arduino兆理应

  • Arduino达芬奇

  • Arduino微

  • Arduino MKR1000

  • Arduino MKR1010

  • Arduino MKR零

所需的产品下载188bet金宝搏

使用MATLAB函数块在Arduino硬件上部署函数需要以下支持包:金宝app

  • 金宝appSimu金宝applink支持包Arduino硬件

  • MATLAB®金宝appArduino硬件支持包

部署MATLABIO功能Arduino硬件

配置一个功能,根据LED引脚的输入来设置LED引脚的状态,产生PWM信号,并通过所列的功能读取模拟电压数据读写(Arduino金宝app硬件MATLAB支持包)

在Arduino板上配置模型:

  1. 打开Simulin金宝appk模型。在MATLAB命令提示符处,输入:

    arduino_matlab_codegen

  2. 硬件标签,在准备部分中,点击硬件设置打开配置参数对话框。

  3. 选择硬件实现窗格中选择您的Arduino硬件硬件板参数列表。不要更改任何其他设置。点击好的

  4. 要查看编辑器中编写的函数,请双击MATLAB函数块。

    提示

    在部署函数之前,必须验证函数。看运行matlab函数

  5. 构建模型并在硬件上运行,在硬件Simulink模型的金宝app标签,在模式部分中,选择机上运行,然后单击构建、部署和启动

  6. 执行信号监控和参数调整,在硬件Simulink模型的金宝app标签,在模式部分中,选择机上运行,然后单击监视和优化.例如,可以改变PWM占空比,观察产生的PWM信号,或者可以将模拟引脚连接到VCC或GND,记录范围内的模拟电压。

请按照上述步骤操作arduino_matlab_codegen_initblock模型。在此模型中,您必须在程序执行开始时执行的所有引脚配置都在初始化块。配置引脚在初始化块使MATLAB中的函数块模块化。

运行matlab函数

在部署函数之前,请先在MATLAB命令窗口中运行函数。然后,您可以:

  • 验证MATLAB函数与硬件通信如预期。

  • 检测运行时错误,例如外设冲突,在部署期间难以诊断。

限制

无效的PWM针

这些PWM引脚数字不允许在MATLAB函数块内。

董事会 PWM PINS.
Arduino Mega 2560, Mega ADK 9、10
Arduino莱昂纳多,微 5
Arduino Uno,Nano3.0 3、11
Arduino由于 11,12.
Arduino MKR1000, MKR WiFi 1010, MKR Zero 4,5

如果你使用PWM函数MATLAB 金宝appArduino硬件支持包在MATLAB函数块中,那么在Arduino PWM块中不要使用表中列出的引脚金宝appSimu金宝applink支持包Arduino硬件.金宝appSimulink需要一个定时器来在Arduino硬件上进行调度。在MATLAB function Block中使用PWM函数生成PWM信号时,在Arduino硬件上选择定时器进行调度。连接到那个定时器的PWM引脚因此不能被使用。

连接I / O

如果你在你的模型上运行Connected I/O,它有MATLAB函数块数据读写(Arduino金宝app硬件MATLAB支持包)函数和其他Simulink Arduin金宝appo块,连接I/O不运行在MATLAB函数块。对于其他Simulink A金宝apprduino模块,Connected I/O运行正常。

资源冲突

为避免资源冲突:

  • 在使用Arduino外设之前,请先使用命令设置引脚的模式configurePin(Arduino金宝app硬件MATLAB支持包)到您计划使用的模式。

  • 在一个模型中,在不同的外围设备上使用相同的引脚可能会导致未定义的行为。例如,如果你正在使用readdigitalpin(Arduino金宝app硬件MATLAB支持包)要从MATLAB功能块中的引脚读取数字输入,因此在模型中的另一个块中不允许相同的引脚作为输出引脚。