ESP8266-Arduino编程实例-ADS1015(ADC)驱动

ADS1015(ADC)驱动

1、ADS1015介绍

ADS1015 是一款具有 12 位分辨率的精密模数转换器 (ADC),采用超小型无引线 QFN-10 封装或 MSOP-10 封装。 ADS1015 的设计考虑了精度、功率和易于实施。 ADS1015 具有板载基准和振荡器。 数据通过 I2C 兼容的串行接口传输; 可以选择四个 I2C 从地址。 ADS1015 采用 2.0V 至 5.5V 的单电源供电。

ADS1015-Q1 器件可以以高达每秒 3300 个样本 (SPS) 的速率执行转换。 板载 PGA 提供从电源到低至 ±256 mV 的输入范围,允许以高分辨率测量大信号和小信号。 ADS1015-Q1 器件还具有一个输入多路复用器 (MUX),可提供两个差分或四个单端输入。

ADS1015-Q1 器件在连续转换模式或单次模式下运行,转换后会自动断电并大大降低空闲期间的电流消耗。

在这里插入图片描述

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • ADS1015传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次实例使用L3GD20驱动库如下:

1)导入依赖库头文件

1
2
3
4
5
6
#include <Wire.h>
#include <Adafruit\_ADS1015.h>

// 创建ADS1015设备对象
Adafruit_ADS1015 ads;

2)设备初始化

1
2
3
4
5
6
7
8
9
void setup(void) 
{
// 串口初始化
Serial.begin(9600);
Serial.println("Getting single-ended readings from AIN0..3");
// 初始化ADS1015
ads.begin();
}

3)数据转换及采集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void loop(void) 
{
int16\_t adc0, adc1, adc2, adc3;
// 读取每个通道数据
adc0 = ads.readADC\_SingleEnded(0);
adc1 = ads.readADC\_SingleEnded(1);
adc2 = ads.readADC\_SingleEnded(2);
adc3 = ads.readADC\_SingleEnded(3);
Serial.print("AIN0: ");
Serial.println(adc0);
Serial.print("AIN1: ");
Serial.println(adc1);
Serial.print("AIN2: ");
Serial.println(adc2);
Serial.print("AIN3: ");
Serial.println(adc3);
Serial.println(" ");

delay(1000);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126220967