重さを測る(キッチンスケール使用)
解説
ひずみゲージを使用すると、重さを測ることができます。
ひずみゲージが貼られた金属棒に荷重がかかり、ひずみが発生すると、発生したひずみに対応してひずみゲージの電気抵抗が変化します。この電気抵抗の変化を計測することで、重さを測ります。電気抵抗の変化は微小であるため、ブリッジ回路が使用されます。出力電圧を測定し、重さに変換します。
キッチンスケールに使われているひずみゲージを使用して重さを測ります。
基盤に接続されたコードを切断します。
取り回しが楽になるように、コードを継ぎ足して延長します。
荷重に対する出力電圧を測定します。
・黒色のコードをArduinoのGNDピンに接続
・赤色のコードをArduinoの5V出力ピンに接続
・白色のコードをテスターのマイナス測定端子に接続
・緑色のコードをテスターのプラス測定端子に接続
ペットボトル(1本552.0[g])をキッチンスケールに乗せた際の出力電圧を、テスターを用いて測定したところ、以下の結果となりました。
ペットボトル [本数] |
荷重 [g] |
出力電圧 [mV] |
---|---|---|
0 | 0.0 | 0.1 |
1 | 552.0 | 1.3 |
2 | 1104.0 | 2.5 |
3 | 1656.0 | 3.7 |
荷重と出力電圧の関係は、
(出力電圧[mV]) = 0.1 + 0.002174 * (荷重[g])
(荷重[g]) = 460.0 * (出力電圧[mV] - 0.1)
出力電圧の増幅(オペアンプ使用)
出力電圧の値はArduinoで計測するには小さすぎるので、オペアンプを用いて増幅します。
使用したキッチンスケールの最大荷重は2[kg]。
2[kg]の荷重を掛けた場合の出力電圧は、4.5[mV]ほど。
増幅前の出力電圧の値の範囲は、0.1[mV]~4.5[mV]ほど。
オペアンプを用いて、500倍ほど増幅することにします。
オペアンプは、「抵抗1本で利得をプログラム可能な高精度計装アンプ」である「LT1167」を使用しました。
LT1167のデータシートによると、
G = (49.4kΩ/Rg) + 1
Rgについて解くと、Rg = 49.4kΩ/(G-1)
※G:利得(増幅倍率)。Rg:使用する抵抗の抵抗値
500倍ほど増幅するために使用する抵抗の抵抗値は、
Rg = 49.4kΩ/(500-1) = 99.0Ω
99.0Ωに近く入手しやすい抵抗として、100Ω抵抗を使用します。
ペットボトル(1本552.0[g])をキッチンスケールに乗せた際の増幅後出力電圧を、Arduinoのアナログ入力を用いて測定したところ、以下の結果となりました。
ペットボトル [本数] |
荷重 [g] |
出力電圧 [mV] |
増幅後 出力電圧 [V] |
---|---|---|---|
0 | 0.0 | 0.1 | 0.63 |
1 | 552.0 | 1.3 | 0.73 |
2 | 1104.0 | 2.5 | 1.38 |
3 | 1656.0 | 3.7 | 2.03 |
荷重と出力電圧の関係は、
荷重をかけない場合の出力電圧の増幅後出力電圧が高くなってしまってよくありません。
部品表
部品名 | 数量 | 商品名 | 参考価格 |
---|---|---|---|
キッチンスケール | 1 | KS-257 | 1,064円 |
オペアンプ | 1 | 高精度計装アンプ LT1167CN8 | 400円 |
100Ω抵抗器 | 1 | カーボン抵抗(炭素皮膜抵抗) 1/6W 100Ω | 100本100円 |
LCDシールド | 1 | LCD (Liquid Crystal Display) に文字列を表示するの内容をシールド化したもの | - |
Arduinoボード | 1 | Arduino Uno | 2,780円 |
ブレッドボード | 1 | EIC-801 | 250円 |
ジャンパーワイヤ | 適量 | ジャンパーコード(オス-オス)セット | 100mm49個 150mm8個 200mm4個 250mm4個 のセット200円 |
接続表
LT1167側 | Arduino側 | |
---|---|---|
ピン番号 | ピン名称 | ピン番号 |
1 | Rg | 100Ω抵抗器 |
2 | -IN | ひずみゲージの白色のコード |
3 | +IN | ひずみゲージの緑色のコード |
4 | -Vs | GND |
5 | REF | GND |
6 | OUTPUT | Analog 0 |
7 | +Vs | 5V |
8 | Rg | 100Ω抵抗器 |
接続例
※画像右端から生えているコードは、ひずみゲージの対応する色のコードに接続
※LCDシールドに関する接続は省略
サンプルコード
出力電圧が数mV時の増幅の改善(DC-DCコンバーター使用)
オペアンプを用いて出力電圧の値を増幅しましたが、増幅前の出力電圧が数mV時の増幅結果がよくありません。
理由は、オペアンプLT1167の仕様にあります。
LT1167のデータシートによると、
入力電圧範囲Vcm(Input Voltage Range)は、
最小:-Vs + 1.9[V]。最大:+Vs - 1.2[V]。
-VsをGNDに接続していたので、入力電圧(=増幅前の出力電圧)が 1.9[V] より低いとき、正常動作しません。
電圧コンバータを用いて、5V電源出力から-5V出力を作り、これを-Vsに入力するようにします。
ペットボトル(1本552.0[g])をキッチンスケールに乗せた際の改善版増幅後出力電圧を、Arduinoのアナログ入力を用いて測定したところ、以下の結果となりました。
ペットボトル [本数] |
荷重 [g] |
出力電圧 [mV] |
増幅後 出力電圧 [V] |
改善版 増幅後 出力電圧 [V] |
---|---|---|---|---|
0 | 0.0 | 0.1 | 0.63 | 0.07 |
1 | 552.0 | 1.3 | 0.73 | 0.73 |
2 | 1104.0 | 2.5 | 1.38 | 1.38 |
3 | 1656.0 | 3.7 | 2.03 | 2.03 |
荷重と出力電圧の関係は、
(出力電圧[V]) = 0.07 + 0.001196 * (荷重[g])
(荷重[g]) = 845.0 * (出力電圧[V] - 0.07)
部品表
部品名 | 数量 | 商品名 | 参考価格 |
---|---|---|---|
(上記部品表の部品に加えて) | |||
電圧コンバータ | 1 | 電圧コンバータ LTC1144CN8 | 300円 |
電解コンデンサー | 2 | 電解コンデンサー 10μF16V105℃ ルビコンMH7 | 1個10円 |
接続表
LT1167側 | Arduino側 | |
---|---|---|
ピン番号 | ピン名称 | ピン番号 |
1 | Rg | 100Ω抵抗器 |
2 | -IN | ひずみゲージの白色のコード |
3 | +IN | ひずみゲージの緑色のコード |
4 | -Vs | LTC1144のVout |
5 | REF | GND |
6 | OUTPUT | Analog 0 |
7 | +Vs | 5V |
8 | Rg | 100Ω抵抗器 |
LTC1144側 | Arduino側 | |
---|---|---|
ピン番号 | ピン名称 | ピン番号 |
1 | BOOST | 無接続 |
2 | CAP+ | 10μFコンデンサを経由してCAP- (コンデンサは「CAP+」側が+、「CAP-」側が-) |
3 | GND | GND |
4 | CAP- | 10μFコンデンサを経由してCAP+ (コンデンサは「CAP+」側が+、「CAP-」側が-) |
5 | Vout | 10μFコンデンサを経由してGND (コンデンサはGND側が+、Vout側が-)、 および、 LT1167の-Vs |
6 | SHDN | 無接続 |
7 | OSC | 無接続 |
8 | V+ | 5V |
接続例
※画像右端から生えているコードは、ひずみゲージの対応する色のコードに接続
※LCDシールドに関する接続は省略
サンプルコード
(上記コードと同内容)
実行
ダウンロード
参考
Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ 小林 茂 (著)