资讯详情

如何用Matlab连接控制Arduino:GUI界面制作与电机控制

MATLAB它是一种高级技术计算语言和交互式环境,用于算法开发、数据可视化、数据分析和数值计算。Arduino开发板是一种越来越流行的开源硬件。

一个是什么都可以算的软件,一个是最受欢迎的开源硬件。两者的结合能产生什么样的火花?Matlab如何控制软件研究Arduino,将从Matlab制作Arduino的GUI界面和simulink探索如何使用应用程序Matlab连接和控制Arduino。

Matlab与Arduino联合应用——GUI界面

首先,介绍如何安装配置Matlab的GUI界面,可以实现正确ArduinoIO口的操作。

下图所示为matlab中Arduino相关程序的下载界面

0ef543fb8dd0a86a3401114324a52b46.png

压缩文件下载后解压缩ArduinoIO打开文件夹Matlab(作者是2012年的版本),至于目前的工作目录ArduinoIO文件夹下。

打开Matlab的GUIDE

安装以下方法,拖动两个按钮,双击按钮显示文本后,可以在属性页面下string我们用两个按钮来控制直流电机的旋转

到目前为止,我们已经完成了必要程序的烧写和界面的初步编写。以下将继续介绍如何添加按钮的响应函数,以实现上位机的控制功能。

我们利用Matlab初步设计了一个GUI在界面下,将添加必要的响应函数来演示时间的控制功能。

下图显示了如何从GUIDE进入按钮的编辑界面,我们将在Arduino相应的IO操作口或串口。

以下是操作函数的基本实例汇总

a=arduino('COM9')

设置引脚的输入或输出

a.pinMode(4,'input');

a.pinMode(13,'output');

读写引脚状态

a.digitalRead(4)

a.digitalWrite(13,0)

模拟输入或输出操作

a.analogRead(5)

a.analogWrite(9,155)

串口操作

a.serial%getserialport

a.flush;%flushesPC'sinputbuffer

a.roundTrip(42)%sends42tothearduinoandback

如果在本例中使用按钮Right-Motor”点击实现IO口8为高电平,驱动直流电机全速旋转。

globala;

a=arduino('COM7');

a.pinMode(8,'output');

在按钮“Right-Motor在响应函数中添加代码段

globala;

a.digitalWrite(8,(get(hObject,'Value')))

Arduino端准备

想要arduino端控制,还需要方向Arduino已下载中烧写pde该文件位于压缩后的位置ArduinoIO文件夹下的pde文件中usb线缆将Arduinouno连接电脑,点击GUI远端控制功能可以通过添加按钮来实现。

我们介绍,在Matlab中建立一个ArduinoGUI过程。下面将继续介绍如何介绍Arduino软件准备端。

可以进行软件调试Arduino可以连接到计算机端。

以下是作者自己在其中遇到或可能遇到的问题的总结如下:

(1)已完成编写的(1)Matlab该程序已绑定到通信口COM8,执行Matlab程序有以下提示

Errorusingarduino(line83)

Couldnotopenport:COM8

ErrorinArduinomatlab>Arduinomatlab_OpeningFcn(line60)

a=arduino('COM8');

首先保证你的开发板已经连接至PC通过设备管理器检查端口是否与程序中设置的端口相同。

(2)在保证上述已完成的情况下,仍提示错误

Errorusingarduino(line54)

PortCOM8alreadyusedbyMATLAB

很可能你中间断了。Arduino您需要连接或重新编译程序Matlab中执行

delete(instrfind({'Port'},{'COM8'}))

然后重新连接。

(3)Arduino连接至PC但是上期不能烧写,Blogger中的pde此时应排除文件IDE编译环境中可能存在的问题

1下载最新的IDE环境(http://arduino.cc/en/Main/Software#toc2)

2安装手动模式更新驱动模式

在软件中注意更改TOOLs下面的“Board”和“serialport根据自己使用的选项Arduino进行修改。

以下将介绍如何配置硬件外围电路,为实验做最终准备。

为ArduinoUNO开发板连接外围电路,包括直流电机、led灯等外围设备。

使用的部件

下图是Arduino与直流电机的接口电路。

我们将分析各部分的功能

1开关

2直流电机

3二极管

4MOSFE管

5电机驱动电源(9V)

由于Arduino最大驱动电流是40mA,远小于电机驱动所需的电流。我们在这里使用一个MOSFET(当然可以用三极管代替)Arduion的小电流来控制电机的通断

电机属于电感负载。在启停阶段,由于电感的存在,可能会产生很大的反向电压,这可能会损坏我们MOSFET,使用二极管沿一个方向流动电流,以确保电机对其他电路的影响。

9V当我们直接将电源连接到直流电机的两侧时,电机将全速旋转。

在实验中,我们手里只有一个直流电机,所以另一个控制我们使用led模拟灯具,注意连接一个220欧元的电阻限流。

在完成基本的软硬件准备工作后,我们现在进入了最终的测试阶段。

操作顺序:

1将Arduino通过usb线缆连接至PC

2打开Matab,将当前文件夹设给我们matlab官网下载并解压缩ArduinoIO

3双击打开Arduinomatlab.fig,弹出控制界面

如果在Matlab提示错误信息,请尝试以下解决方案

5执行“clear清除变量;执行delete(instrfind({'Port'},{'COM8'}),重新拔出并插上电缆,创建新的通信连接,重复操作步骤1。

标签: usb三极管三极管驱动一只mosfet

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台