今日は、ロードセルとHX711重量センサーをArduinoと接続して、Arduinoワイトマシンを構築します。多くの店舗で、計量台に物を置くだけで重量を表示するウェイトマシンを見てきました。そこで、ここでは、最大40kgの容量を持つArduinoセルとロードセルを使用して同じ計量機を構築しています。この制限は、より大容量のロードセルを使用することでさらに増やすことができます。
このArduino体重計を構築するために必要な主要コンポーネントは、重量を同等の電気信号に変換できるセンサーです。このセンサーはロードセルと呼ばれるため、このプロジェクトでは、このロードセルをArduino重量センサーとして使用します。また、ポータブルArduino小売計量機、Raspberry pi計量スケールなど、他のいくつかのプロジェクトでも同じロードセルを使用しています。興味があればチェックすることもできます。
Arduino体重計を構築するために必要なコンポーネント:
- Arduino Uno
- ロードセル(40kg)
- HX711ロードセルアンプモジュール
- 16x2 LCD
- 接続線
- USBケーブル
- ブレッドボード
- ナットボルト、フレーム、ベース
ロードセルとHX711重量センサーモジュール:
ロードセルは、力または圧力を電気出力に変換するトランスデューサーです。この電気出力の大きさは、加えられる力に正比例します。ロードセルにはひずみゲージがあり、圧力がかかると変形します。そして、ひずみゲージは、変形時に実効抵抗が変化するため、変形時に電気信号を生成します。ロードセルは通常、ホイートストンブリッジ構成の4つのひずみゲージで構成されます。ロードセルには5kg、10kg、100kgなどさまざまな種類がありますが、ここでは最大40kgのロードセルを使用しました。
ロードセルによって生成された電気信号は数ミリボルトであるため、何らかの増幅器によってさらに増幅する必要があるため、HX711計量センサーが登場します。HX711計量センサーモジュールには、24個の高精度A / Dコンバーター(アナログ-デジタルコンバーター)であるHX711チップが搭載されています。 HX711には2つのアナログ入力チャネルがあり、これらのチャネルをプログラミングすることで最大128のゲインを得ることができます。そのため、HX711モジュールはロードセルの低電気出力を増幅し、この増幅されてデジタル変換された信号がArduinoに送られ、重量が導き出されます。
ロードセルは、4本のワイヤーを使用してHX711ロードセルアンプに接続されています。これらの4本のワイヤーは、赤、黒、白、および緑/青です。モジュールごとにワイヤーの色にわずかな違いがある場合があります。接続の詳細と図の下:
- REDワイヤーはE +に接続されています
- BLACKWireはE-に接続されています
- WHITEワイヤーはA-に接続されています
- 緑のワイヤーはA +に接続されています
プラットフォームとベースによるロードセルの固定:
このステップはオプションであり、プラットフォームなしでロードセルに直接ウェイトを置くことができ、ベースで固定せずに簡単にクランプできますが、大きなものを置くためのプラットフォームを取り付けてベースに固定することをお勧めしますそれが停止するように。したがって、ここでは、重量測定用のものを置くためのフレームまたはプラットフォームを作成する必要があります。ロードセルをナットやボルトで固定するためのベースも必要です。ここでは、物を置くためのフレームに硬いボール紙を使用し、ベースとして木の板を使用しました。これで、回路図に示されているように接続を行うことができ、準備が整いました。
回路の説明:
このプロジェクトの接続は簡単で、回路図を以下に示します。16x2 LCDピンRS、EN、d4、d5、d6、およびd7は、それぞれArduinoのピン番号8、9、10、11、12、および13に接続されています。HX711モジュールのDTピンとSCKピンは、ArduinoのピンA0とA1に直接接続されています。HX711モジュールとのロードセル接続はすでに前に説明されており、以下の回路図にも示されています。
作業説明:
このArduino重量測定プロジェクトの動作原理は簡単です。詳細に入る前に、まず、正しい重量を測定するためにこのシステムを校正する必要があります。ユーザーが電源を入れると、システムは自動的にキャリブレーションを開始します。また、ユーザーが手動で調整したい場合は、プッシュボタンを押します。キャリブレーションの目的で関数 voidcalibrate() を作成しました。以下のコードを確認してください。
キャリブレーションの場合、下の図に示すように、ロードセルに100グラムを置くためのLCD表示を待ちます。 LCDに 「put100g」 と表示されたら、100gの重りをロードセルにかぶせて待ちます。数秒後、キャリブレーションプロセスが終了します。キャリブレーション後、ユーザーはロードセルに任意の重量(最大40kg)をかけることができ、LCDを介してグラム単位で値を取得できます。
このプロジェクトでは、Arduinoを使用してプロセス全体を制御しました。ロードセルは重量を感知し、HX711ロードアンプモジュールに電気アナログ電圧を供給します。HX711は24ビットADCであり、ロードセル出力を増幅してデジタル変換します。次に、この増幅された値がArduinoに送られます。ArduinoはHX711の出力を計算し、それをグラム単位の重量値に変換してLCDに表示します。プッシュボタンは、システムを較正するために使用されます。プロセス全体のArduinoプログラムを作成しました。このチュートリアルの最後にあるコードとデモビデオを確認してください。
Arduino計量スケールコード:
このプロジェクトのプログラミング部分は、初心者にとっては少し複雑です。このプロジェクトでは、HX711ロードセンサーをArduinoに接続するためのライブラリを使用しませんでした。HX711のデータシートとアプリケーションノートに従いました。この目的のためにいくつかのライブラリが存在しますが、そのライブラリを含めるだけで、1行のコードを使用して重みを取得できます。
まず、LCDのヘッダーファイルをインクルードし、そのピンを定義しました。そして押しボタンにも。次に、計算のためにいくつかの変数を宣言しました。
#include
その後、HX711モジュールからデータを読み取り、その出力を返すための以下の関数を作成しました。
unsigned long readCount(void){unsigned long Count; unsigned char i; pinMode(DT、OUTPUT); digitalWrite(DT、HIGH); digitalWrite(SCK、LOW); カウント= 0; pinMode(DT、INPUT); while(digitalRead(DT)); for(i = 0; i <24; i ++){digitalWrite(SCK、HIGH); カウント=カウント<< 1; digitalWrite(SCK、LOW); if(digitalRead(DT))Count ++; } digitalWrite(SCK、HIGH); カウント=カウント^ 0x800000; digitalWrite(SCK、LOW); return(Count); }
その後、LCDを初期化し、 void setup() で入力ピンと出力ピンに指示を出します 。
void setup(){Serial.begin(9600); pinMode(SCK、OUTPUT); pinMode(sw、INPUT_PULLUP); lcd.begin(16、2); lcd.print( "重量"); lcd.setCursor(0,1); lcd.print( "測定"); delay(1000); lcd.clear(); calibrate(); }
次にvoidloop () 関数で、HX711モジュールからデータを読み取り、このデータを重量(グラム)に変換してLCDに送信しました。
void loop(){count = readCount(); int w =(((count-sample)/ val)-2 *((count-sample)/ val)); Serial.print( "weight:"); Serial.print((int)w); Serial.println( "g"); lcd.setCursor(0,0); lcd.print( "Weight"); lcd.setCursor(0,1); lcd.print(w); lcd.print( "g"); if(digitalRead(sw)== 0){val = 0; sample = 0; w = 0; count = 0; calibrate(); }}
その前に、ロードセルの上に100gmの重りを置いてシステムを校正する校正機能を作成しました。
void calibrate(){lcd.clear(); lcd.print( "Calibrating…"); lcd.setCursor(0,1); lcd.print( "お待ちください…"); for(int i = 0; i <100; i ++){count = readCount(); サンプル+ =カウント; Serial.println(count); }……………..。
そこで、ここでは、ロードセルとHX11重量センサーとArduinoとの基本的なインターフェースを学習して重量を測定しました。テキストチュートリアルでは、スマートコンテナ、自動ゲートなど、重量測定に基づいたいくつかのアプリケーションを作成します。