Arduino nanoを使ってAD変換器「ADS1015」から電圧を入力し、GPIOエキスパンダ「MCP23017」に接続したLEDを点灯します。「Raspberry Pi 3にAD変換器「ADS1015」とDA変換器「MCP4725」を接続」でRaspberry Pi 3によりAD変換器「ADS1015」を使用しました。「Raspberry Pi 3にGPIOエキスパンダ「MCP23017/PC8574」を接続」でRaspberry Pi 3によりGPIOエキスパンダ「MCP23017」を使用しました。

Arduino nanoでAD変換器「ADS1015」とGPIOエキスパンダ「MCP23017」の接続

Arduino nanoとESP8266間の接続ピンを次に示します。

nano  ADS1015 MCP23017
A5 SCL SCL
A4 SDA SDA
GND G GND
5V V VCC
  • ADS1015 A0 ← 2.5V
  • MCP23017 A0 ← 緑LED
  • MCP23017 B0 ← 赤LED

Arduino nanoとAD変換器「ADS1015」/GPIOエキスパンダ「MCP23017」の接続画像を次に示します。

AD変換器「ADS1015」のプログラム作成

次の手順でAD変換器「ADS1015」のライブラリをインストールします。

  1. Adafruit_ADS1015」からzipファイルをダウンロードします。
  2. Arduino IDE を開いて、メニューバーの「スケッチ」→「ライブラリをインクルード」→「ZIP形式のライブラリをインストール」をクリックして、ダウンロードしたライブラリをインストールします。

プログラムは次のスケッチ例「singleended.ino」を使用します。

AD変換器「ADS1015」のプログラム実行

AD変換器「ADS1015」のプログラム「singleended.ino」を実行すると、シリアルモニタに次のメッセージが表示されます。

Getting single-ended readings from AIN0..3
ADC Range: +/- 6.144V (1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)
AIN0: 768
AIN1: 192
AIN2: 195
AIN3: 204
 
AIN0: 768
AIN1: 201
AIN2: 199
AIN3: 194
 
AIN0: 768
AIN1: 189
AIN2: 192
AIN3: 199

GPIOエキスパンダ「MCP23017」のプログラム作成

GPIOエキスパンダ「MCP23017」のプログラムを次に示します。

MCP23017.ino

#include "Wire.h"
 
void setup() {
  Wire.begin();
  Wire.beginTransmission(0x20);     // MCP23017 Address
  Wire.write(0x00);                 // IODIRA register
  Wire.write(0x00);                 // set all port A to output
  Wire.endTransmission();
 
  Wire.beginTransmission(0x20);     // MCP23017 Address
  Wire.write(0x01);                 // IODIRB register
  Wire.write(0x00);                 // set all port B to output
  Wire.endTransmission();
}

void loop() {
  // green LED ON
  Wire.beginTransmission(0x20);
  Wire.write(0x12);                 // address bank A
  Wire.write(0x7f);

  // red LED ON
  Wire.write(0x13);                 // address bank B
  Wire.write(0x7f);
  Wire.endTransmission();
}

GPIOエキスパンダ「MCP23017」のプログラム実行

作成したGPIOエキスパンダ「MCP23017」のプログラム「MCP23017.ino」を実行すると、緑LEDと赤LEDが点灯します。