目次
重さ・力とか測りたい
昔、こんな飛行機を作っていた時 (昔のページおいておいてよかった)
これのモータ選定・ペラ選定・ESC選定などをする時に。。
こんなことをしてですね。。 いろいろなモータ比べたり、ペラ選定したり。。モータ燃やしたり。。ESC燃やしたり。。してました(笑)
PCに取り込んだりするのに。。デジタル出力の測りほしいなぁ~って思っていたんですが。。なかなかいいのがないので。。(デジタル表示のやつはいっぱい安いのあるんですがね。。)
ふとアマゾン見たら。。ロードセルやすかった(笑)
ちょっと買ってみようかな?と。。
着きました!!
が。。例によって。。 全く説明書類がないので、その忘備録として。。のメモです。
たぶんHX711ボードの回路や、ブリッジの構成はこんな感じかと。。
そして。。 たぶん接続は、これかな?
参考になりそうなHP
秋月のHX711とArduino
https://www.denshi.club/cookbook/sensor/g/1-2.html
秋月のHX711とM5Stack
https://www.denshi.club/cookbook/arduino/m5stack/m5stack-5.html
おなじみRandon Nerdのチュートリアル
GithubでのHX711
ESP32、Arduinoなどのライブラリ
https://github.com/bogde/HX711
温度補償の機能もついている例
https://github.com/RobTillaart/HX711
あっ。。こういうの使う人は。。もちろんこういうの持ってないとだめですよ
プログラム例 ESP32 DevBoard
ライブラリ
いろいろHX711用はあるみたいですが、ArduinoのLibraryは、
https://github.com/bogde/HX711
これを入れました。
配線
RandomNerdの通りにしました。
Load Cell | HX711 |
Red (E+) | E+ |
Black (E-) | E- |
White (A-) | A- |
Green (A+) | A+ |
ESPとの接続はこちら
HX711 | ESP32 |
GND | GND |
DT | GPIO 16 |
SCK | GPIO 4 |
VCC | 3.3V |
校正
スケールをあわせるために、校正というか、重りがいります。
スケッチ上では、この関数の値を入れます。
scale.set_scale(2070.f);
2070とか書いてあるやつです。
校正用のプログラムは、これです。 以下のスケッチを入れて
校正値=出てきた値/のっけた重りの重さ
です。
// Calibrating the load cell
#include <Arduino.h>
#include "HX711.h"
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 16;
const int LOADCELL_SCK_PIN = 4;
HX711 scale;
void setup() {
Serial.begin(115200);
rtc_clk_cpu_freq_set(RTC_CPU_FREQ_80M);
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
}
void loop() {
if (scale.is_ready()) {
scale.set_scale();
Serial.println("Tare... remove any weights from the scale.");
delay(5000);
scale.tare();
Serial.println("Tare done...");
Serial.print("Place a known weight on the scale...");
delay(5000);
long reading = scale.get_units(10);
Serial.print("Result: ");
Serial.println(reading);
}
else {
Serial.println("HX711 not found.");
}
delay(1000);
}
//calibration factor will be the (reading)/(known weight)
スケッチ
動かすスケッチは、これ。
https://github.com/bogde/HX711/blob/master/examples/HX711_full_example/HX711_full_example.ino
変更は、下記の箇所です。
// HX711 circuit wiring const int LOADCELL_DOUT_PIN = 16; const int LOADCELL_SCK_PIN = 4;
と、
scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details
これで
こんなふうに出てきます。
たとえば そのままの50g乗せると、50gって出てきます。gで出てきてると思います。
こっちのライブラリーの方がいいですね。
https://github.com/olkal/HX711_ADC
Calibrationもやりやすいし。。 アベレージングも綺麗にやってくれる。
風袋リセットとか、これで校正してみると、0.3%くらいの誤差で測定できているような感じです。
コメントを残していただけるとありがたいです