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」のライブラリをインストールします。
- 「Adafruit_ADS1015」からzipファイルをダウンロードします。
- 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が点灯します。

