概要
日本未発売?シリーズです。8ポートのI/O拡張ユニットです。I2C接続でINPUTもしくはOUTPUTの指定が可能です。
いまは在庫切れでして、このままEOLになる可能性?もあります、、、
※(追記)日本でも発売されました!
- M5Stack用 I/O拡張ユニット (PCA9554)(スイッチサイエンス)
PCA9554PW
内部で利用されているチップです。
おそらく上記がデータシートです。ちょっとマイナーなチップでしてArduinoで標準的なライブラリがありません。
商品

コネクタが赤なのでI2Cですね。そしてEXT.IOと名前のブレがあるのがM5Stackの特徴です。

裏側にピンの配置が書いてあります。こっちはEXTEND I/Oになっていますね。

ピンは一般的なヘッダピンでした。
スケッチ例
#include <TCA9534.h> // http://librarymanager/All#TCA9534 https://github.com/hideakitai/TCA9534
TCA9534 ioex;
const uint8_t IOEX_ADDR = 0x27;
void setup()
{
Serial.begin(115200);
delay(2000);
Wire.begin(32, 33);
ioex.attach(Wire);
ioex.setDeviceAddress(IOEX_ADDR);
ioex.config(TCA9534::Config::IN);
//ioex.polarity(TCA9534::Polarity::INVERSE);
Serial.print("config : ");
Serial.println(ioex.config(), HEX);
Serial.print("polarity: ");
Serial.println(ioex.polarity(), HEX);
}
void loop()
{
for (int i = 0; i < 8; i++) {
uint8_t raw = ioex.input(i);
Serial.print(raw != 0);
}
Serial.println();
delay(1000);
}
PCA9554PWのライブラリはありませんので、互換性がありそうなライブラリを探したところ、TCA9534が使えそうでした。
ピンごとにINPUTかOUTPUTを設定して、状態の設定と取得が可能です。使い方はシンプルですね。
まとめ
個人的には近い内にEOLになるのではと思っています。同じようなユニットとしてPbHubがあるので、あちらの方がGroveコネクタになっているので使いやすいとは思います。


コメント