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