此示例显示如何使用MATLAB®支持包forArduino®硬件使用SPI接口与MC金宝appP42010数字电位器通信。
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.一种