使用MATLAB编写一个程序来控制连接到Arduino的伺服电机。
Arduino的Matlab支持包让您使用Matlab为Arduino编写程序。支持包可用于32位和64位窗口,64位Mac OS和64位Linux。
安装包
要安装Packages Matlab Arduino支持包,请启动MATLAB并单击加载项>获取硬件支持包。选择要安装的包,并按照安装程序窗口中的安装说明进行安装。
安装包后,用USB线将Arduino连接到PC上,并运行以下命令:
>> a = arduino()
此时,Matlab将尝试与Arduino沟通。如果成功,则显示屏将读取这样的内容:
这个显示显示我的Arduino Uno已经连接到COM3。如果MATLAB无法连接到Arduino,则会显示错误信息。
电路图
本实验的电路简直就是一种带电源,接地和连接到Arduino的控制输入的伺服电机,如下图所示:
职能
我们使用的Matlab函数是:
写入(Motorobject,角度)
readPosition(MotorObject)
顾名思义,WritePosition()命令用于将伺服电机轴旋转到特定角度,并且readPosition()命令用于读取轴的当前位置。
我们将使用命令创建伺服电机对象:
servo_motor = servo(arduinobject,pinatwhichservoisattached)
代码
您的Arduino连接的%端口端口='com3';您的Arduino Board Board ='Uno'的%模型;%创建arduino对象与伺服库arduino_board = arduino(端口,板,'图书馆','伺服');%创建伺服电机对象servo_motor = servo(arduino_board,'d8');%环路旋转伺服电机从0到180,角度= 0:0.2:1写入(伺服_Motor,角度);current_position = readposition(servo_motor);current_position = current_position * 180;伺服电机FPRINTF的%打印电流位置('当前位置是%d \ n',current_position);需要%小延迟,以便伺服可以位于向其达到的%角度。暂停(2); end % bring back motor to 0 angle position writePosition(servo_motor, 0);
servo_control_through_matlab.m.zip
确保没有存储在MATLAB中的Arduino的先前对象,否则MATLAB将显示错误消息。在脚本文件中清除伺服和arduino对象或运行清除所有在运行草图之前的命令窗口中。
步骤
- 运行MATLAB并安装硬件支持包如果您首次使用MATLAB使用Arduino。
- 如电路图所示连接电路。
- 将伺服电源引脚连接到Arduino上的5V引脚。
- 将伺服接地引脚连接到Arduino上的GND引脚。
- 将伺服数据引脚连接到Arduino板上的数字引脚8。
- 写下您的M文件并运行它,Matlab将将该文件刻录到您的Arduino Board。
- 电机将开始从0到180旋转,然后回到0度。
自己试试这个项目吧!得到bom。