图形始终对可视化数据很有帮助,并且通过查看它们来查找趋势和模式变得非常容易。有很多软件可以根据输入值绘制图表,今天我们将使用MATLAB基于LM35传感器的温度数据绘制图表。本教程将为您提供有关如何使用MATLAB绘制实时图形的基本思想。此处使用Arduino Uno从LM35温度传感器获取温度数据。
在继续进行下去之前,如果您不熟悉MATLAB,可以查看我们以前的MATLAB教程,以更好地了解这些知识:
- MATLAB入门:快速入门
- 将Arduino与MATLAB接口-闪烁LED
- MATLAB与Arduino之间的串行通信
- 使用MATLAB和Arduino的直流电动机控制
- 使用MATLAB和Arduino的步进电机控制
创建用于绘制图形的MATLAB图形用户界面
首先,我们必须构建GUI(图形用户界面)以使用温度数据绘制图形。要启动GUI,请在 命令窗口中 键入以下命令
指南
将会打开一个弹出窗口,然后选择新的 空白GUI ,如下图所示,
现在,我们必须为MATLAB图形界面选择一个按钮,两个轴和一个文本框。按钮将用于启动温度感测,两个轴用于绘制图形,文本框用于显示温度的当前值。
要调整按钮的大小或更改按钮,“轴”或“编辑文本”按钮的形状,只需单击它,就可以拖动按钮的各个角。通过双击其中任何一个,您将能够更改该特定按钮的颜色,字符串和标记。定制后,它看起来像这样
您可以根据需要自定义按钮。现在,当您保存此代码时,将在MATLAB的“ 编辑器”窗口 中生成一个代码。为了使您的Arduino执行与项目相关的任何特定任务,您始终必须编辑此生成的代码。因此,下面我们编辑了MATLAB代码。您可以在MATLAB入门教程中了解有关命令窗口,编辑器窗口等的更多信息。
用于绘制图形的MATLAB代码
在项目结束时,给出了用于使用LM35和Arduino设计温度计的完整MATLAB代码。此外,我们在此处包括要下载的GUI文件(.fig)和代码文件(.m),您可以使用它们根据需要自定义按钮或轴的大小。我们已经编辑了生成的代码,如下所述。
将以下代码复制并粘贴到行号。74以确保每次运行 m-file 时Arduino都在与MATLAB通讯。
清除所有 全球 a = arduino ();
向下滚动时,将在GUI中看到为 Pushbutton 和 Edit Text 创建的两个功能,而不会为Axes创建任何功能。现在,根据您要执行的任务在“按钮(开始按钮)”功能中编写代码。
在“ 开始” 按钮的功能中,在功能结束之前复制并粘贴以下代码以启动温度感应。为了连续感测,显示和图形化绘制温度,我们使用 while循环 。我们在每次迭代后提供了1秒的 暂停 ,因此温度值将每秒更新一次。
x = 0; go = true; 全球 而go值= readVoltage(a,'A1'); temp =(值* 100); 显示(温度); x =; 情节(handles.axes1,x); 并网 xlabel('Time(seconds)')ylabel('Temperature(°C)'); title('实时温度图'); drawow set(handles.edit1,'String',num2str(temp)); 暂停(1); 结束
现在,让我们看看代码是如何工作的。在下面的三行代码中,我们将' x '的初始值设置为零,将' go '定义为true以启动 while 循环,并在函数中声明' global a' 以调用Arduino。
x = 0; go = true; 全球
下面的代码行用于检测来自Arduino模拟引脚A1的电压值,该模拟引脚连接到LM35温度传感器的'OUT'引脚。输出将是电压值而不是模拟值。
值= readVoltage(a,'A1');
在这里,我们可以将电压值乘以10,将电压值直接转换为温度值(摄氏度)
temp =(值* 100);
现在,要绘制图形 'plot(handles.axes1,x)' 函数,其中 axis1 是Graph区域的参考或名称。因此,如果要绘制多个图形,则只需更改轴的名称,就像绘制另一个图形一样,可以编写 plot(handles.axes2,x)'。
“网格在” 用于在图形的 “ 网格”视图上 ,“ xlabel”,“ ylabel” 和“ title ”用于命名x轴,y轴和标题。
情节(handles.axes1,x); 并网 xlabel ('Time(seconds)') ylabel ('Temperature(°C)'); title('实时温度图');
“ Drawingow” 用于实时更新图形表示。
拉多
要使用下面的命令每秒在 编辑文本框中 显示温度值,
设置(handles.edit1,'字符串',num2str(temp));
所需材料
- MATLAB安装的笔记本电脑(首选:R2016a或更高版本)
- Arduino UNO
- LM35 –温度传感器
- 连接线
- 面包板
电路原理图
用MATLAB绘制图形
根据电路图设置硬件后,只需单击运行按钮即可运行.m文件中已编辑的代码
MATLAB可能需要几秒钟的时间做出响应,在MATLAB在左下角显示繁忙消息之前,请不要单击任何GUI按钮,如下所示,
一切准备就绪后,单击“开始”按钮,您将开始在“图形区域”和“ 编辑文本”框中 获取温度数据。该值将每隔一秒钟自动更新一次。您可以在1秒钟的间隔内在MATLAB代码中进行相应更改。
输出将如下图所示,
这是您可以使用MATLAB为Arduino的任何传入值绘制图形的方法。
请查看下面的演示视频,以获取正确的理解。