沟通与Arduino®硬件SPI设备

这个例子说明了如何使用MATLAB®支持包Arduino®硬件才能使用SPI接口与M万博1manbetxCP42010数字电位器进行通信。

MCP42010数字电位器概述

该MCP42010装置是具有两个独立的通道256的位置为10Mohm电位SPI设备。

它有销5(PB1),6(PW1)和7(PA1)信道1,并且还对销10(PB0),9(PW0),8(PA0)信道0。销6和销9是刮水引脚。本例使用CS,SCK,SI,SO,VDD,VSS,PB1,PW1和PA1。

硬件设置

1)连接一MCP42010为10Mohm数字电位到Arduino硬件的SI,SO,SCK,CS,VDD和VSS端子。这个例子使用一个Arduino乌诺板用下面的连接。

  • SI(MOSI) - 数字引脚11

  • SO(MISO) - 数字销12

  • SCK - 数字引脚13

  • CS - 数字引脚10

  • VDD - 5V

  • VSS - GND

如果您使用的是不同的电路板,请确保您连接到正确的引脚。

2)一个万用表连接到PA1和PW1,以测量电阻。

控制数字电位

创建一个Arduino对象,包括SPI库。

一个= Arduino的();

或者,你可以明确地在图书馆的名称 - 值对在创建的Arduino对象的指定。

明确一个;A = Arduino的('COM4'“乌诺”“图书馆”'SPI');
上板乌诺(COM4)更新服务器代码。这可能需要几分钟的时间。

创建spidev对象,并指定芯片引脚数选择。

d_pot =设备(A,'SPIChipSelectPin''D10');

发送两个字节的数据来改变电阻。因为我们控制的是通道1,所以第一个字节应该是0b00010010,也就是十六进制的12。第二个字节是0和255范围内的新寄存器数据。下面的命令逐渐改变电位器的电阻。

RAB = 10 * 1000;RW = 52;%实际滑动端电阻对于REGVAL = 0:50:250 pot_resistance =拉布* REGVAL / 256 + RW;writeRead(d_pot,[HEX2DEC('12'),REGVAL]'UINT8');fprintf中(“当前电阻%d欧姆\ N”,pot_resistance);暂停(2);结束
当前阻力是52欧姆当前阻力是2.005125e + 03欧姆当前阻力是3.958250e + 03欧姆电流电阻5.911375e + 03欧姆电流电阻7.864500e + 03欧姆当前阻力是9.817625e + 03欧姆

代码运行并显示该电位计的读数。

清理

一旦连接不再需要,明确了关联对象。

明确d_pot一个