Датчик закрепляем с одной стороны, а с другой будем ставить груз. Учтите, что, в зависимости от точки приложения нагрузки, полученные значения массы будут немного отличаться.
2. Подключаем библиотеку HX711.h
3. Подключаем Arduino и загружаем скетч (об этом подробнее ниже)
#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) Меняем массу в коде на ту, которую будем использовать при калибровке и загружаем скетч.
2) После загрузки скетча заходим в Монитор порта и устанавливаем требуемую скорость обмена данными.
3) После сообщения Put calibration mass!You have 10 seconds! устанавливаем груз, массу которого задали в пункте 1 и ждем 5 секунд. Весы готовы к работе!