0

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

}
4

2 回答 2

1

在第 20 页的 Microchip 数据手册 DS21732C 中有器件地址列表。取决于芯片上的标记代码。

于 2019-01-05T10:26:45.483 回答
0

您没有使用正确的地址。您声明常量但从不使用它。adc声明应该是这样的

MCP3221 adc(ADDRESS, 0x3);

为什么?做了一点搜索,我发现不是 8 位地址(十进制的 155 或十六进制的 0x9B),您必须使用 7 位地址,在这种情况下为 0x4D。您也可以在此示例中看到这一点。我认为您应该在 Arduino IDE 中的文件 > 示例 > MCP3221 中有这个示例。

查看示例,您传递给 can 的第二个参数似乎adc也是错误的,但我不确定这一点。如果您发现您总是测量相同的值,请尝试更大的值。

于 2015-08-27T19:59:57.373 回答