Files
2019-02-28 13:43:11 +08:00

4.2 KiB

WEIGHT Unit {docsify-ignore-all}


📝概要      :octocat:サンプルコード      🔌回路図      🛒購入リンク

概要

WEIGHT は重量計測用ADCチップ HX711 を搭載したUnitです。

  • HX711は2つのチャンネルAとBを持ちます。チャンネルBに比べ、チャンネルAはプログラム可変倍率です。このUnitではチャンネルAを使用しています。Unitの一端は圧力センサーに、もう一端はM5Coreに接続されます。

特徴

  • プログラム可能なズーム倍率:32, 64, 128
  • HX711内部ADC精度:24 bit
  • Unit出力電圧範囲:0 ~ 5mV
  • GROVE インターフェース、 UIFlowArduinoをサポート
  • 2つのLEGO 互換ホール

アプリケーション

  • 小型秤
  • クッキングスケール

関連リンク

サンプルコード

1. Arduino IDE

この例では10kgまで測れる重量計を作成します。

完全なソースコードはこちら

/*
  This Unit connects to GRVOE B on M5Core.
*/

#include <M5Stack.h>
#include "hx711.h"

HX711 scale(36, 26);// GROVE B

void setup() {
  M5.begin();
  M5.Lcd.clear(BLACK);
  M5.Lcd.setTextSize(2);
  M5.Lcd.setTextColor(YELLOW);
  M5.Lcd.setCursor(50, 10);
  M5.Lcd.print("UNIT_WEIGHT EXAMPLE\n");
  M5.Lcd.setCursor(15, 50);
  M5.Lcd.print("Connect Unit to GROVE B");
  Serial.begin(115200);

  scale.setOffset(125184);
  scale.setScale(67.4);

  M5.Lcd.setCursor(0, 90);
  M5.Lcd.print("The weight: ");
}

void loop(){
  // Serial.println(scale.averageValue());
  float weight;
  weight = ((float)((int)((scale.getGram()+0.005)*100)))/100;
  // sprintf(&weight, "%0.2f", scale.getGram());
  Serial.print("The weight: ");
  Serial.print(weight);
  M5.Lcd.fillRect(150, 90, 100, 20, BLACK);
  M5.Lcd.setCursor(150, 90);
  M5.Lcd.print(weight);
  Serial.println(" g");
  delay(100);
}

2. UIFlow

プログラムをダウンロードするたびに、秤に何も乗っていないことを確認して、Aボタンを押したのちに、対象物を乗せて計量します。

完全なソースコードはこちら

回路図

ピンマップ

PORT Aに繋いだ場合

M5Core(PORT A)GPIO22GPIO215VGND
WEIGHT UnitDATCLK5VGND

PORT Bに繋いだ場合

M5Core(PORT B)GPIO36GPIO265VGND
WEIGHT UnitDATCLK5VGND

PORT Cに繋いだ場合

M5Core(PORT C)GPIO16GPIO175VGND
WEIGHT UnitDATCLK5VGND