M5Stack Core2 for AWSでは利用できるGPIOが少ないため、GPIOエキスパンダ「MCP23017」を接続して拡張します。アプリの開発はarduino IDEを使用します。
M5Stack Core2 for AWSとGPIOエキスパンダ「MCP23017」の接続
M5Stack Core2 for AWSとGPIOエキスパンダ「MCP23017」の結線を次に示します。「M5Stack Core2 for AWSでMH-Z19Cを使ってCO2の検出」にPort Aの信号名称を示します。
| M5Stack Core2 (Port A) | MCP23017 |
|---|---|
| 5V | VCC |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
GPIOエキスパンダ「MCP23017」で拡張されたGPIOのpin割り当てを次に示します。pin名称「GPA0」にLEDを接続します。
M5Stack Core2 for AWSとGPIOエキスパンダ「MCP23017」の接続画像を次に示します。
M5Stack Core2 for AWSとGPIOエキスパンダ「MCP23017」との接続を、「i2c_scanner_M5Core2.ino」を使って確認します。GPIOエキスパンダ「MCP23017」のアドレス は「0×20」でした。
GPIOエキスパンダ「MCP23017」のライブラリのインストール
「Raspberry Pi 3にGPIOエキスパンダ「MCP23017/PC8574」を接続」でRaspberry Pi 3にGPIOエキスパンダ「MCP23017/PC8574」を接続しました。今回は「adafruit/Adafruit-MCP23017-Arduino-Library」で提供されるライブラリを使用します。
「Adafruit-MCP23017-Arduino-Library」からzipファイル形式でダウンロードし、メニューから「スケッチ」→「ライブラリをインクルード」→「.zip形式のライブラリをインクルード」を開き、ダウンロードしたzipファイルを読み込みます。
GPIOエキスパンダアプリの作成
GPIOエキスパンダアプリ「MCP23017_Demo.ino」は、次のようにメニューから[ファイル | →「スケッチ例」→「Adafruit MCP23017-xxx」にある 「mcp23xxx_blink」をベースにします。
M5Stack Core2 for AWS上で動作させるために次のように変更します。
- 1行目で「M5Core2.h」をインクルードします。
- 11行目と12行目でM5Stack Core2 for AWSの設定とPort Aに対して、5vを供給します。
MCP23017_Demo.ino
#include <M5Core2.h>
#include <Adafruit_MCP23X08.h>
#include <Adafruit_MCP23X17.h>
#define LED_PIN 0 // MCP23XXX pin LED is attached to
// uncomment appropriate line
Adafruit_MCP23X17 mcp;
void setup() {
M5.begin(true, true, true, false);
M5.Axp.SetCHGCurrent(AXP192::kCHG_100mA);
// uncomment appropriate mcp.begin
if (!mcp.begin_I2C()) {
Serial.println("Error.");
while (1);
}
// configure pin for output
mcp.pinMode(LED_PIN, OUTPUT);
Serial.println("MCP23xxx Blink Test!");
Serial.println("Looping...");
}
void loop() {
mcp.digitalWrite(LED_PIN, HIGH);
delay(500);
mcp.digitalWrite(LED_PIN, LOW);
delay(500);
}
コンパイル時に次のエラーが発生しました。
C:\MyPathDocuments\Arduino\libraries\Adafruit_MCP23017_Arduino_Library\src\Adafruit_MCP23XXX.h:29:3: error: 'ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE' was not declared in this scopeライブラリ管理から、インストールされていた「Adafruit BusIO」をアップデートすると、コンパイルエラーがなくなりました。
GPIOエキスパンダアプリの実行
GPIOエキスパンダアプリ「MCP23017_Demo.ino」を実行すると、GPIOエキスパンダ「MCP23017」に接続したLEDが点滅します。



