在本教程中,我们将向您展示如何使用MATLB和Arduino控制直流电动机。如果您不熟悉MATLAB,建议您使用MATLAB进行简单的LED闪烁程序入门。
创建用于控制直流电动机的MATLAB图形用户界面
用Arduino for MATLAB完成设置后,我们必须构建GUI(图形用户界面)来控制DC电动机。要启动GUI,请在 命令窗口中 键入以下命令
指南
将会打开一个弹出窗口,然后选择新的 空白GUI ,如下图所示,
现在,选择三个按钮进行顺时针旋转,逆时针旋转和STOP,如下所示,
要调整大小或更改按钮的形状,只需单击它,就可以拖动按钮的各个角。通过双击按钮,可以更改特定按钮的颜色,字符串和标签。我们自定义了三个按钮,如下图所示。
您可以根据需要自定义按钮。现在,当您保存此代码时,将在MATLAB的“ 编辑器”窗口 中生成一个代码。要为您的Arduino编写代码以执行与项目相关的任何任务,必须始终编辑此生成的代码。因此,下面我们编辑了MATLAB代码。
用Arduino控制直流电动机的MATLAB代码
在为直流电动机控制进行编辑后,完整的MATLAB代码 将在该项目的最后给出。此外,我们在此处包括要下载的GUI文件(.fig)和代码文件(.m),您可以使用它们根据需要自定义按钮。下面是我们为顺时针,逆时针旋转直流电动机并使用三个按钮停止旋转所做的一些调整。
将以下代码复制并粘贴到行号。74,以确保每次运行m文件时Arduino都在与MATLAB通讯。
清除所有 全球 a = arduino ();
向下滚动时,您会看到GUI中的每个按钮都有三个功能。现在,根据您要在单击时执行的任务,在每个函数中编写代码。
在“ 顺时针” 按钮的功能中,将以下代码复制并粘贴在该功能的右括号之前,以使电动机沿顺时针方向旋转。在这里,我们在针脚6处设置高电平,在针脚5处给出低电平,以使电动机沿顺时针方向旋转。
全球 writeDigitalPin(a,'D5',0); writeDigitalPin(a,'D6',1); 暂停(0.5);
现在,在“ 逆时针” 按钮的功能中,将以下代码粘贴到该功能的末尾,以使电动机沿逆时针方向旋转。在这里,我们在针脚5处设置高电平,在针脚6处提供低电平,以使电动机沿逆时针方向旋转。
全球 writeDigitalPin(a,'D5',1); writeDigitalPin(a,'D6',0); 暂停(0.5);
最后在“ 停止” 按钮的功能中,将以下代码粘贴在最后,以停止电动机的旋转。在这里,我们在引脚5和6处都设置了LOW以停止电动机。
全球 writeDigitalPin(a,'D5',0); writeDigitalPin(a,'D6',0); 暂停(0.5);
所需材料
- MATLAB安装的笔记本电脑(首选:R2016a或更高版本)
- Arduino UNO
- 直流马达
- L293D-电机驱动器
电路原理图
用MATLAB控制直流电动机
根据电路图设置硬件后,只需单击运行按钮即可运行.m文件中的已编辑代码
MATLAB可能需要几秒钟来做出响应,在MATLAB显示BUSY指示之前,不要单击任何GUI按钮,您可以在屏幕的左下角看到该指示,如下所示,
当一切准备就绪时,单击顺时针或逆时针按钮以旋转电动机。当您按顺时针方向按钮时,电流从引脚6到引脚5流动,电动机将沿顺时针方向旋转,而在逆时针方向,电流则从引脚5到引脚6流动,并且电动机将沿顺时针方向旋转,电动机将沿顺时针方向旋转。要停止直流电动机的旋转,请按STOP按钮。使用MATLAB可以使用相同的方法来控制伺服电机,我们只需要相应地编辑代码即可。您可以查看以下视频,以了解使用Arduino进行MATLAB DC电机控制的完整过程。