私がこの夏に取り組んでいるのは、「何らかのセンサを用いた在庫管理システムを開発する」という課題です。
今上り調子のSONASにとって、増加の一途をたどる在庫をスマートに管理することは、急務のようですね。
在庫数をデータに変換する手段として、一番に思いつくのは 圧力センサ ですよね。重さを測って在庫数を管理できないか、これから検証していきます。
さて、圧力センサにもいくつか種類があるようで、今回選択したのは下の棒のようなセンサ。別名ロードセル。どうやら体重計やキッチン量りなどによく用いられているようです。この原理についてはまた別記事で触れようと思います。
写真にあるようにこのセンサの定格負荷は5kgで信頼度は±0.02%F.S.だそうなので、誤差はフルスケールの0.02%なのでなんと±1g、、だそうです。
早速これをArduinoに繋ぎたいのですが、ロードセルが出せる電圧は0.1~0.5mV程度で、Arduinoで直接読むことはできません。そこで市販のロードセル専用ADコンバータを用いてこの電圧を拡大します。もちろんオペアンプ等で自分で増幅回路を組んでも良いです。
ADコンバータはHX711が搭載されているものならなんでも動きますが、種類によってサンプリング周期が違うようです。
さて接続です。ロードセルからは赤黒白緑の線が出ており、
まずはロードセル⇆コンバータ間
- 赤:E+
- 黒:E-
- 白:A-
- 緑:A+
に接続します。赤黒はもちろん、白と緑を間違えても動作しません。(変ですね)
次にコンバータ⇆Arduino間
- GND:GND
- DT:DIGITAL PIN 8
- SCK:DIGITAL PIN 9
- VCC: 5V
次はArduinoのスケッチです。ADコンバータを用いているのでデジタル入力を受け取る必要があります。少し難しいので、秋月電子通商さんが公開しているサンプルコードを使います。
ピン設定は調整しているので、そのままで構いません。変更点はロードセルの定格出力と定格容量です。今回は定格容量5kg、定格出力1±0.1mV/Vなので#define OUT_VOL 0.001f //定格出力 [V]
#define LOAD 5000.0f //定格容量 [g]
と変更します。
ここまでで問題がなければ、シリアルモニタに重さと16進数の信号が表示されます。私はこれを達成するのに丸2日かかりました(T . T)
ともあれ、ようやく重さを測定することができました。
次回はこのセンサの信頼性を測っていこうと思います。