🌏

電子工作 その12(ロードセル:HX711の使い方)

2023/08/12に公開

こんにちは、Ideagearの鈴木陽介です。

今回は、Arduino Unoを用いたロードセル(HX711)の使い方についてご説明します。

記録として残しておくだけが目的の超手抜き記事のためw、引用のオンパレードですがご了承ください。※2023年1月4日にテストしたものを今回記事に起こしました。


2022年12月28日に深セン華強北のお店で購入。

ロードセル(銀色の棒状のもの)とそれ用のプラスチック板とネジ類、HX711(ロードセルの値を読み取るためのアンプモジュール)などをすべて含めて、わずか30元(約600円)※約20元/円

ロードセルとは?

秋月電子通商さんのページの言葉をお狩りすると、

質量やトルクなどを検出するセンサ(荷重変換器)です。アルミ起歪体にひずみゲージ(ストレインゲージ)がホイートストンブリッジ回路構成で貼りつけられています。片持ち梁タイプのロードセルで、荷重(0~20kg)に応じた電圧をリニアに出力します。片端を固定して、矢印方向に荷重するとプラスの電圧変化として出力されます。
文章引用元:https://akizukidenshi.com/catalog/g/gP-12034/

何だかややこしいですがw、カンタンに言えば、組付けたあとのプラスチックの上に何かを乗せると、ロードセルの中央にあるひょうたん型の穴の部分が歪むため、その歪みを検知することで重さを算出します。

HX711は、そのわずかな歪みを増幅させるアンプモジュールで、基本的にロードセルとセットで使います。

参考記事

半年以上前のことですので、もはやどの記事を参考にしてテストしたかまったく覚えていませんw

余談ですが、発端は、モーターのトルクを測ろうということでトルクメーターの価格を見たらバカ高かったため、一方で、そもそも正確にトルクを測る必要はないため、もっと安く手軽に測る方法が無いかと考えました。

そこで、約4年前にこのロードセルを使ったことがあったため、これを活用して間接的にモーターのトルクを測ろうと思った次第です。

話を戻しますが、今回は手抜き記事のため参考記事が必須ですw

よって、改めて探したところ、英語ですが、下記記事がきれいにまとまっているので活用させてもらいました。

Arduino with Load Cell and HX711 Amplifier (Digital Scale)
https://randomnerdtutorials.com/arduino-load-cell-hx711/

ピン配置

参考記事から引用。


画像引用元:https://randomnerdtutorials.com/arduino-load-cell-hx711/

ブレッドボード図

同じく参考記事から引用。


画像引用元:https://randomnerdtutorials.com/arduino-load-cell-hx711/

下記は、実際にArduino Unoと配線した時の様子です。

ライブラリー

Arduino IDEを開き、スケッチ -> ライブラリーをインクルード -> ライブラリーを管理 ->ライブラリーマネージャから、下記ライブラリーをインクルードしてください。

HX711 Arduino Library by Bogdan Necula

ソースコード

これももはやどこから持ってきたか不明ですがw
2023年1月4日につくったスケッチとして、私の手元に残っているので共有します。

#include <Arduino.h>
// https://github.com/bogde/HX711
#include "HX711.h"

const int DT_PIN = 2;
const int SCK_PIN = 3;

HX711 scale;

void setup() {
  Serial.begin(9600);
  Serial.println("start");
  scale.begin(DT_PIN, SCK_PIN);

  Serial.print("read:");
  Serial.println(scale.read());

  scale.set_scale();
  scale.tare();

  Serial.print("calibrating...");
  delay(5000);
  Serial.println(scale.get_units(10));

  scale.set_scale(-375.00);
  scale.tare();

  Serial.print("read (calibrated):");
  Serial.println(scale.get_units(10));
}


void loop() {
  Serial.println(scale.get_units(10), 1);

  scale.power_down();
  delay(500);
  scale.power_up();
}

テスト

下記は、10g、100g、500gの3つのおもりでテストした時の様子です。
https://twitter.com/Ideaport_Suzuky/status/1610583270659608576

動画だと粗くて見づらいかもしれませんので、写真も載せておきます。



以上、撮影日:2023年1月4日

おまけ

下記動画は、今回テストしたものを活用し、無理やりモーターのトルクを計測した時の様子です。
https://twitter.com/Ideaport_Suzuky/status/1614510259229569024
撮影日:2023年1月15日

まとめ

手抜き記事いかがでしたでしょうかw

実は、デジペの次回作でこのロードセルを活用する予定ですが、特にロードセル側の配線が外れやすく(よって、上記写真の通り、本日ブレッドボード用のジャンパー線を補強)、そのたびに配線の色を確認するといった始末だったので、アーカイブとして残すために記事化しました。

それではまた!

Discussion