ESP32とADS1115で電圧計測

2022年3月25日ESP32,ガジェット,電子工作ADS1115,ESP32,ESP32-WROOM-32,アナログ入力

ソーラー蓄電システムでバッテリー電圧を計測したく、ESP32の標準ADCを使用するも変動が大きい為、専用のADCモジュール(ADS1115)を購入しました。

ADS1115とは

ADS1115はI2C通信でA0~A3の4つのアナログ入力ができるモジュールで、今回使用するライブラリではデフォルトでは±6.144Vの入力範囲で値としては-32768~+32768を計測します。

使用するもの・環境

ライブラリをインストール

Arduino IDEから「ツール」→「ライブラリを管理」→「ads」で検索し「Adafruit ADS1X15」をインストール。

ADS1115モジュールとの接続

ESP32ADS1115
5VVDD
GNDGND
GPIO22SCL
GPIO21SDA
GNDADDR
ALRT(未接続)

ESP32でADS1115を使用するサンプルプログラム

アナログ入力A0~A3までの入力値をシリアルに出力するコードです。

#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads;

void setup(void) 
{
  Serial.begin(9600);
  ads.begin();
}

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);
}