主要内容

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

本示例展示了如何使用MATLAB®支持包Arduino®硬件使用SPI接口与MCP4金宝app2010数字电位器通信。

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(SDO) -数字引脚11

  • SO(SDI) -数字引脚12

  • SCK -数字引脚13

  • CS -数字引脚10

  • VDD - 5v

  • VSS - GND

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

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

控制数字电位器

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

A = arduino();

或者,您可以在创建arduino对象时显式地在Libraries Name-Value对中指定它。

清晰的一个;A = arduino(“COM4为”“Uno”“库”SPI的);
更新Uno (COM4)上的服务器代码。这可能需要几分钟。

创建一个spidev对象并指定芯片选择的引脚号。

D_pot =设备(a,“SPIChipSelectPin”“D10”);

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

拉布= 10*1000;Rw = 52;%实际雨刷阻力regVal = 0:50:250 pot_resistance = Rab*regVal/256+Rw;writeRead (d_pot [hex2dec (“12”), regVal),“uint8”);流('电流电阻为%d欧姆\n', pot_resistance);暂停(2);结束
电流电阻为52 Ohm电流电阻为2.005125e+03 Ohm电流电阻为3.958250e+03 Ohm电流电阻为5.911375e+03 Ohm电流电阻为7.864500e+03 Ohm电流电阻为9.817625e+03 Ohm

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

清理

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

清晰的d_pot一个