ESP32 (ESP-WROOM-32)でi2C通信
2017/03/12追記:実際に使ってみました
先日、Arduinoの環境で開発できるということで、ESP32を購入しました。
私はATmega328(Arduino UNO)ではi2Cを頻繁に使用していたので、早速購入したESP32でもi2Cを使ってみました。
しかし、躓いた点があったので報告します。
Arduinoでi2C通信する際に欠かせないWireライブラリですが、最初に
Wire.begin();
を実行しますよね。
ATmegaではi2Cで使うSCL, SDAピンは固定されていますが、ESP32では対応している複数のピンの中から2つを選んで使うことができます。そのため、まず最初に使用するピンを指定しなければなりませんでした。
ESP32でWireライブラリを使う場合、SCL, SDAピンの指定は
int SDA = 25; int SCL = 26; Wire.begin(SDA, SCL);
のように、beginの引数にSDA、SCLの順にピンの番号を入れることで出来ます。
i2Cで使えるセンサーを使う時、データシートをみながらプログラムをコツコツ書かずに、誰かが作ったライブラリを用いることがあると思います。その場合にも、ライブラリ内のbegin()の部分を書き換える必要がありそうです。
以上!