在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一个