Подключение тензодатчика к Ардуино

27-02-2020, 16:44 1 комментариев
Как сделать весы с помощью Arduino, модуля тензодатчика HX711 и других подручных материалов - обсуждаем сегодня в нашей новой информационной статье. Выбор подобных приборов совсем не случайный. По сути датчик веса является важным элементом многих популярных (очень неплохих, на наш взгляд) проектов в программной среде Arduino. Он эффективно преобразует деформацию в электрический сигнал, позволяет отслеживать изменения объекта и выполнять определенные действия. Такова функциональность тензометрических датчиков.

Если вас интересуют технические характеристики, назовем базовые:
  • напряжение питания: 2,6-5,5V;
  • потребляемый рабочий ток: 1,5 мА;
  • скорость обновления данных: 10 в секунду (Гц) или 80 в секунду (Гц);
  • входное напряжение: ±40мВ;
  • рабочие температуры: -40 ... +80°C.
Ну а теперь поговорим о главном – подключении и настройке. Для создания весов нам понадобится следующее «железо»:
  • плата расширения Arduino Uno (другие тоже подойдут) + электропитание для нее;
  • микрочип HX711 (на переходной плате);
  • датчик нагрузки;
  • прочная конструкция с твердой поверхностью или макетная плата;
  • соединительные провода.

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

Для начала установим датчик веса (как показано на скриншоте):

Учитываем следующие нюансы: монтажная опора и подвижная пластина должны быть жесткими, а между ними и тензодатчиком следует обязательно установить несгибаемые стойки.
Общая (принципиальная) схема подключения приборов приведена ниже:

Добавляем в программную среду Ардуино библиотеку для микросхемы с одноименным названием - HX711 (предварительно скачав ее тут):
https://github.com/bogde/HX711

Настал черед провести тестирование ∕ калибровку (и это очень важный этап). Заливаем скетч:
//код для калибровки
//код для калибровки
#include "HX711.h"
HX711 scale(A1, A0); // DT, CLK
float Calibration_Factor_Of_Load_cell = -3.7; // этот калибровочный коэффициент настраивается в соответствии с тензодатчиком
float U;
float O;
void setup() {
  Serial.begin(9600);
  Serial.println("HX711 calibration sketch");
  Serial.println("Remove all weight from scale");
  Serial.println("After readings begin, place known weight on scale");
  Serial.println("Press + or a to increase calibration factor");
  Serial.println("Press - or z to decrease calibration factor");
  scale.set_scale();
  scale.tare(); //Сбросьте масштаб до 0
  long zero_factor = scale.read_average(); //Получаем базовое чтение
  Serial.print("Zero factor: "); //Это можно использовать, чтобы устранить необходимость тарирования шкалы. Полезно в проектах постоянного масштаба.
  Serial.println(zero_factor);
}
void loop() {
  scale.set_scale(Calibration_Factor_Of_Load_cell); //Отрегулируйте этот калибровочный коэффициент
  Serial.print("Reading: ");
  U = scale.get_units();
  if (U < 0)
  {
    U = 0.00;
  }
  O = U * 0.035274;
  Serial.print(O);
  Serial.print(" grams");
  Serial.print(" Calibration_Factor_Of_Load_cell: ");
  Serial.print(Calibration_Factor_Of_Load_cell);
  Serial.println();
  if (Serial.available())
  {
    char temp = Serial.read();
    if (temp == '+' || temp == 'a')
      Calibration_Factor_Of_Load_cell += 1;
    else if (temp == '-' || temp == 'z')
      Calibration_Factor_Of_Load_cell -= 1;
  }
}
Сделать электронные весы на Ардуино своими руками довольно легко. Для этого понадобится немного терпения, минимум опыта и финансовых вложений, а также ваше огромное желание научиться в конструировании чего-нибудь новому и полезному (что пригодится для жизни и в быту).
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

Модуль энкодер KY-040 является электромеханическим устройством, а точнее - датчиком угла поворота и вращения оси различных девайсов. Непосредственно сам прибор...

В этой статье обсуждаем подключение датчика температуры DS18B20 к Arduino. О подобных устройствах мы говорили мало, но это не означает, что их редко...

1 комментария
  1. Ваче
    5 ноября 2023 12:13 Ваче

    Я сделал ацп на ad7799, т.к. hx711 слишком неточный. Просьба посмотреть нет ли ошибок в схеме? Возможно и вам пригодится. Опубликовал тут - https://esp8266.ru/forum/threads/vesy-na-hx711.4438/page-9

    replyОтветить
Оставить комментарий