I2C MCP3221 12位ADC在任何电压下读数为0

时间:2015-08-26 18:02:24

标签: arduino i2c adc teensy

我已经将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);

}

2 个答案:

答案 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的第二个参数似乎也是错误的,但我对此并不确定。如果你看到你总是测量相同值,那么尝试更大的价值。