主要内容

在Arduino®硬件上与SPI设备通信

此示例显示如何使用MATLAB®支持包forArduino®硬件使用SPI接口与MC金宝appP42010数字电位器通信。

MCP42010数字电位器概述

MCP42010设备是256位10Kohm电位器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 10KOHM数字电位计的SI,SO,SCK,CS,VDD和VSS引脚连接到Arduino硬件。此示例使用Arduino UNO板具有以下连接。

  • Si(MOSI) - 数字销11

  • 所以(味噌) - 数字销12

  • SCK - 数字引脚13

  • CS - 数字销10

  • VDD - 5V.

  • vss - gnd.

如果您使用的是其他板,请确保连接到正确的引脚。

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

控制数字电位计

创建Arduino对象并包含SPI库。

a = arduino();

或者,您可以在创建Arduino对象的情况下在库中的名称 - 值对中明确指定它。

清除一种;a = arduino('com4''uno''图书馆''spi');
更新oco(com4)的服务器代码。这可能需要几分钟的时间。

创建SpideV对象,并指定芯片选择的PIN码。

d_pot =设备(a,'spichipselectpin''D10');

发送两个字节的数据以改变电阻。由于我们是控制信道1,因此第一个字节应该是0b00010010,其在十六进制中为12。第二个字节是0和255范围内的新寄存器数据。以下命令逐渐改变电位器的电阻。

rab = 10 * 1000;rw = 52;%实际刮水器电阻为了雷瓦尔= 0:50:250 pot_resistance = rab * regval / 256 + rw;Writeread(d_pot,[hex2dec('12'),regval],'uint8');fprintf('电流阻力是%d ohm \ n',pot_resistance);暂停(2);结尾
电流电阻为52欧姆电流电阻为2.005125E + 03欧姆电流电阻为3.958250E + 03欧姆电流电阻为5.911375E + 03欧姆电流电阻为7.864500E + 03欧姆电流电阻为9.817625E + 03欧姆

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

清理

一旦连接不再需要,清除关联对象。

清除D_POT.一种