我已经将MCP3221连接到I2C总线上的Teensy 3.1并将其连接到Vref(3.3V),以检查它是否正常工作。然而它的读数为0,即使我把它连接到不同的电压。我的代码有问题还是我应该买一台新设备?
#include <MCP3221.h>
#include <Wire.h>
#include "SoftwareSerial.h"
#define ADDRESS 0x4D // 7 bits address is 0x4D, 8 bits is 0x9B
MCP3221 adc(155,0x3);
void setup() {
Serial.begin(9600);
Serial.println("First");
Wire.begin(); //connects I2C
}
void loop() {
Serial.println(adc.readI2CADC());
delay(10);
}
答案 0 :(得分:1)
第20页的Microchip数据表DS21732C中提供了设备地址列表。 取决于芯片上的标记代码。
答案 1 :(得分:0)
您没有使用正确的地址。你声明常量但从不使用它。 adc
声明应该是这样的
MCP3221 adc(ADDRESS, 0x3);
为什么呢?做了一点搜索,我发现不是8位地址(十进制155或十六进制0x9B),在这种情况下你是have to use 7 bits address,0x4D。您也可以在this example中看到这一点。我想你应该在Arduino IDE中有这个例子,在File&gt;例子&gt; MCP3221。
看一下这个例子,你传递给adc
的第二个参数似乎也是错误的,但我对此并不确定。如果你看到你总是测量相同值,那么尝试更大的价值。