1. はじめに
Arduinoのアナログピンでセンサ値を扱えるように0-5[V]の範囲に変換する方法をまとめました.
想定しているのはロードセルのアナログ値を扱う場合とかです.
ロードセル値をアンプを通すと引張圧縮で正負の電圧が出力されると思います.
例えば,アイコー社のフォースゲージだと±2 Vのアナログ出力に対応します.
2~3 V足してあげればいい感じになるのになぁという方向けです.
XH711のようなアンプモジュールでGPIO通信したり,その他のセンサでI2C通信したりして回避する方法もあります.
今回は,オペアンプLM358を用いた非反転の加算回路を説明します.
具体的なシチュエーションとしては,±200 Nレンジでアナログ出力±2 VのフォースゲージRZ-20をArduinoのアナログピンに接続できるようにします.
N倍する増幅回路や論理値変換(3.3V->5V)については後ほど.
一般的なアンプだと±5とか±10[V]出力の場合が多いので1/N倍に増幅してから+M [V]シフトを自在に扱えたら便利ですね.
2. オペアンプについて
オペアンプの概念については色々なサイトで解説されているのでパス.
端的に言うと以下の通り
- 電圧をN倍の掛算や±N加減算して増幅.
- オペアンプの電源電圧に接続した電圧まで増幅可能.
- 安価品や高精度/高速度品がある.
3. 電子回路
実際の基板実装の写真やらネットに出回っていないんですよね...
こんな風に組めばOKです。
抵抗値は,電圧の倍率を変えないのであれば全部10 kΩにしておけば問題ないでしょう.
ちなみに,増幅する電圧2.5 Vは直流安定化電源,スイッチング電源,3端子レギュレータを使う手があります.
これ便利そう↓
4. 結果
MicroLabBox(dSPACE)で増幅前後の電圧は以下の通り.
無事2.5 V基準に増幅できています.
5. おわりに
高精度品のオペアンプや高精度抵抗を使った場合の誤差についてまとめてみたいところ.
直流安定化電源をセンサ出力回路に対して直列に挟んでシフトする方法を見かけ...なんだかなぁと思った今日この頃。
参考文献
[1] NOBのArduino日記!, "オペアンプを使った演算回路(加算回路)",
[2] Analogista, "オペアンプを使った加算回路の使用例と動作原理",
[3] Electrical Information, "『加算回路』を分かりやすく解説!【オペアンプ】",
[4] きむ茶工房ガレージハウス, "マイコン回路での入力信号増幅をオペアンプで行う方法",
[5] Maicommon.ciao.jp, "演算回路の応用",