ele-diary 趣味の電子工作ブログ

電子工作関係の記録です。

加速度センサモジュールMMA8451 をESP32につなぐ

f:id:pau2000:20171104155339j:plain

MMA8451モジュールは、githubにライブラリがあるので簡単に使えます。GitHub - adafruit/Adafruit_MMA8451_Library: Arduino library for the MMA8451 Accelerometer sensors in the Adafruit shop

D1miniでは問題なく動作しました。

しかし、SoftwareSerialと併用すると問題が発生。 正常にコンパイル完了しますが、書き込んで動作させるとうまく動きません。I2Cとして未接続となります。

ハッキリとしたメッセージが出ないので推測ですが、SoftwareSerialで使っている何かのリソースが競合しているように思います。

そこで、マイコンを一回り大きいESP32で試してみることにします。ところが、これもすんなりとはいきませんでした。

ESP32では、I2Cのピンを自由に選択することができます。

int SDA = 25;
int SCL = 26;
Wire.begin(SDA, SCL);

というようにbegin の引数にSDA,SCLのピン番号を入れます。

ESP32を考慮されていないMMA8451ライブラリにこの設定を加えてあげる必要があります。

ということで、

bool Adafruit_MMA8451::begin(uint8_t i2caddr) {
  //Wire.begin();
  Wire.begin( 17, 16);
  _i2caddr = i2caddr;

とすることで、正しくコンパイルできて実行もできるようになります。