НХ711 + Arduino + Тензодатчик (весы своими руками)

Arduino
31.01.2020

(Всего голосов: 0)

Нам понадобятся:

1) Arduino (Uno, Nano, Mega - не важно)

2) Усилитель HX711

3) Тензодатчик на базе мостовой схемы

 

1. Подключаем модули согласно схеме

Датчик закрепляем с одной стороны, а с другой будем ставить груз. Учтите, что, в зависимости от точки приложения нагрузки, полученные значения массы будут немного отличаться.

 

2. Подключаем библиотеку HX711.h

 

3. Подключаем Ардуино и загружаем скетч (об этом подробнее ниже)

#include "HX711.h"                 // подключаем библиотеку для работы с тензодатчиком

HX711 scale;                       // создаём объект scale

const int LOADCELL_DOUT_PIN = A0;  // указываем номер вывода DT датчика
const int LOADCELL_SCK_PIN = A1;   // указываем номер вывода SCK датчика
float a;                           // параметр для калибровки
float calibration_mass = 1000;     // задаем калибровочную массу в граммах

void setup() {
  Serial.begin(38400);             // инициализируем работу порта на скорости 38400 бод
  Serial.println("HX711 Demo");    // вывод информации в порт
  Serial.println("Initializing the scale");
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); // инициируем работу с датчиком
  scale.tare();                    // сбрасываем значения веса на датчике в 0
  scale.set_scale(2280.f);         // установка калибровочного коэффициента
  Serial.println("Put calibration mass! You have 10 seconds!");
  delay(10000);                    // перерыв 10 секунд на установку калибровочной массы на весы
  a = scale.get_units(10) / calibration_mass; // вычисляем среднюю деформацию по 10 замерам и делим на массу
  Serial.println("Please, weit 5 seconds!");
  delay(5000);                     // ждем 5 секунд, пока идет чтение с датчика
}

void loop() {
  Serial.print(" average:\t");
  Serial.println(scale.get_units(10) / a, 1); // вычисляем среднее значение по 10 замерам и делим на коэффициент
  scale.power_down();              // переводим АЦП в спящий режим на 1 секунду
  delay(1000);
  scale.power_up();                // будим АЦП
}

 

Как пользоваться:

1) Меняем массу в коде на ту, которую будем использовать при калибровке и загружаем скетч.
float calibration_mass = 1000;     // задаем калибровочную массу в граммах

 

2) После загрузки скетча заходим в Монитор порта и устанавливаем требуемую скорость обмена данными.

 

3) После сообщения Put calibration mass! You have 10 seconds! устанавливаем груз, массу которого задали в пункте 1 и ждем 5 секунд. Весы готовы к работе!


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