重量計_HX711-ハーフブリッジロードセル2個
JUGEMテーマ:電子工作
重さをはかるロードセルシリーズ第3弾です。
前々の記事
https://ameblo.jp/fc2miha/entry-12835245969.html
http://miha.jugem.cc/?eid=360
ハーフブリッジ4個でフルブリッジを構成
前の記事
https://ameblo.jp/fc2miha/entry-12835409272.html
http://miha.jugem.cc/?eid=361
フルブリッジ1個で構成
今回
ハーフブリッジ2個でフルブリッジを構成
という事で、ハーフブリッジ2個を組み合わせてフルブリッジ構成にする記事です。
■ハマりポイント
前々の記事の回路を参考にして、
単純に白-白と黒-黒を電源のEの+と-に入れただけではダメだったので、
ここがハマりポイントになります。
■試行錯誤の末、回路がこちら。
ロードセルの白は黒へ、黒は白へ接続して電源であるEの+と-へ接続。
信号線は赤をAの+と-へ接続です。
最初に失敗した方だと、
白-白と黒-黒を電源のEの+と-に接続ですが、
ロードセルそれぞれ指で押してやると片方がプラスになるんですけど、
もう片方がマイナスになるという謎現象が発生。
同時に押すと打ち消しあう?謎。
それで、反対にしたら安定して動きだしたというわけ。
しばし回路とにらめっこしてみる。
ハーフブリッジの中身の回路はこちら。
Negative strain と Positive strain
翻訳すると
「負のひずみ」 と 「正のひずみ」
となっているね。
想像するにロードセルの微妙に曲がる部分の表と裏に抵抗がくっついてて。
表側が伸びて裏側が縮む、
そして伸び縮みによって抵抗が変化すれば、
赤のラインに出てくる電圧が変化するわけですよね。
で、その電圧の変化をHX711が読み取ってデジタル変換して送ってくれると
いうわけで、HX711にとってみれば、A+とA-は逆に反応してもらわないと
いけない訳で。。。。。
なので、フルブリッジロードセルの中身では
今回実験したみたいな回路で接続されていると思われる。
で、フルブリッジロードセルのケーブルは4本になっていて、
結果グリーンからA+ホワイトからA-に接続されている。
想像なのでよくわからんけど。これで動きます。
今回はハーフブリッジ2個なので測定するにあたり工作しました。
2個ね
横からの写真
横から見た図
□□□□□□□□□□□□□□□□□□□□ ←上の板
■■■ ■■■■ ←左がロードセルで右が板
□□□□□□□□□□□□□□□□□□□□ ←下の板
ロードセルと高さを合わせるために板を置いて調整しています。
■プログラム
ロードセルが半分なので、半分ぐらいはロードセルのないところに体重乗ってるので、
その計算式を変更しています。
long saisyo = 0;
void setup() {
Serial.begin(9600);
Serial.println("start");
pinMode(9, OUTPUT);
pinMode(8, INPUT);
delay(2000);
for (char i = 0; i < 24; i++) {
digitalWrite(9, 1);
delayMicroseconds(1);
digitalWrite(9, 0);
delayMicroseconds(1);
saisyo = (saisyo << 1) | (digitalRead(8));
}
saisyo = saisyo ^ 0x800000;
Serial.print("saisyo=");
Serial.println(saisyo);
}
void loop() {
long atai = 0;
for (char i = 0; i < 24; i++) {
digitalWrite(9, 1);
delayMicroseconds(1);
digitalWrite(9, 0);
delayMicroseconds(1);
atai = (atai << 1) | (digitalRead(8));
}
atai = atai ^ 0x800000;
Serial.print("atai=");
Serial.println(atai);
long omosa;
omosa = ((atai - saisyo)) / 258.14784769572;
omosa = omosa * 10;
Serial.print("omosa=");
Serial.println(omosa);
delay(2000);
}