m5Atom matrixでExt.IO2を使う情報があまりなかったので備忘録
M5_EXTIO2ライブラリに含まれる関数の一覧と説明(リファレンス作りました)
M5_EXTIO2
- begin(TwoWire wire, uint8_t sda, uint8_t scl, uint8_t addr)
- 概要: I2C通信を初期化し、デバイスに接続を試みます。
- 引数:
wire
: 使用するI2Cインスタンス(デフォルトはWire
)。sda
: SDAピン。scl
: SCLピン。addr
: デバイスアドレス(デフォルトは0x45
)。
- 戻り値: 初期化が成功した場合は
true
、失敗した場合はfalse
。
- setAllPinMode(extio_io_mode_t mode)
- 概要: 全ピンのモードを設定します。
- 引数:
mode
: 設定するモード(例:DIGITAL_INPUT_MODE
)
・ DIGITAL_INPUT_MODE
・ DIGITAL_OUTPUT_MODE
・ ADC_INPUT_MODE
・ SERVO_CTL_MODE
・ RGB_LED_MODE- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- setPinMode(uint8_t pin, extio_io_mode_t mode)
- 概要: 指定したピンのモードを設定します。
- 引数:
pin
: 設定するピン番号(0~7)。mode
: 設定するモード。
- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- setDeviceAddr(uint8_t addr)
- 概要: デバイスアドレスを変更します。
- 引数:
addr
: 新しいデバイスアドレス。
- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- setServoAngle(uint8_t pin, uint8_t angle)
- 概要: 指定したピンのサーボ角度を設定します。
- 引数:
pin
: 設定するピン番号。angle
: 設定する角度(0~180)。
- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- setServoPulse(uint8_t pin, uint16_t pulse)
- 概要: サーボのパルス幅を設定します。
- 引数:
pin
: 設定するピン番号。pulse
: パルス幅(単位: µs)。
- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- setLEDColor(uint8_t pin, uint32_t color)
- 概要: 指定したピンのLEDカラーを設定します。
- 引数:
pin
: 設定するピン番号。color
: RGB値(24ビット整数)。
- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- setDigitalOutput(uint8_t pin, uint8_t state)
- 概要: 指定したピンのデジタル出力を設定します。
- 引数:
pin
: 設定するピン番号。state
: 出力状態(0または1)。
- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- setAllDigitalOutputs(uint8_t pins)
- 概要: 全デジタル出力を一括設定します。
- 引数:
pins
: 出力状態を示す8ビット値。
- 戻り値: 設定が成功した場合は
true
、失敗した場合はfalse
。
- getDigitalInput(uint8_t pin)
- 概要: 指定したピンのデジタル入力を取得します。
- 引数:
pin
: 読み取るピン番号。
- 戻り値: 入力がHIGHの場合は
true
、LOWまたは失敗時はfalse
。
- getAllDigitalInputs()
- 概要: 全デジタル入力の状態を一括取得します。
- 戻り値: 各ビットがピン状態を表す8ビット値(失敗時は0)。
- getAnalogInput(uint8_t pin, extio_anolog_read_mode_t bit = _8bit)
- 概要: 指定したピンのアナログ入力値を取得します。
- 引数:
pin
: 読み取るピン番号。bit
: 解像度(_8bit
または_12bit
)。
- 戻り値: 読み取ったアナログ値(失敗時は0)。
- getVersion()
- 概要: ファームウェアバージョンを取得します。
- 戻り値: バージョン番号(8ビット値)。
使い方の例
1. I2C通信の初期化
M5_EXTIO2 extio2;
if (extio2.begin(&Wire, 21, 22)) {
Serial.println("EXTIO2 Initialized");
} else {
Serial.println("EXTIO2 Initialization Failed");
}
2. ピンモードの設定
・全ピンを入力モードに設定する:
extio2.setAllPinMode(DIGITAL_INPUT_MODE);
・ピン2を出力モードに設定する:
extio2.setPinMode(2, DIGITAL_OUTPUT_MODE);
3. デジタル出力
・ピン3をHIGHに設定:
extio2.setDigitalOutput(3, 1);
・全ピンを一括設定:
extio2.setAllDigitalOutputs(0b10101010);
4. アナログ入力の読み取り
uint16_t analogValue = extio2.getAnalogInput(0, _12bit);
Serial.println(analogValue);
m5Atom matrixの場合、通常のi2C(Wire: SDA=21, SCL=25)がすでにDisplay用で使われているので、
もう一つのi2C(Wire1: SDA=26, SCL=32)を使います。
これを使って前回のコードを直していきます(この件だいぶ悩みました…💦)