mirror of
https://github.com/m5stack/m5-docs.git
synced 2026-05-20 10:23:01 -07:00
4.2 KiB
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 インターフェース、 UIFlowとArduinoをサポート
- 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) | GPIO22 | GPIO21 | 5V | GND |
| WEIGHT Unit | DAT | CLK | 5V | GND |
PORT Bに繋いだ場合
| M5Core(PORT B) | GPIO36 | GPIO26 | 5V | GND |
| WEIGHT Unit | DAT | CLK | 5V | GND |
PORT Cに繋いだ場合
| M5Core(PORT C) | GPIO16 | GPIO17 | 5V | GND |
| WEIGHT Unit | DAT | CLK | 5V | GND |

