使用I2C连接MCP4651-502E数字电位器

时间:2017-05-16 16:46:15

标签: arduino i2c

我正在使用两个MCP4651双数字电位器,我想通过I2C从Arduino Uno控制。这是MCP4651的数据表,因此您无需查找:http://www.farnell.com/datasheets/1789212.pdf

我也会附上PCB原理图,但我没有足够的声誉。

我正在尝试将我的值写入雨刮器1寄存器,如数据表第49页所示。但是我尝试的每一个命令都得不到承认。我还附上了示波器的截图。

screenshot of the oscilloscope

这是我的代码:

#include <Wire.h>

void setup()
{
  Wire.begin();
}

void loop()
{
  Wire.beginTransmission(40);
  Wire.write(0b10010000);
  Wire.write(0b10000000);
  Wire.endTransmission(40);
  delayMicroseconds(500);
}

I2C协议清楚地工作,或者我不会得到确认的地址,我尝试了两个电位器,包括刮水器,写入,递增和递减。没有一次成功。如果有人知道我做错了什么,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

数据表的第49页详细介绍了一般的通话详情。

一般呼叫命令详见第48页。当您使用通用呼叫地址(0)同时与所有设备通信时,将使用这些命令。

您正尝试与总线上的单个设备进行通信,因此您应该注意从第51页开始详细说明的命令,特别是表7-1,7-2和图7-1。