Подключение HX711 к Arduino

АЦП для тензодатчика (весы)

HX711 к Arduino: DT и SCK на любые два цифровых вывода, питание 5 В. Мост тензодатчика подключается к выводам E+, E−, A+, A− модуля.

Схема подключения HX711 к Arduino

HX711Arduino Uno
DTD4
SCKD5
VCC5V
GNDGND

Схема из примера «Arduino Uno: весы на тензодатчике».

Arduino Uno: весы на тензодатчике

Открыть пример целиком

Выводы HX711

ВыводНазначение
DTданные (DOUT)
SCKтактовый сигнал (PD_SCK)
VCCпитание
GNDобщий провод

Код для Arduino

#include <HX711.h>

// Весы: тензодатчик и усилитель HX711 на выводах 4 и 5.
//
// Микросхема отдаёт двадцать четыре разряда, вытактованные вручную по
// двум проводам. Это не шина и не аналоговый вход: собственного
// аналогового входа у Uno на такой сигнал не хватило бы — мост даёт
// милливольты, а разрешение нужно в тысячные доли.
//
// Сырые отсчёты сами по себе не значат ничего. Их превращают в граммы
// две настройки, и обе делаются один раз руками.
//
// **Тарирование** — сколько показывает пустая платформа. Это ноль, и
// он уезжает от температуры, поэтому tare() зовут при каждом запуске.
//
// **Масштаб** — сколько отсчётов приходится на грамм. Кладут известный
// груз, делят разницу на его вес и записывают число в скетч. Другого
// способа нет: коэффициент зависит от конкретного датчика и от того,
// как он закреплён.

HX711 scale;

const int DT = 4;
const int SCK_PIN = 5;

void setup() {
  Serial.begin(9600);
  scale.begin(DT, SCK_PIN);

  // Число из калибровки. У вашего датчика оно будет другим.
  scale.set_scale(420.0);

  Serial.println(F("уберите груз — тарирую"));
  delay(500);
  scale.tare();
  Serial.println(F("готово"));
}

void loop() {
  // Среднее по пяти измерениям: одиночный отсчёт дрожит на единицы
  // граммов, и по нему ничего не решают.
  float grams = scale.get_units(5);

  Serial.print("g:");
  Serial.println(grams, 1);

  delay(500);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на Arduino

В железе

Балка подключается к HX711 четырьмя проводами: обычно красный — E+, чёрный — E−, белый — A−, зелёный — A+. Если вес растёт в минус — поменяйте местами A+ и A−.

Частые ошибки при подключении к Arduino

Другие детали для Arduino