注意:不再支持此解决方案(以前称为“Arduino IO Package”)。建议您使用由MathWorks开发和支持的Arduino支持包:
- Arduino硬件的MATLAB支持包:从Arduino传感器读取、写入和分析数据
//www.ru-cchi.com/hardware-support/arduino-matlab.html
- Arduino硬件的Simulink支持包:开发在你的Arduino上独立运行的算法
//www.ru-cchi.com/hardware-support/arduino-simulink.html
只有在下列情况之一成立时,才使用此遗留支持:
-您使用的是MATLAB R2013b或更早版本(但不早于R2011a)。
-您需要Simulink模块,使您能够从您的Arduino交互流输入和输出
-您需要函数或块,使您能够交互式读取或重置编码器
-你正在使用不支持的Arduino克隆,不能与官方包(例如ChipKit32)一起工作
示例用法:
------------------
%——连接到单板
一个= arduino(“COM9”)
%——指定引脚模式
a.pinMode(4、“输入”);
a.pinMode(13,“输出”);
%——数字i / o
a.digitalRead(4) %读引脚4
a.digitalWrite(13,0) %写0到引脚13
%——模拟i / o
a. analoread(5) %读取模拟引脚5
a.analogWrite(9, 155) %写入155到模拟引脚9
%——串行端口
A.serial %获取串口
a.flush;%将刷新PC的输入缓冲区
a.roundTrip(42) %向arduino发送42并返回
%,伺服系统
a.servoAttach (9);在9号引脚上连接伺服
a.servoWrite (9100);%旋转9号引脚上的伺服到100度
val = a.servoRead (9);%从9号引脚上的伺服读取角度
a.servoDetach (9);%从9号引脚上分离伺服
%——编码器
A . encoderattach(0,3,2) %在引脚3(引脚A)和2(引脚B)上连接编码器#0
a.encoderRead(0) %读取位置
a.encoderReset(0) %重置编码器0
a.encoderStatus;获取所有三个编码器的状态
a.encoderDebounce(0,12) %设置debounce延迟为12 (~1.2ms)
a.encoderDetach (0);%分离编码器#0
%—adafruit电机屏蔽(与AFMotor库)
a.motorRun(4, 'forward') %运行电机向前
. stepperstep (1, 'forward', 'double', 100);%移动步进电机
%——关闭会话
删除()
与这个包相关的一些幻灯片和例子可以在这里找到:
//www.ru-cchi.com/matlabcentral/fileexchange/27843
最后,关于使用和故障排除的更详细信息可以在此提交文件中包含的readme.txt文件中找到。
引用作为
詹坎(2022)。对Arduino的传统MATLAB和Simulink支持(//www.ru-cchi.com/matlabcentral/fileexchange/32374-legacy-matlab-and-simulink-support-for-arduino), MATLAB中央文件交换。检索.