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が点灯します。