ADS1256という24bitのADコンバータを使ってデータを取る、ということをしました。
Arduinoは8bitマイコンなので、今回は32bitマイコンのESP32を使いました。
ADS1256の詳細はこちら。
使用したボードはこちら。
出ているピンは分かりやすく表示してくれています。
このボードとEPS32の接続は下記のようにしました。
動かしてから気づいたのですが、ESP32の5V端子からADS1256の電源を取るとエラーが出たので、別電源から取るようにしています。
使用したライブラリはこちら。
サンプルプログラムはとてもシンプルで使いやすいです。
1点修正するとすれば、ADS1256.hのadcValues[8]がunsigned longで定義されているのですが、これだとマイナスの値が入ったときにオーバーフローしてしまっていたのでlongに変更しました。
PGA(プログラマブルゲインアンプ)の変更が必要な場合は、ADS1256.cppのadcon_dataを変更します。
今まではアンプ+ADコンバータ(12bit)という組み合わせで使っていたものを、24bitのADコンバータ1つに置き換えることで、細かい変化が捉えられるようになって回路もシンプルになり使いやすくなる場合もあります。
PGAは倍率を上げると測定レンジが狭くなるので注意が必要ですが、状況によってはとても便利な機能です。