Посібник користувача модуля АЦП датчиків ваги ARDUINO HX711
Модуль АЦП датчиків ваги ARDUINO HX711

Застосування Прample з Arduino Uno:

Більшість тензодатчиків має чотири дроти: червоний, чорний, зелений і білий. На платі HX711 ви знайдете з’єднання E+/E-, A+/A- і B+/B. Підключіть тензодатчик до плати датчика HX711 відповідно до наступної таблиці:

Плата датчика навантаження HX711 Провід тензодатчика
E+ Червоний
E- чорний
A+ Зелений
A- Білий
B- Невикористаний
B+ Невикористаний

Підключення

Датчик HX711 Arduino Uno
GND GND
DT D3
SCK D2
VCC 5V

Модуль HX711 працює при напрузі 5 В, а зв’язок здійснюється за допомогою послідовних контактів SDA та SCK.

Де прикладати вагу до тензодатчика?
Ви бачите, що на тензодатчику показано стрілку. Ця стрілка показує напрямок сили, що діє на тензодатчик. Ви можете зробити композицію, показану на малюнку, за допомогою металевих смуг. Прикріпіть металеву стрічку до тензодатчика за допомогою болтів.

вага

Програмування Arduino UNO для вимірювання ваги в кг:

Підключіть схему, як показано на малюнку 1 вище.
Щоб цей сенсорний модуль працював із платами Arduino, нам потрібна бібліотека HX711, яку можна завантажувати з https://github.com/bogde/HX711.
Перш ніж використовувати HX711 для точного вимірювання ваги об’єкта, його потрібно відкалібрувати. Нижче описано, як виконати калібрування.

Крок 1: ескіз калібрування
Завантажте наведений нижче ескіз на плату Arduino Uno

/* Handson Technology www.handsontec.com
* 29 грудня 2017 року
* Інтерфейс модуля тензодатчика HX711 з Arduino для вимірювання ваги в кг
Arduino
шпилька
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
Більшість будь-яких контактів на Arduino Uno будуть сумісні з DOUT/CLK.
Плата HX711 може живитися від 2.7 В до 5 В, тому живлення Arduino 5 В має бути нормальним.
*/
#include “HX711.h” //Ви повинні мати цю бібліотеку у своїй папці бібліотеки arduino
#define DOUT 3
#define CLK 2
Шкала HX711 (DOUT, CLK);
//Змініть цей калібрувальний коефіцієнт відповідно до тензодатчика, коли буде виявлено, що це потрібно багатьом
змінювати його в тисячах
float calibration_factor = -96650; //-106600 спрацювало для моїх максимальних налаштувань ваги 40 кг
//================================================== ========================================
// НАЛАШТУВАННЯ
//================================================== ========================================
void setup() {
Serial.begin(9600);

Serial.println(«Калібрування HX711»);
Serial.println(«Видалити всю вагу з ваг»);
Serial.println(«Після початку зчитування помістіть відому вагу на терези»);
Serial.println(“Натисніть a,s,d,f, щоб збільшити коефіцієнт калібрування на 10,100,1000,10000
відповідно”);
Serial.println(“Натисніть z,x,c,v, щоб зменшити коефіцієнт калібрування на 10,100,1000,10000
відповідно”);
Serial.println(“Натисніть t для тарування”);
scale.set_scale();
scale.tare(); //Скинути шкалу до 0
long zero_factor = scale.read_average(); //Отримати базове показання
Serial.print(“Нульовий коефіцієнт: “); //Це можна використовувати, щоб усунути необхідність тарування ваги.
Корисно в проектах постійного масштабу.
Serial.println(нульовий_фактор);
}
//================================================== ========================================
// ПЕТЛЯ
//================================================== ========================================
void loop() {
scale.set_scale(calibration_factor); //Налаштуйте на цей коефіцієнт калібрування
Serial.print(“Читання: “);
Serial.print(scale.get_units(), 3);
Serial.print("кг"); //Змініть це на кг і повторно відрегулюйте коефіцієнт калібрування, якщо ви
слідкуйте за одиницями СІ як здорова людина
Serial.print(” calibration_factor: “);
Serial.print(calibration_factor);
Serial.println ();
if(Serial.available())
{
char temp = Serial.read();
if(temp == '+' || temp == 'a')
коефіцієнт_калібрування += 10;
інакше, якщо (temp == '-' || temp == 'z')
коефіцієнт_калібрування -= 10;
інакше, якщо (temp == 's')
коефіцієнт_калібрування += 100;
інакше якщо (temp == 'x')
коефіцієнт_калібрування -= 100;
інакше, якщо (temp == 'd')
коефіцієнт_калібрування += 1000;
інакше, якщо (temp == 'c')
коефіцієнт_калібрування -= 1000;
інакше якщо (temp == 'f')
коефіцієнт_калібрування += 10000;
інакше якщо (temp == 'v')
коефіцієнт_калібрування -= 10000;
інакше якщо (temp == 't')
scale.tare(); //Скидання шкали на нуль
}
}
//================================================== =======================================

