1台のArduino Nano に複数の VL53L0X をつなぐ。
とりあえず2台。
モジュールにデバイス・アドレスを変更するようなピンが見当たらないのと、斜めに読んだデータシートに決め打ちでアドレスが書いてあったのとで、アドレスが変更できないと思い込んだ。
どうすんのさ、NANOにはI2Cは1組しかないからソフトウェアで実装するか?
そうなると既存ライブラリは使えないのか?
ってな具合に、勝手にどんどん脳内深みにはまっていった。
実際は、起動時のアドレスは固定だけど、起動後に変更できる。
なので、別のアドレスを指定して、同じI2C用のピンに接続した複数のセンサー・モジュールからデータを読み取ることが可能だ。
ライブラリはここ
https://github.com/pololu/vl53l0x-arduino
参考になるスケッチはここ
https://github.com/pololu/vl53l0x-arduino/issues/1#issuecomment-245160851
試用記事
「Arduino Nano + VL53L0X」
追記
VL53L0XはXSHUT=Highで起動、Lowで休止なので、1つだけ起動しておいて異なるAddressを設定する。
ピンのモードをINPUTにする意味が分からなかったが、センサーICは3.3V駆動なので、基板上のプルアップを利用してHighにし、Arduinoの電源電圧を掛けないようにするためらしい。
平気でHighにしたりしてたけど壊れなかったかな?
追記(2020/02/13)
スケッチは保存してあるから、人間が何してるコードか忘れててもNanoは書き込めば律義に動作を再現してくれる。
だが、配線は人がやらないといけなくて、案の定忘れてる。
2つとも以下の接続は共通。
VCC – 5V
GND – GND
SCL – A5
SDA – A4
GPIO1 – NC
XSHUTはそれぞれD4, D5に接続する。
このピンでアドレス設定時にどちらを対象にするかを決める。