我正在使用两个MCP4651双数字电位器,我想通过I2C从Arduino Uno控制。这是MCP4651的数据表,因此您无需查找:http://www.farnell.com/datasheets/1789212.pdf
我也会附上PCB原理图,但我没有足够的声誉。
我正在尝试将我的值写入雨刮器1寄存器,如数据表第49页所示。但是我尝试的每一个命令都得不到承认。我还附上了示波器的截图。
这是我的代码:
#include <Wire.h>
void setup()
{
Wire.begin();
}
void loop()
{
Wire.beginTransmission(40);
Wire.write(0b10010000);
Wire.write(0b10000000);
Wire.endTransmission(40);
delayMicroseconds(500);
}
I2C协议清楚地工作,或者我不会得到确认的地址,我尝试了两个电位器,包括刮水器,写入,递增和递减。没有一次成功。如果有人知道我做错了什么,我将不胜感激。
答案 0 :(得分:0)
数据表的第49页详细介绍了一般的通话详情。
一般呼叫命令详见第48页。当您使用通用呼叫地址(0)同时与所有设备通信时,将使用这些命令。
您正尝试与总线上的单个设备进行通信,因此您应该注意从第51页开始详细说明的命令,特别是表7-1,7-2和图7-1。