Зніміть навантаження з датчика навантаження. Відкрийте серійний монітор. Має відкритися вікно нижче, яке показує, що модуль успішно підключився до Arduino Uno.

Конфігурація

Помістіть предмет із відомою вагою на тензодатчик. У цьому випадку автор використовував відому вагу 191 грам із тензодатчиком 10 кг. Монітор послідовного порту відобразить певну вагу, як показано нижче:
Конфігурація

Нам потрібно виконати калібрування тут:

  • Введіть літеру «a, s, d, f» у командний рядок послідовного монітора та натисніть кнопку «Надіслати», щоб збільшити коефіцієнт калібрування на 10, 100, 1000, 10000 відповідно
  • Введіть літеру «z, x, c, v» у поле команди послідовного монітора та натисніть кнопку «Надіслати», щоб зменшити коефіцієнт калібрування на 10, 100, 1000, 10000 відповідно.
    Конфігурація

Продовжуйте регулювати, доки показання не покажуть фактичну вагу, розміщену на тензодатчику. Запишіть значення «calibration_factor», у даному випадку «-239250» у авторській еталонній вазі 191 г із тензодатчиком 10 кг. Нам знадобиться це значення для підключення до нашого другого ескізу для реального вимірювання.

2-й крок: Остаточний код для реального вимірювання ваги
Перш ніж завантажити ескіз, нам потрібно додати «коефіцієнт калібрування», отриманий на першому кроці:
Налаштування

Завантажте наведений нижче ескіз на плату Arduino Uno після зміни коефіцієнта масштабування:

/* Handson Technology www.handsontec.com
* 29 грудня 2017 року
* Інтерфейс модуля тензодатчика HX711 з Arduino для вимірювання ваги в кг
Arduino
шпилька
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
Більшість будь-яких контактів на Arduino Uno будуть сумісні з DOUT/CLK.
Плата HX711 може живитися від 2.7 В до 5 В, тому живлення Arduino 5 В має бути нормальним.
*/
#include “HX711.h” //Ви повинні мати цю бібліотеку у своїй папці бібліотеки arduino
#define DOUT 3
#define CLK 2
Шкала HX711 (DOUT, CLK);
//Змініть цей калібрувальний коефіцієнт відповідно до тензодатчика, як тільки буде виявлено, що вам потрібно змінити його в тисячах
float calibration_factor = -96650; //-106600 спрацювало для моїх максимальних налаштувань ваги 40 кг
//================================================== ===============================================
// НАЛАШТУВАННЯ
//================================================== ===============================================
void setup() {
Serial.begin(9600);
Serial.println(“Натисніть T для тарування”);
scale.set_scale(-239250); //Коефіцієнт калібрування, отриманий з першого ескізу
scale.tare(); //Скинути шкалу до 0
}
//================================================== ===============================================
// ПЕТЛЯ
//================================================== ===============================================
void loop() {
Serial.print(“Вага: “);
Serial.print(scale.get_units(), 3); //До 3 знаків після коми
Serial.println("кг"); //Змініть це на кг і повторно відрегулюйте коефіцієнт калібрування, якщо ви дотримуєтеся фунтів
if(Serial.available())
{
char temp = Serial.read();
if(temp == 't' || temp == 'T')
scale.tare(); //Скидання шкали на нуль
}
}
//================================================== ===============================================

Після успішного завантаження ескізу відкрийте Serial Monitor. Має з’явитися наведене нижче вікно з реальним значенням вимірювання:
Конфігурація

Ви можете скинути показання до 0.000 кг (без навантаження), ввівши «t» або «T» у поле команд і натиснувши кнопку «Надіслати». Під дисплеєм, що показує значення вимірювання, стає 0.000 кг.
Конфігурація

Помістіть предмет на тензодатчик, має відобразитися фактична вага. Нижче наведено відображення ваги під час розміщення об’єкта вагою 191 грам (використовується на першому кроці для калібрування).
Конфігурація

ура! Ви побудували ваги з точністю до трьох ком!

Документи / Ресурси

Модуль АЦП датчиків ваги ARDUINO HX711 [pdfПосібник користувача
HX711 Модуль АЦП датчиків зважування, HX711, Модуль АЦП датчиків зважування, Модуль АЦП датчиків, Модуль АЦП, Модуль

Список літератури

Залиште коментар

Ваша електронна адреса не буде опублікована. Обов'язкові поля позначені *