This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CAN#39;t 从 ADS1115获取有效数据。

Guru**** 2535750 points
Other Parts Discussed in Thread: ADS1015, ADS1115

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/787360/can-t-get-a-valid-data-from-ads1115

主题中讨论的其他器件:ADS1115ADS1015

嗨、大家好、

 ADS1115 连接到 Arduino UNO 板时出现问题。
我遵循  https://learn.adafruit.com/adafruit-4-channel-adc-breakouts/assembly-and-wiring 上的"组装和布线"


我从 Arduino 读取电压、但始终获得"-1"输出。

1
2.
3.
4.
5.
6.
7.
8.
9.
AIN0: -1
 
AIN0: -1
 
AIN0: -1
 
AIN0: -1
 
AIN0: -1

我在几个论坛上搜索过、但我想不知道会发生什么?
我已经测试了4个不同 的 ADS1115 、它们也为我提供了"-1"值。

代码如下 所示。
  https://github.com/adafruit/Adafruit_ADS1X15上 Adafruit 的 Arduino ADS1115库

1
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18
19.
20.
21.
22.
23
24
25
#include <Wire.h>
#include <Adafruit_ADS1015.h>
 
Adafruit_ADS1115 ads;
 
voidsetup(void)
{
  Serial.begin(9600);
  Serial.println("Hello!");
  
  Serial.println("Getting single-ended readings from AIN0..3");
  Serial.println("ADC Range: +/- 6.144V ((1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)")");
  ads.begin();
}
 
voidloop(void)
{
  int16_t adc0;
 
  adc0 = ads.readADC_SingleEnded(0);
  Serial.print("AIN0: ");
  Serial.println(adc0);
  Serial.println(" ");
  
  delay(1000);
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!


    我并不完全确定问题是什么、但我怀疑器件的读数存在问题。 如果器件不了解正确的 I2C 地址、则器件可能无法确认命令。 如果您正在读取数据、但器件未响应、则可能会得到全为1。

    首先、我将检查 ADDR 引脚的设置、并将其与数据表第23页的表4中给出的设置进行比较。 然后、我将使用示波器或逻辑分析仪来查看 I2C 通信。

    在数据回读中、获取通信的范围截屏并将其发布回此处。 它应该与数据表第24页的图30类似。 具体而言、您希望看到器件在每个字节后确认通信。

    您还可以通过读回配置寄存器来检查此通信、我还可以检查您尝试写入和读取的寄存器值。 不过、请使用示波器检查通信、并将其与数据表中的图30和31进行比较、以查看器件是否响应。


    吴约瑟