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.

[参考译文] ADS1115:差分模式、同时使用4个通道时的奇怪读数。

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

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/932767/ads1115-differential-mode-estrange-readings-when-using-the-4-channels-simultaneously

器件型号:ADS1115
主题中讨论的其他器件:ADS1015

大家好!!

我是¡¡论坛的新用户,希望能帮助我

我正在使用 Arduino Due、两  个 SCT-013 50A/1V 和 ADS1115在差分模式下、我在 A0/A1通道上连接第一个 SCT-013、在 A2/A3通道上连接第二个 SCT-013、我正在使用 AdafruIT_ADS1015库、  当 我在两个差分端口中的任何一个上测量一个电荷时没有任何问题、读数是可以 的、但是当我同时测量两个电荷时、我在两个差分端口上得到奇怪的读数、它似乎是通道之间的干扰或噪声输入。

如何解决此问题?

非常感谢您的参与。

大家好。

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

    曼努埃尔


    首先、您要测量什么、以及如何配置每个通道? 当您对每个通道进行测量时、如果您单独进行测量、您会得到什么值? 当您将所有测量值连接到同一系统时、您会得到什么值? 它有助于了解您获得的值、可以将它们与您期望的值进行比较。 此外、它可能有助于显示系统的原理图。

    可能会有一些不同的问题。 首先、ADC 只能测量 ADC 输入范围内的电压。 对于该器件、输入只能从 GND 到 VDD。 如果任何输入引脚电压超过这些电压、则输入多路复用器可能无法将通道输入和输出。 对于测量电压和 ADC、它们应该具有某种公共接地。  

    另一个问题是读取数据的方法。 如果器件处于连续转换模式、则器件会重复转换。 如果配置寄存器发生了变化、则直到正在进行的转换完成后才会发生变化。 这可能会导致您对所获得的数据和时间的混淆、因为如果您过早读取数据、您可能会从之前的通道中获取数据。

    在大多数情况下、我建议您使用单次转换模式。 使用新配置开始转换。 等待标称数据周期、对于内部时钟变化、请在10%处等待、然后为器件启动添加20us (对于128SPS 的器件、这将大约为861us)。 然后读取数据。 对所需的每个通道或配置重复上述步骤。

    无论如何、在我的帖子开始时、请仔细查看这些问题、我们可以在您返回时进行讨论、并提供答案。

    吴约瑟

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

    Joseph

     ´m 您的快速响应、我将尝试了解如何通过 Adafruit 库实现单次转换模式、这是我用于从 SCT-013 50A/1V 读取值的代码:

    #include

    #define ADS_ADD_0 (0x48)

    AdafruIT_ADS1115 ads0 (ads_add_0);

    void setup(){

    ads0.setGain(GAIN_TWO);//±2.048V 1位= 0.0625mV
    ads0.begin();

    float getCorriente (字节 bomba)

    long tiempo = 0;
    long rawAdc = 0;
    long minRaw = 0;
    长整型 maxRaw = 0;
    浮点 voltagePeak = 0;
    float voltageRMS = 0;
    浮点电流 RMS = 0;


    开关(Bomba){
    案例1:
    if (BomEnc1 = 1){
    Tiempo =毫秒();
    rawAdc = ads0.readadc_Different_0_1 ();
    minRaw = rawAdc;
    maxRaw = rawAdc;
    while (millis ()- tiempo < 2000)

    rawAdc = ads0.readadc_Different_0_1 ();
    maxRaw = maxRaw > rawAdc? maxRaw:rawAdc;
    minRaw = minRaw < rawAdc? minRaw:rawAdc;

    maxRaw = maxRaw >-minRaw? maxRaw:-minRaw;
    voltagePeak =(maxRaw *(FampB1))/ 1000;
    voltageRMS = voltagePeak * 0.70710678118;
    currentRMS = voltageRMS * 50;
    currentRMS = currentRMS / 10000;
    serial.print ("medida currentRMS b1:");
    serial.println (currentRMS);
    返回(电流 RMS);

    其他退货(0.00);
    中断;

    案例2:
    if (BomEnc2 = 1){
    Tiempo =毫秒();
    rawAdc = ads0.readadc_Different_2_3 ();
    minRaw = rawAdc;
    maxRaw = rawAdc;
    while (millis ()- tiempo < 2000)

    rawAdc = ads0.readadc_Different_2_3 ();
    maxRaw = maxRaw > rawAdc? maxRaw:rawAdc;
    minRaw = minRaw < rawAdc? minRaw:rawAdc;

    maxRaw = maxRaw >-minRaw? maxRaw:-minRaw;
    voltagePeak =(maxRaw *(FampB2))/ 1000;
    voltageRMS = voltagePeak * 0.70710678118;
    currentRMS = voltageRMS * 50;
    currentRMS = currentRMS / 10000;
    serial.print ("medida currentRMS B2:");
    serial.println (currentRMS);
    返回(电流 RMS);

    其他退货(0.00);
    中断;


    我将尝试实现 单次转换模式、看看这是否能解决问题、我将在执行此操作时与您联系。

    非常感谢您的帮助¡

    Manuel

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

    Joseph

     这是原理图,第一个 SCT013连接到 A0 - A1,第二个连接在 A2 - A3上:

    SEN-SCT013 SENSOR DE CORRIENTE NO INVASIVO MAXIMO 100Amp SALIDA ...

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

    曼努埃尔


    您上一篇帖子中的一幅图片未能通过。 在您的下一个回复中、您为什么不添加它。 同时、我认为我对您的系统测量有一个基本的了解。

    我认为问题是您的测量没有定义的共模输入。 正如我在上一篇文章中提到的、输入(AINP 和 AINN)的绝对值必须在 GND 至 VDD 范围内、才能由 ADC 精确测量。 Howeveer、在您的设置中、变压器的输出没有公共电压来确保输入处于该范围内。 它们可能会在 GND 外部浮动至 VDD、因此无法准确测量。

    为了确保输入处于 ADC 的范围内、您需要进行如下设置:

    在这里、变压器输出的中点将连接到2.5V、这是 ADC 电源的中点(以及 ADC 输入范围的中点)。 GND 连接将与 ADC 接地相同。 这将确保输入处于测量的输入范围内。

    对于您的设置、如果您的输出没有此类设置的中心抽头、则可能无法轻松完成。 如果您只能将输出限制为正输出、则可以将负输入接地。 这至少是对输入的良好测试。

    如果您无法将输入限制为仅正输入、则可能需要某种 FDA 来确保输入范围。


    吴约瑟

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

    Joseph

    以下是遗漏的图像:

    Sensor De Corriente Alterna 50A Transformador - SCT-013-050 ...

    该器件 没有中心抽头、如何将输入限制为仅为正?

    感谢您的帮助¡

    大家好

    Manuel

     

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

    最后一幅图像

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

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

    n´t 不能上传最后一张图片,不知道为什么…

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

    曼努埃尔

    将图像插入帖子时、无法使用复制/粘贴(ctrl-c/ctrl-v)。 您需要使用图片图标(即"插入/编辑媒体")。

    吴约瑟

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

    曼努埃尔

    我已经听过你一段时间了。 您是否能够解决您的测量问题。 在我之前的文章中、我曾提到过、我认为问题是确保您的传感器输入处于 ADC 的共模输入范围内。

    我现在要关闭这个线程、但如果您仍然遇到问题。 返回后、我们可以继续处理此问题。

    吴约瑟