Arduino MKR が SPI で MEMSセンサーを認識したので、M5Stack Tough でも確認。
結果、SPI なら認識できました。が、M-BUSに指したジャンプワイヤーのプラスチック部分がBOX内に収まらず OUT。
I2C は GROVE 用のポートを使用。センサーが 3.3V 稼働のため、GROVE 端子の 5V 出力を 3.3V に変換する変換モジュールを用意していたのですが、これを通すと認識しませんでした。残念。
https://www.switch-science.com/products/8434?_pos=13&_sid=40f4ba8d7&_ss=r
で、電源だけ M-BUS から取りました。I2Cスキャンの公開コードを利用した結果はコチラ。
19:46:01.869 -> Scanning...
19:46:09.900 -> I2C device found at address 0x0D !
19:46:10.918 -> I2C device found at address 0x10 !
19:46:30.074 -> I2C device found at address 0x3D !
19:46:49.290 -> I2C device found at address 0x6B !
19:46:56.375 -> I2C device found at address 0x7D !
19:46:56.375 -> I2C device found at address 0x7E !
19:46:56.375 -> done
19:46:56.375 ->
19:47:01.390 -> Scanning...
19:47:06.403 -> I2C device found at address 0x0A !
19:47:10.479 -> I2C device found at address 0x16 !
19:47:12.500 -> I2C device found at address 0x1B !
19:47:13.489 -> I2C device found at address 0x1F !
なぜ変わるのでしょう?当然、コード内で指定したら値が取れません。SGP30 の TVOC/eCO2 ガスセンサユニット(5V)なら安定し、1つの値を示すだけなのですが。
I2C は難しいのでひとまず寝かします。
ワイヤーを探せば SPI で運用できそうです。何かないか探してみましょう。
****************************
20230207追記、写真追加
SPI のピン指定は、GPIO の番号で通りました。
CS ピンは3がダメ、13でOKでした。Core2 の記事で 3はUSBとの通信に使われると書いてあるものを見かけましたので、Tough もそのようになっているのでしょうね。
20231230 試作品をGitHubに公開
https://github.com/T40O0/ADXL355_SPI_M5_SD_FIR.git
0 件のコメント:
コメントを投稿