🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


⚖️ Проект: электронные весы на HX711 с выводом на LCD1602

Схема электронных весов на HX711 с выводом на LCD1602

Тензодатчик через усилитель HX711 отдаёт вес в граммах после калибровки по известному грузу, значение выводится на дисплей.

Как это работает

Тензодатчик (часто это металлическая балка с наклеенными тензорезисторами) при изгибе под весом груза чуть-чуть меняет своё электрическое сопротивление — настолько незначительно, что напрямую измерить это аналоговым входом Arduino невозможно. Модуль HX711 — это специализированный 24-битный АЦП (аналого-цифровой преобразователь) с встроенным усилителем именно для тензодатчиков: он усиливает крошечное изменение сопротивления и отдаёт Arduino уже готовое цифровое значение по двум проводам (DOUT и SCK), без использования аналоговых пинов.

Поскольку у каждого конкретного тензодатчика и каждой платы HX711 немного отличаются заводские параметры, весы обязательно нужно откалибровать по грузу с точно известным весом (например, гирька или пачка с указанным весом на упаковке) — без калибровки числа с датчика будут просто "сырыми" единицами АЦП, не граммами.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Подключите тензодатчик к плате HX711 согласно цветовой маркировке проводов датчика (обычно красный/чёрный — питание моста, белый/зелёный — сигнал), сверяясь с даташитом конкретного датчика.
  2. Подключите HX711 к Arduino: DT → D3, SCK → D2, VCC → 5V, GND → GND.
  3. Подключите LCD1602 с I2C-переходником: SDA → A4, SCL → A5, VCC → 5V, GND → GND.
  4. Жёстко закрепите тензодатчик так, чтобы платформа для груза не касалась ничего, кроме самого датчика — любая дополнительная точка опоры исказит показания.
  5. Проведите калибровку (см. код и пояснение ниже) с грузом известного веса перед первым использованием.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить.

#include <HX711.h>              // библиотека для усилителя тензодатчика HX711
#include <Wire.h>               // шина I2C
#include <LiquidCrystal_I2C.h>  // дисплей через I2C-переходник

const int DOUT = 3;    // пин данных HX711
const int CLK = 2;     // тактовый пин HX711
HX711 scale;
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(9600);
  scale.begin(DOUT, CLK);
  scale.set_scale(420.f); // калибровочный коэффициент — обязательно подберите под свой датчик
  scale.tare();           // обнуление показаний на пустой, ненагруженной платформе

  lcd.init();
  lcd.backlight();
}

void loop() {
  float weight = scale.get_units(10); // среднее по 10 измерениям для стабильности показаний

  lcd.setCursor(0, 0);
  lcd.print("Weight: ");
  lcd.print(weight, 1);
  lcd.print(" g   ");

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

  delay(500);
}

Калибровка в два шага. Сначала прошейте Arduino с временными строками `scale.set_scale(1);` и `scale.tare();`, запишите через Serial-монитор сырое значение с пустой платформой (должно быть около 0 после tare) и с грузом известного веса. Коэффициент калибровки считается по формуле: (сырое_значение_с_грузом − сырое_значение_пустое) / вес_груза_в_граммах — полученное число подставьте в `set_scale()` вместо `420.f` и перепрошейте.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 📶 RFID-приветствие на RDM6300 с выводом на L…🎵 цветомузыка на индикаторе уровня звука KA2… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 299 ₽ 269 ₽ (экономия 30 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA