Arduino UNO驱动ADS1115模数转换模块

0 阅读2分钟

简介

ADS1115可对模拟量信号转换成16位的二进制数字信号,具有内部低温漂电压基准、振荡器和可编程比较器且兼容 I2C接口(4个可编程地址引脚),可编程数据采样率8-860sps,连续转换模式下150uA的低流耗。具有 一个输入多路复用器 (MUX),可实现两次差动输入测量或四次单端输入测量。内部PGA 可提供从 ±256mV 到±6.144V 的输入范围。 A1.png

在这里插入图片描述

ADS1115模块原理图

A3.jpg

A4.jpeg

Arduino UNO与ADS1115接线图

A5.png

A6.png

A0、A1采集Arduino UNO板上的5V输出引脚、A2、A3采集Arduino UNO板上的3.3V输出引脚

Arduino UNO测试代码

例程下载链接:github.com/DFRobot/DFR… 打开如下四端模拟输入检测转换例程,下载至Arduino UNO开发板里

/*
 * file ADS1115_ReadVoltage.ino
 *
 * @ https://github.com/DFRobot/DFRobot_ADS1115
 *
 * connect ADS1115 I2C interface with your board (please reference board compatibility)
 *
 * The voltage value read by A0 A1 A2 A3 is printed through the serial port.
 *
 * Copyright   [DFRobot](http://www.dfrobot.com), 2016
 * Copyright   GNU Lesser General Public License
 *
 * version  V1.0
 * date  2018-01-21
 */

#include < Wire.h >
#include < DFRobot_ADS1115.h >

DFRobot_ADS1115 ads(&Wire);

void setup(void) 
{
    Serial.begin(115200);
    ads.setAddr_ADS1115(ADS1115_IIC_ADDRESS0);   // 0x49
    ads.setGain(eGAIN_TWOTHIRDS);   // 2/3x gain
    ads.setMode(eMODE_SINGLE);       // single-shot mode
    ads.setRate(eRATE_128);          // 128SPS (default)
    ads.setOSMode(eOSMODE_SINGLE);   // Set to start a single-conversion
    ads.init();
}

void loop(void) 
{
    if (ads.checkADS1115())
    {
        int16_t adc0, adc1, adc2, adc3;
        adc0 = ads.readVoltage(0);
        Serial.print("A0:");
        Serial.print(adc0);
        Serial.print("mV,  ");
        adc1 = ads.readVoltage(1);
        Serial.print("A1:");
        Serial.print(adc1);
        Serial.print("mV,  ");
        adc2 = ads.readVoltage(2);
        Serial.print("A2:");
        Serial.print(adc2);
        Serial.print("mV,  ");
        adc3 = ads.readVoltage(3);
        Serial.print("A3:");
        Serial.print(adc3);
        Serial.println("mV");
    }
    else
    {
        Serial.println("ADS1115 Disconnected!");
    }

    delay(1000);
}

A7.png

总结

ADS1115不仅可以实现四端模拟信号电压采样输入,还能实现A0(P)\A1(N),A2(P)\A3(N)两对差分输入信号电压采集,内部阀值电压设置和外部采集信号电压采样比较后中断信号输出。