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