主要内容

使用Adafruit®Motor Shield V2控制电机

本示例展示了如何使用MATLAB®支持包Arduino®硬件来控制伺服电机,直流电机万博1manbetx和步进电机使用Adafruit Motor Shield V2。

硬件设置

1.将Adafruit电机屏蔽连接到Arduino硬件上。

2.将FS5106B电机连接到屏蔽上标有“servo 1”的伺服电机端口1。

3.将直流玩具/爱好电机连接到电机端口1,在屏蔽上标记为“M2”。

4.将六线制Portescap步进电机连接到电机端口2上,该端口在屏蔽上标有“M3”和“M4”。将步进电机上的两根中间线连接到端口的中心,使它们接地在一起。如果您正在使用四线或五线步进电机,检查您的硬件规格,以适当的连接每条线。

5.将装有三节AA电池的电池组连接到标有“Power”的DC插孔上,并拆卸标有“Vin jumper”的插脚上的跳线。如果您的步进电机不需要高电源,这一步是可选的。

创建屏蔽对象

默认情况下,Adafruit\ motorshield dv2库不包含在板上的服务器代码中。创建arduino对象,并将Adafruit\ motorshield dv2库包含到硬件中。

A = arduino(“COM4为”“Uno”“库”“Adafruit \ MotorShieldV2”
更新Uno (COM4)上的服务器代码。这可能需要几分钟。
a = arduino with properties: Port: 'COM4' Board: 'Uno' AvailablePins: {'D2-D13', 'A0-A5'} AvailableDigitalPins: {'D2-D13', 'A0-A5'} AvailablePWMPins: {'D3', 'D5-D6', 'D9-D11'} AvailableAnalogPins: {'A0-A5'} AvailableI2CBusIDs: [0] Libraries: {'Adafruit/MotorShieldV2', 'I2C', 'Servo'}

通过指定所需的库名称参数创建一个附加组件屏蔽对象:

盾=附加(a,“Adafruit \ MotorShieldV2”
SCLPin: 'A5' SDAPin: 'A4' I2CAddress: 96 ('0x60') PWMFrequency: 1600 (Hz)

将屏蔽的I2CAddress设置为0 x60如果未指定,默认为。在总线0上搜索可用的I2C地址以指定不同的地址。

addrs = scanI2CBus(a,0)
addr =2×1单元格数组{' 0 x60} {0 x70的}

控制屏蔽上的伺服电机

每个屏蔽上都有两个伺服电机端口。在端口1上创建一个伺服电机对象。

S =伺服(屏蔽,1)
s =伺服属性:MotorNumber: 1引脚:'D10' MinPulseDuration: 5.44e-04(秒)MaxPulseDuration: 2.40e-03(秒)

将伺服电机轴的位置设置为最大位置。

writePosition (s, 1);

看到控制伺服电机学习如何使用伺服对象的示例。

控制屏蔽上的直流电机

每个屏蔽上有四个直流电机端口。在端口2上创建一个直流电机对象。

DCM = dcmotor(屏蔽,2)
dcm = dcmotorv2与属性:MotorNumber: 2 (M2)速度:0.00 IsRunning: 0

首先,将电机转速改为0.2.值的符号表示电机旋转的方向,这也取决于电机的接线。

扩张型心肌病。速度= 0.2;

启动电机,并在其运行时改变速度。完成后,请停止电机。

开始(dcm);扩张型心肌病。速度= 0.3;暂停(2);扩张型心肌病。速度= -0.2;暂停(2);停止(dcm);

控制屏蔽上的步进电机

每个屏蔽上都有两个步进电机端口。在端口2处创建一个步进电机对象,每转200步。

Sm =步进器(盾,2,200)
sm =步进与属性:MotorNumber: 2 StepsPerRevolution: 200 RPM: 0 StepType: Single ('Single', 'Double', 'Interleave', 'Microstep')

将电机的RPM(例如每分钟转数)设置为10,并向一个方向移动或步进电机200步,然后向相反方向再移动或步进200步。

sm。转速= 10;移动(sm, 200);暂停(2);移动(sm, -200);释放(sm);

清理

当不再需要该连接时,清除关联对象。

清晰的年代扩张型心肌病sm一个