ARDUINO HX711 Весовые датчики Модуль АЦП Руководство пользователя
Приложение Exampле с Arduino Uno:
Большинство тензодатчиков имеют четыре провода: красный, черный, зеленый и белый. На плате HX711 вы найдете разъемы E+/E-, A+/A- и B+/B. Подключите тензодатчик к сенсорной плате HX711 в соответствии со следующей таблицей:
Плата датчика нагрузки HX711 | Провод тензодатчика |
E+ | Красный |
E- | Черный |
A+ | Зеленый |
A- | Белый |
B- | Неиспользованный |
B+ | Неиспользованный |
Датчик HX711 | Ардуино Уно |
Земля | Земля |
DT | D3 |
SCK | D2 |
ВКЦ | 5V |
Модуль HX711 работает при напряжении 5 В, а связь осуществляется с помощью последовательных контактов SDA и SCK.
Куда приложить вес на тензодатчике?
Вы можете видеть стрелку, показанную на тензодатчике. Эта стрелка показывает направление силы на тензодатчике. Вы можете сделать устройство, показанное на рисунке, используя металлические полоски. Прикрепите металлическую полосу к тензодатчику с помощью болтов.
Программирование Arduino UNO для измерения веса в кг:
Подключите схему, как показано на рисунке 1 выше.
Для того, чтобы этот сенсорный модуль работал с платами Arduino, нам нужна библиотека HX711, которая может загружаться с https://github.com/bogde/HX711.
Прежде чем HX711 можно будет использовать для точного измерения веса объекта, его необходимо сначала откалибровать. Шаг ниже покажет вам, как выполнить калибровку.
1 шаг: Калибровочный эскиз
Загрузите приведенный ниже скетч на плату Arduino Uno.
/* Технология Handson www.handsontec.com
* 29 декабря 2017 г.
* Интерфейс модуля тензодатчика HX711 с Arduino для измерения веса в килограммах
Ардуино
приколоть
2 -> HX711 CLK
3 -> цифровой выход
5В -> VCC
ЗЕМЛЯ -> ЗЕМЛЯ
Практически любой вывод на Arduino Uno будет совместим с DOUT/CLK.
Плата HX711 может питаться от 2.7 В до 5 В, поэтому питание Arduino 5 В должно быть в порядке.
*/
#include «HX711.h» //У вас должна быть эта библиотека в папке вашей библиотеки arduino
#определить DOUT 3
# определить CLK 2
Шкала HX711 (DOUT, CLK);
// Измените этот коэффициент калибровки в соответствии с вашим тензодатчиком, как только вы обнаружите, что вам это нужно
варьировать его в тысячах
калибровочный_фактор с плавающей запятой = -96650; //-106600 работало для моих максимальных весов 40 кг
//=============================================== ========================================
// НАСТРАИВАТЬ
//=============================================== ========================================
недействительная настройка() {
Последовательный.начало(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 для тарирования");
масштаб.set_scale();
шкала.тара(); // Сброс масштаба до 0
long zero_factor = scale.read_average(); //Получить исходное значение
Serial.print("Нулевой коэффициент: "); //Это может быть использовано для устранения необходимости тарирования весов.
Полезно в проектах постоянного масштаба.
Serial.println(нулевой_фактор);
}
//=============================================== ========================================
// ПЕТЛЯ
//=============================================== ========================================
недействительный цикл() {
scale.set_scale (фактор калибровки); //Настроить на этот коэффициент калибровки
Serial.print("Чтение: ");
Serial.print(scale.get_units(), 3);
Serial.print("кг"); // Измените это значение на кг и повторно отрегулируйте коэффициент калибровки, если вы
следуйте единицам СИ, как здравомыслящий человек
Serial.print(" коэффициент_калибровки: ");
Serial.print (фактор калибровки);
Serial.println ();
если (серийный.доступный())
{
символ темп = Serial.read();
если (temp == '+' || temp == 'a')
калибровочный_фактор += 10;
иначе если (temp == '-' || temp == 'z')
калибровочный_фактор -= 10;
иначе если (temp == 's')
калибровочный_фактор += 100;
иначе если (темп == 'х')
калибровочный_фактор -= 100;
иначе если (temp == 'd')
калибровочный_фактор += 1000;
иначе если (temp == 'c')
калибровочный_фактор -= 1000;
иначе если (temp == 'f')
калибровочный_фактор += 10000;
иначе если (temp == 'v')
калибровочный_фактор -= 10000;
иначе если (temp == 't')
шкала.тара(); // Сбрасываем шкалу на ноль
}
}
//=============================================== =======================================
Снимите любую нагрузку с датчика нагрузки. Откройте серийный монитор. Должно открыться приведенное ниже окно, показывающее, что модуль успешно подключен к Arduino Uno.
Поместите объект с известным весом на тензодатчик. В этом случае автор использовал известный вес 191 грамм с тензодатчиком 10 кг. Serial Monitor отобразит некоторое значение веса, как показано ниже:
Нам нужно сделать калибровку здесь:
- Введите букву «a, s, d, f» в пространство команд последовательного монитора и нажмите кнопку «Отправить», чтобы увеличить коэффициент калибровки на 10, 100, 1000, 10000 соответственно.
- Введите букву «z, x, c, v» в пространство команд последовательного монитора и нажмите кнопку «Отправить», чтобы уменьшить коэффициент калибровки на 10, 100, 1000, 10000 соответственно.
Продолжайте регулировку до тех пор, пока показания не покажут фактический вес, размещенный на тензодатчике. Запишите значение «Calibration_Factor», в данном случае «-239250» в авторском эталонном весе 191 г с тензодатчиком 10 кг. Нам понадобится это значение, чтобы подключить его к нашему второму скетчу для реальных измерений.
2-й шаг: окончательный код для измерения реального веса
Перед загрузкой скетча нам нужно подключить «коэффициент калибровки», полученный на 1-м шаге:
Загрузите приведенный ниже скетч на плату Arduino Uno после изменения коэффициента масштабирования:
/* Технология Handson www.handsontec.com
* 29 декабря 2017 г.
* Интерфейс модуля тензодатчика HX711 с Arduino для измерения веса в килограммах
Ардуино
приколоть
2 -> HX711 CLK
3 -> цифровой выход
5В -> VCC
ЗЕМЛЯ -> ЗЕМЛЯ
Практически любой вывод на Arduino Uno будет совместим с DOUT/CLK.
Плата HX711 может питаться от 2.7 В до 5 В, поэтому питание Arduino 5 В должно быть в порядке.
*/
#include «HX711.h» //У вас должна быть эта библиотека в папке вашей библиотеки arduino
#определить DOUT 3
# определить CLK 2
Шкала HX711 (DOUT, CLK);
// Измените этот коэффициент калибровки в соответствии с вашим тензодатчиком, как только он будет найден, вам нужно изменить его на тысячи
калибровочный_фактор с плавающей запятой = -96650; //-106600 работало для моих максимальных весов 40 кг
//=============================================== =============================================
// НАСТРАИВАТЬ
//=============================================== =============================================
недействительная настройка() {
Последовательный.начало(9600);
Serial.println("Нажмите T для тарирования");
масштаб.set_scale(-239250); //Коэффициент калибровки, полученный из первого эскиза
шкала.тара(); // Сброс масштаба до 0
}
//=============================================== =============================================
// ПЕТЛЯ
//=============================================== =============================================
недействительный цикл() {
Serial.print("Вес: ");
Serial.print(scale.get_units(), 3); //До 3 знаков после запятой
Serial.println("кг"); //Измените это значение на кг и повторно отрегулируйте коэффициент калибровки, если вы следуете фунтам
если (серийный.доступный())
{
символ темп = Serial.read();
если (temp == 't' || temp == 'T')
шкала.тара(); // Сбрасываем шкалу на ноль
}
}
//=============================================== =============================================
После успешной загрузки скетча откройте Serial Monitor. Должно появиться окно ниже, показывающее реальное значение измерения:
Вы можете сбросить показания до 0.000 кг (без нагрузки), введя «t» или «T» в поле команд и нажав кнопку «Отправить». Ниже дисплей, показывающий значение измерения, становится равным 0.000 кг.
Поместите объект на тензодатчик, должен отобразиться фактический вес. Ниже показан дисплей веса при размещении объекта весом 191 грамм (используется на 1-м шаге для калибровки).
Ура! Вы сконструировали весы с точностью до трех знаков после запятой!
Документы/Ресурсы
![]() |
ARDUINO HX711 Датчики взвешивания Модуль АЦП [pdf] Руководство пользователя HX711 Датчики взвешивания Модуль АЦП, HX711, Датчики взвешивания Модуль АЦП, Датчики Модуль АЦП, Модуль АЦП, Модуль |